uname ist eine spezielle Version von uname. Unterstützt -a, -s, -r, -n -v, -m Optionen.
ANWENDUNG: uname [Optionen]
-s Drucken der Kernel-Name
-v die Kernel-Version
-r Drucken Sie die Kernel-Release
-n den Netzwerkknoten Hostnamen drucken
-m Drucken der Maschine Hardware Name
-a drucken alle der oben genannten
Ohne Optionen wirkt uname wie uname -s
Beispiel:
#include
#include
#include
#include
#include
Leere print_usage (void);
int main (int argc, char * argv [])
{
int c;
extern char * optarg;
extern int OPTIND, optopt;
int A_flag = 0 s_flag = 0 n_flag = 0 r_flag = 0 v_flag = 0 ist,
m_flag = 0;
int errflag = 0;
char host [256];
struct utsname UTS;
if (gethostname (host, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Unable to Host Informationn bekommen");
Ausgang (1);
}
/ * Wenn keine Optionen, dann nur zu drucken sysname * /
if (argc == 1) {
s_flag = 1;
}
sonst
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
switch (c) {
Fall 'a':
A_flag = 1;
brechen;
Fall 's':
s_flag = 1;
brechen;
Fall 'n':
n_flag = 1;
brechen;
Fall 'r':
r_flag = 1;
brechen;
Fall 'v':
v_flag = 1;
brechen;
Fall 'm':
m_flag = 1;
brechen;
Fall '?':
errflag ++;
brechen;
}
}
}
/ * Muss man gewesen sein oder mehr fehlerhaften Optionen übergeben -
Druckernutzung info und Ausgang * /
if (errflag! = 0)
{
print_usage ();
Ausgang (1);
}
char * sysname, * Maschine * nodename, * Release-Version *;
sysname = uts.sysname;
Maschine = uts.machine;
nodename = uts.nodename;
loslassen = uts.release;
version = uts.version;
if (A_flag == 1) {
printf ("% s% s% s% s% sn", sysname, Knotenname, Freigabe, Ausführung,
Maschine);
}
sonst
{
char * printstring;
/ * Platz zuweisen für alle Fälle .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (Version) +
strlen (release) +
strlen (nodename) +
strlen (Maschine) +6);
strcpy (printstring, "");
if (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
if (n_flag == 1) {
strcat (printstring, Knotenname);
strcat (printstring «,»);
}
wenn (r_flag == 1) {
strcat (printstring, Freigabe);
strcat (printstring, "");
}
if (v_flag == 1) {
strcat (printstring, Version);
strcat (printstring, "");
}
if (m_flag == 1) {
strcat (printstring, Maschine);
strcat (printstring, "");
}
puts (printstring);
kostenlos (printstring);
}
return 0;
}
Leere print_usage (void)
{
char * Nutzung [] = {"uname - (C) 2004 Kevin Waldron",
"Unter den Bedingungen der GNU General Public Licence Distributed",
"USAGE:", "uname [Optionen]",
"-s Drucken der Kernel-Name",
"-v Die Kernel-Version",
"-r Die Kernel-Version Drucken",
"-n Den Netzwerkknoten hostname",
"-m Drucken der Maschine Hardware name",
"-a Alle der oben Drucken",
"", "Ohne Optionen wirkt uname wie uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (Nutzungs + i));
}
}
Softwarebeschreibung:
Version: 0.1
Upload-Datum: 2 Jun 15
Lizenz: Frei
Popularität: 40
Kommentare nicht gefunden