uname är en specialversion av uname. Stöder -a, -s, -r, -n, -v, -m alternativ.
ANVÄNDNING: uname [alternativ]
-s Skriv kärnan namn
-v Skriv ut kärnversionen
-r Skriv kärnan frigör
-n Skriv nätverksnoden värdnamn
-m Skriv maskinens hårdvara namn
-a Skriv ut alla ovanstående
Utan alternativ, fungerar uname som uname -s
Prov:
#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 värd [256];
struct utsname uts;
if (gethostname (värd 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Det går inte att få värd Informationn");
exit (1);
}
/ * Om inga alternativ, så är det bara att skriva ut sysname * /
om (argc == 1) {
s_flag = 1;
}
annars
{
while ((c = getopt (argc, argv "asnrvm"))! = -1)
{
omkopplare (c) {
fall "a":
a_flag = 1;
break;
fall "s":
s_flag = 1;
break;
fall 'n':
n_flag = 1;
break;
fall "r":
r_flag = 1;
break;
fall "v":
v_flag = 1;
break;
fall "m":
m_flag = 1;
break;
fall "?":
errflag ++;
break;
}
}
}
/ * Måste ha varit en eller flera felaktiga alternativ passerade -
utskriftsanvändning info och avsluta * /
if (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysname, * maskin, * nodnamn, * frisättning, * versionen;
sysname = uts.sysname;
maskin = uts.machine;
nodnamn = uts.nodename;
släpp = uts.release;
version = uts.version;
om (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodnamn, release, version,
maskin);
}
annars
{
char * printstring;
/ * Avsätta tillräckligt med utrymme för alla eventualiteter .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (version) +
strlen (release) +
strlen (nodnamn) +
strlen (maskin) 6);
strcpy (printstring, "");
om (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
om (n_flag == 1) {
strcat (printstring, nodnamn);
strcat (printstring, "");
}
om (r_flag == 1) {
strcat (printstring, release);
strcat (printstring, "");
}
om (v_flag == 1) {
strcat (printstring, version);
strcat (printstring, "");
}
om (m_flag == 1) {
strcat (printstring, maskin);
strcat (printstring, "");
}
sätter (printstring);
free (printstring);
}
återvända 0;
}
void print_usage (void)
{
char * användning [] = {"uname - (C) 2004 Kevin Waldron",
"Distribueras enligt villkoren i GNU General Public License",
"Användning", "uname [alternativ]",
"-S Skriv kärnan namnet"
"-v Skriv ut version av kärnan",
"-r Skriv kärnan release",
"-n Skriv nätverksnoden värdnamn",
"-M Skriv hårdvaru namn maskin",
"-a Skriv alla ovanstående",
"", "Utan alternativ, fungerar uname som uname -s"};
int i = 0;
for (i = 0; i <12, i ++)
{
printf ("% sn", * (användning + i));
}
}
Mjukvaruinformation:
Version: 0.1
Ladda upp dagen: 2 Jun 15
Licens: Gratis
Popularitet: 40
Kommentarer hittades inte