uname egy speciális változata uname. Támogatja -a, -s, -r, -n, a -v -m opciókat.
HASZNÁLAT: uname [opciók]
-s nyomtatása kernel nevét
-v Kiírja a kernel verzió
-r a kernel kiadásának
-n a hálózati csomópont hostname
-m a gép hardvere név
-a nyomtatása az összes fenti
Opciók nélkül, uname viselkedik, mint uname -s
Minta:
#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 host [256];
struct utsname uts;
if (gethostname (host, 255)! = 0 || uname (& uts) <0)
{
fprintf (stderr, "Nem sikerült a fogadó informationn");
exit (1);
}
/ * Ha nincs lehetőség, akkor csak nyomtatni sysName * /
if (argc == 1) {
s_flag = 1;
}
más
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
kapcsoló (C) {
esetében az "a":
a_flag = 1;
törés;
esetében az "s":
s_flag = 1;
törés;
esetében 'n':
n_flag = 1;
törés;
esetében az "r":
r_flag = 1;
törés;
esetén "v":
v_flag = 1;
törés;
esetében az "m":
m_flag = 1;
törés;
ügy "?":
errflag ++;
törés;
}
}
}
/ * Lehetett egy vagy több hibás beállítások telt el -
print használati információk és kilépés * /
ha (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysName, * gép, * csomópontnévhez, * kiadása, * változata;
sysName = uts.sysname;
gép = uts.machine;
csomópontnévhez = uts.nodename;
engedje = uts.release;
version = uts.version;
if (a_flag == 1) {
printf ("% s% s% s% s% sn", sysName, nodename, verzióval,
gép);
}
más
{
char * printstring;
/ * Kiosztani elég hely minden eshetőségre .... * /
printstring = (char *) malloc (strlen (sysName) +
strlen (változat) +
strlen (release) +
strlen (nodename) +
strlen (gép) +6);
strcpy (printstring, "");
if (s_flag == 1) {
strcat (printstring, sysName);
strcat (printstring, "");
}
if (n_flag == 1) {
strcat (printstring, nodename);
strcat (printstring, "");
}
if (r_flag == 1) {
strcat (printstring, kiadás);
strcat (printstring, "");
}
if (v_flag == 1) {
strcat (printstring, változat);
strcat (printstring, "");
}
if (m_flag == 1) {
strcat (printstring, gép);
strcat (printstring, "");
}
helyezi (printstring);
ingyenes (printstring);
}
return 0;
}
void print_usage (void)
{
char * Használat [] = {"uname - (C) 2004 Kevin Waldron",
"Terjesztve a GNU General Public Licence",
"Használat:", "uname [opciók]",
"-s Nyomtatása kernel neve",
"-v Kiírja a kernel verzió",
"-r A kernel kiadásának",
"-n A hálózati csomópont hostname",
"-m A gép hardvere nevét",
"-A Nyomtatása az összes fenti",
"", "Opciók nélkül, uname viselkedik, mint uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (használat + i));
}
}
Szoftver adatai:
Változat: 0.1
Feltöltés dátuma: 2 Jun 15
Engedély: Ingyenes
Népszerűség: 6
Hozzászólás nem található