uname is een speciale versie van uname. Ondersteunt -a, -s, -r, -n, -v, -m opties.
GEBRUIK: uname [opties]
-s Print de naam kernel
-v Druk de kernel-versie
-r Druk de kernel versie
-n Druk de netwerkknooppunt hostname
-m Druk de naam van de machine hardware
-een Print al het bovenstaande
Zonder opties, uname fungeert als uname -s
Voorbeeld:
#include
#include
#include
#include
#include
leegte 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, "Kan gastheer Informatiee krijgen");
exit (1);
}
/ * Als er geen opties, dan gewoon afdrukken sysname * /
if (argc == 1) {
s_flag = 1;
}
anders
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
schakelaar (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;
}
}
}
/ * Moet zijn geweest een of meer foutieve opties doorgegeven -
afdruk gebruik info en uitgang * /
if (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysname, * machine, * nodename, * release, * versie;
sysname = uts.sysname;
machine = uts.machine;
nodename = uts.nodename;
vrijgeven = uts.release;
version = uts.version;
if (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodename, release, versie,
machine);
}
anders
{
char * printstring;
/ * Toewijzen voldoende ruimte voor alle eventualiteiten .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (version) +
strlen (release) +
strlen (nodename) +
strlen (machine) +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, release);
strcat (printstring, "");
}
if (v_flag == 1) {
strcat (printstring, versie);
strcat (printstring, "");
}
if (m_flag == 1) {
strcat (printstring, machine);
strcat (printstring, "");
}
puts (printstring);
gratis (printstring);
}
0 keren;
}
leegte print_usage (void)
{
char * gebruik [] = {"uname - (C) 2004 Kevin Waldron",
"Gedistribueerd onder de voorwaarden van de GNU General Public Licence",
"GEBRUIK:", "uname [opties]",
"-S Print de naam kernel",
"-v Druk de kernel-versie",
"-r Druk de kernel release",
"-n Druk de netwerkknooppunt hostname",
"-M Print de machine hardware naam",
"-a Al het bovenstaande Print",
"", "Zonder opties, uname fungeert als uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (gebruik + i));
}
}
Software informatie:
Versie: 0.1
Upload datum: 2 Jun 15
Licentie: Gratis
Populariteit: 40
Reacties niet gevonden