uname este o versiune specială a uname. Suporta -a, -s, -R, -n, -v, -m opțiuni.
UTILIZARE: uname [opțiuni]
-s Print numele kernel
-v Print versiunea de kernel
-r Print versiunea de nucleu
-n Print gazdă nod de rețea
-m Print numele hardware mașină
-un Imprimare toate cele de mai sus
Fără opțiuni, uname acționează ca -s uname
Eșantion:
#include
#include
#include
#include
#include
print_usage void (void);
int main (int argc, char * argv [])
{
int c;
extern char * OPTARG;
extern OPTIND int optopt;
int a_flag = 0, s_flag = 0, n_flag = 0, r_flag = 0, v_flag = 0,
m_flag = 0;
int errflag = 0;
char gazdă [256];
UTS struct utsname;
dacă (gethostname (gazdă, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Nu pot obține informationn gazdă");
exit (1);
}
/ * Dacă există opțiuni, apoi doar de imprimare sysname * /
dacă (argc == 1) {
s_flag = 1;
}
altfel
{
în timp ce ((c = getopt (argc, argv "asnrvm"))! = -1)
{
comutator (c) {
caz "a":
a_flag = 1;
break;
caz "s":
s_flag = 1;
break;
caz 'n':
n_flag = 1;
break;
caz "r":
r_flag = 1;
break;
caz "v":
v_flag = 1;
break;
caz "m":
m_flag = 1;
break;
caz "?:
errflag ++;
break;
}
}
}
/ * Trebuie să fi fost unul sau mai multe opțiuni eronate trecut -
print informatii de utilizare și de ieșire * /
dacă (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysname, * masina, * numenod, * de presă, * versiunea;
sysname = uts.sysname;
mașină = uts.machine;
numenod = uts.nodename;
eliberați = uts.release;
Versiunea = uts.version;
dacă (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, numenod, de presă, versiunea,
mașină);
}
altfel
{
char * printstring;
/ * Aloca suficient spatiu pentru toate eventualitățile .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (versiune) +
strlen (eliberare) +
strlen (numenod) +
strlen (masina) +6);
strcpy (printstring, "");
dacă (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
dacă (== n_flag 1) {
strcat (printstring, numenod);
strcat (printstring, "");
}
dacă (== r_flag 1) {
strcat (printstring, eliberare);
strcat (printstring, "");
}
dacă (v_flag == 1) {
strcat (printstring, versiunea);
strcat (printstring, "");
}
dacă (== m_flag 1) {
strcat (printstring, masina);
strcat (printstring, "");
}
pune (printstring);
liber (printstring);
}
reveni 0;
}
print_usage void (void)
{
char * Utilizarea [] = {"uname - (C) 2004 Kevin Waldron",
"Distribuit în termenii GNU General Public Licence",
"UTILIZARE:", "uname [opțiuni]",
"-s Print numele kernel",
"-v Print versiunea de kernel",
"-r Print versiunea de nucleu",
"-n Print hostname nod de rețea",
"-m Print numele hardware mașină",
"-a Imprimare toate cele de mai sus",
"", "Fără opțiuni, uname actioneaza ca -s uname"};
int i = 0;
pentru (i = 0; i <12; i ++)
{
printf ("% sn", * (utilizare + i));
}
}
Detalii soft:
Versiune: 0.1
Incarca data: 2 Jun 15
Licenţă: Gratuit
Popularitate: 40
Comentariile nu a fost găsit