uname yra speciali versija uname. Palaiko -a, -ai, -r, -n, -v, -m galimybes.
NAUDOJIMAS: uname [options]
-S Spausdinti branduolio vardas
-v Spausdinti branduolio versija
-r Spausdinti branduolio spaudai
-N Spausdinti tinklo mazgas hostname
-m Spausdinti mašina aparatūros vardą
-a Spausdinti visi aukščiau
Be variantų, uname veikia kaip uname -s
Pavyzdys:
#include
#include
#include
#include
#include
negaliojančiu print_usage (tuščia);
int main (int argc, char * argv [])
{
tarpinis junginys c;
eksternu char * optarg;
eksternu 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 priimančiosios [256];
konstrukto utsname uts;
jei (gethostname (priimančioji, 255)! = 0 || uname (& uts) <0)
{
fprintf (stderr, "Nepavyko gauti priimančiosios informationn");
išeiti (1);
}
/ * Jei nėra galimybės, tada tiesiog atsispausdinti sysname * /
jei (argc == 1) {
s_flag = 1;
}
kitas
{
o ((c = getopt (argc, argv "asnrvm"))! = -1)
{
jungiklis (c) {
atveju "a":
a_flag = 1;
pertrauka;
atveju "s":
s_flag = 1;
pertrauka;
atveju "n":
n_flag = 1;
pertrauka;
atveju "r":
r_flag = 1;
pertrauka;
atveju "prieš":
v_flag = 1;
pertrauka;
Bylos "M":
m_flag = 1;
pertrauka;
atveju "?":
errflag ++;
pertrauka;
}
}
}
/ * Turi būti viena ar daugiau klaidingi variantai praėjo -
Spausdinti naudojimas informacijos ir išeiti * /
jei (errflag! = 0)
{
print_usage ();
išeiti (1);
}
char * sysname * mašina, * nodeName * spaudai, * versija;
sysname = uts.sysname;
Mašina = uts.machine;
nodeName = uts.nodename;
išleisti = uts.release;
versija = uts.version;
jei (a_flag == 1) {
printf ("% s% s% s% s% SN", sysname, nodeName, atleiskite, versija,
mašina);
}
kitas
{
char * printstring;
/ * Skirti pakankamai erdvės visiems atvejams .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (versija) +
strlen (spaudai) +
strlen (nodeName) +
strlen (mašina) 6);
strcpy (printstring, "");
jei (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
jei (n_flag == 1) {
strcat (printstring, nodeName);
strcat (printstring, "");
}
jei (r_flag == 1) {
strcat (printstring, spaudai);
strcat (printstring, "");
}
jei (v_flag == 1) {
strcat (printstring versija);
strcat (printstring, "");
}
jei (m_flag == 1) {
strcat (printstring, mašina);
strcat (printstring, "");
}
užsideda (printstring);
nemokamai (printstring);
}
grįžti 0;
}
negaliojančiu print_usage (tuščia)
{
char * naudojimas [] = {"uname - (C) 2004 Kevinas Waldron"
"Platinama pagal GNU General Public Licence sąlygomis",
"NAUDOJIMAS:", "uname [options]",
"-S Spausdinti branduolio vardas",
"-v Spausdinti branduolio versija"
"-R Spausdinti branduolio versijos"
"-N Spausdinti tinklo mazgas hostname"
"-m Spausdinti mašinos aparatūros vardą",
"-A Spausdinti visi aukščiau",
"", "Be variantų, uname veikia kaip uname -s"};
int i = 0;
(I = 0; i <12; i ++)
{
printf ("% SN", * (naudojimas + I));
}
}
Programinė detalės:
Versija: 0.1
Įkėlimo datą: 2 Jun 15
Licencija: Nemokamai
Populiarumas: 6
Komentarai nerastas