uname er en spesiell versjon av uname. Støtter -en, -er, -r, -n, -v, -m alternativer.
BRUK: uname [alternativer]
-s Skriv ut kjernen navn
-V Skriv kernel versjon
-r Skriv ut kjernen utgivelsen
-n Skriv ut nettverksnoden vertsnavn
-m Skriv navnet maskinen maskinvare
-en Skriv ut alle de ovennevnte
Uten alternativer, fungerer uname som uname -s
Prøve:
# 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 = 0 errflag;
røye vert [256];
struct utsname uts;
if (gethostname (host, 255)! = 0 || uname (& uts) <0)
{
fprintf (stderr, "Kan ikke hente vert informationn");
exit (1);
}
/ * Hvis ingen alternativer, så bare skrive ut sysname * /
if (argc == 1) {
s_flag = 1;
}
annet
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
bryter (c) {
case 'a':
a_flag = 1;
break;
case 's':
s_flag = 1;
break;
case 'n':
n_flag = 1;
break;
case 'r':
r_flag = 1;
break;
case 'v':
v_flag = 1;
break;
case 'm':
m_flag = 1;
break;
case "?":
errflag ++;
break;
}
}
}
/ * Må ha vært en eller flere feilaktige alternativer bestått -
utskriftsbruk info og exit * /
if (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysname, * maskin, * nodenavnet, * release, * versjon;
sysname = uts.sysname;
Maskinen = uts.machine;
nodename = uts.nodename;
slipp = uts.release;
version = uts.version;
if (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodenavn, utgivelse, versjon,
maskin);
}
annet
{
char * printstring;
/ * Bevilge nok plass til alle eventualiteter .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (versjon) +
strlen (release) +
strlen (nodenavn) +
strlen (maskin) 6);
strcpy (printstring, "");
if (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
if (n_flag == 1) {
strcat (printstring, nodenavn);
strcat (printstring, "");
}
if (r_flag == 1) {
strcat (printstring, release);
strcat (printstring, "");
}
if (v_flag == 1) {
strcat (printstring versjon);
strcat (printstring, "");
}
if (m_flag == 1) {
strcat (printstring, maskin);
strcat (printstring, "");
}
puts (printstring);
gratis (printstring);
}
returnere 0;
}
void print_usage (void)
{
char * bruk [] = {"uname - (C) 2004 Kevin Waldron",
"Distribuert under GNU General Public Licence",
"BRUK:", "uname [alternativer]",
"-s Skriv ut kjernen navn",
"-V Skriv kjernen versjonen",
"-r Skriv ut kjernen utgivelsen",
"-n Skriv ut nettverksnode hostname",
"-M Skriv ut maskinens hardware navnet",
"-en Skriv ut alle de ovennevnte",
"", "Uten alternativer, fungerer uname som uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", (bruk + i));
}
}
Prog.varedetaljer:
Versjon: 0.1
Last opp dato: 2 Jun 15
Lisens: Gratis
Popularitet: 6
Kommentarer ikke funnet