uname on erityinen versio uname. Tukee -a, -S, -R, -n, -v, -m vaihtoehtoja.
KÄYTTÖ: uname [valinnat]
-s Tulosta ytimen nimi
-v Tulosta ytimen versio
-r Tulosta ytimen
-n Tulosta verkkosolmun hostname
-m Tulosta laitteiston nimi
-a Tulosta kaikki edellä
Ilman vaihtoehtoja, uname toimii kuten uname -s
Näyte:
#include
# include
#include
# include
#include
void 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,
m_flag = 0;
int errflag = 0;
char isäntä [256];
struct utsname UTS;
jos (gethostname (host, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Ei saada isäntä informationn");
exit (1);
}
/ * Mikäli ei vaihtoehtoja, sitten vain tulostaa sysName * /
jos (argc == 1) {
s_flag = 1;
}
muu
{
while ((c = getopt (argc, argv "asnrvm"))! = -1)
{
kytkin (c) {
tapaus '':
a_flag = 1;
break;
tapaus "s":
s_flag = 1;
break;
tapaus 'n':
n_flag = 1;
break;
tapaus 'r':
r_flag = 1;
break;
tapaus 'v':
v_flag = 1;
break;
tapaus "m":
m_flag = 1;
break;
tapaus "?":
errflag ++;
break;
}
}
}
/ * Täytyy olla yksi tai useampia virheellisiä vaihtoehtoja kulunut -
Tulosta käyttötiedot ja poistu * /
jos (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysName, * kone, * nodename, * julkaisu, * versiota;
sysName = uts.sysname;
kone = uts.machine;
nodename = uts.nodename;
release = uts.release;
version = uts.version;
jos (a_flag == 1) {
printf ("% s% s% s% s% sn", sysName nodename, julkaisu, versio,
kone);
}
muu
{
char * printstring;
/ * Käyttää riittävästi tilaa kaikkeen mahdolliseen .... * /
printstring = (char *) malloc (strlen (sysName) +
strlen (versio) +
strlen (release) +
strlen (nodename) +
strlen (kone) +6);
strcpy (printstring, "");
jos (s_flag == 1) {
strcat (printstring, sysName);
strcat (printstring, "");
}
jos (n_flag == 1) {
strcat (printstring nodename);
strcat (printstring, "");
}
jos (r_flag == 1) {
strcat (printstring, release);
strcat (printstring, "");
}
jos (v_flag == 1) {
strcat (printstring, versio);
strcat (printstring, "");
}
jos (m_flag == 1) {
strcat (printstring, kone);
strcat (printstring, "");
}
puts (printstring);
vapaa (printstring);
}
palata 0;
}
void print_usage (void)
{
char * käyttö [] = {"uname - (C) 2004 Kevin Waldron",
"Hajautettu ehtojen mukaisesti GNU General Public Licence",
"KÄYTTÖ:", "uname [optiot]",
"-s Tulosta ytimen nimi",
"-v Tulosta ytimen versio",
"-r Tulosta ytimen",
"-n Tulosta verkkosolmussa hostname",
"-m Tulosta laitteiston nimi",
"-a Tulosta kaikki edellä mainitut",
"", "Ilman vaihtoehtoja, uname toimii kuin uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (käyttö + i));
}
}
Ohjelmiston tiedot:
Kommentteja ei löytynyt