uname je speciální verze uname. Podporuje -a, -s, -r, -n, -v, -m.
POUŽITÍ: uname [volby]
-s Vytiskněte název jádra
-v Vytisknout verzi jádra
-r Vytiskněte uvolnění jádra
-n Vytisknout uzlu sítě hostname
-m Vytiskněte název stroj hardware
-a Vytiskněte všechny výše uvedené
Bez možnosti, uname funguje jako uname -s
Ukázka:
#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 hostitel [256];
struct utsname UTS;
if (gethostname (host, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Nelze získat hostitele informationn");
exit (1);
}
/ * Pokud žádné volby, pak jen vytisknout sysname * /
if (argc == 1) {
s_flag = 1;
}
jiný
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
spínač (c) {
Případ "":
a_flag = 1;
rozbít;
případ "s":
s_flag = 1;
rozbít;
Případ "n":
n_flag = 1;
rozbít;
případ "r":
r_flag = 1;
rozbít;
případ "v":
v_flag = 1;
rozbít;
případ "m":
m_flag = 1;
rozbít;
pouzdro '?':
errflag ++;
rozbít;
}
}
}
/ * Musí být jeden nebo více chybné volby prošel -
print info využití a výstup * /
jestliže (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysname, * stroj, * nodename, * vydání, * verze;
sysname = uts.sysname;
Stroj = uts.machine;
nodename = uts.nodename;
uvolnit = uts.release;
version = uts.version;
jestliže (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodename, vydání, verze,
stroj);
}
jiný
{
char * printstring;
/ * Přidělit dostatek prostoru pro všechny eventuality .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (verze) +
strlen (uvolnění) +
strlen (nodename) +
strlen (machine) +6);
strcpy (printstring, "");
jestliže (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
jestliže (n_flag == 1) {
strcat (printstring, nodename);
strcat (printstring, "");
}
jestliže (r_flag == 1) {
strcat (printstring, uvolnění);
strcat (printstring, "");
}
jestliže (v_flag == 1) {
strcat (printstring, verze);
strcat (printstring, "");
}
jestliže (m_flag == 1) {
strcat (printstring, stroje);
strcat (printstring, "");
}
puts (printstring);
zdarma (printstring);
}
return 0;
}
void print_usage (void)
{
char * Využití [] = {"uname - (C) 2004 Kevin Waldron",
"Distribuované podle podmínek GNU General Public Licence",
"POUŽITÍ", "uname [volby]",
"-s Vytiskněte název jádra",
"-v Tisk verzi jádra",
"-r Vytiskněte vydání jádra",
"-n Vytisknout síťového uzlu hostname",
"-m Tisk hardwarovou název počítače",
"-a Vytiskněte všechny výše uvedené",
"", "Bez možnosti, uname funguje jako uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (využití + i));
}
}
Podrobnosti Software:
Komentáře nebyl nalezen