uname est une version spéciale de uname. Supporte -a, -s, -r, -n, -v -m options.
UTILISATION: uname [options]
-s Imprimer le nom du noyau
-v Affiche la version du noyau
-r Imprimer la version du noyau
-n Imprimer le noeud nom d'hôte réseau
-m Imprimer le nom du matériel de la machine
-a Imprimer tout ce qui précède
Sans options, uname agit comme uname -s
Echantillon:
#include
#include
#include
#include
#include
print_usage void (void);
int main (int argc, char * argv [])
{
int c;
extern char * optarg;
extern int optind, optopt;
a_flag int = 0, s_flag = 0, n_flag = 0, r_flag = 0, v_flag = 0,
m_flag = 0;
int errflag = 0;
omble hôte [256];
uts struct utsname;
if (gethostname (hôte, 255)! = 0 || uname (& uts) <0)
{
fprintf (stderr, "Impossible d'obtenir informationn hôte");
sortie (1);
}
/ * Si aucune option, puis juste imprimer sysname * /
if (argc == 1) {
s_flag = 1;
}
autre
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
switch (c) {
cas 'a':
a_flag = 1;
break;
's' cas:
s_flag = 1;
break;
cas 'n':
n_flag = 1;
break;
cas «r»:
r_flag = 1;
break;
cas 'v':
v_flag = 1;
break;
cas 'm':
m_flag = 1;
break;
cas '?':
errflag ++;
break;
}
}
}
/ * Doit avoir été une ou plus d'options erronées passé -
Imprimer les informations d'utilisation et de sortie * /
if (errflag! = 0)
{
print_usage ();
sortie (1);
}
char * sysname, * machine * nodename, * la libération, * la version;
sysname = uts.sysname;
Machine = uts.machine;
nodename = uts.nodename;
libérer = uts.release;
version = uts.version;
if (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodename, la libération, la version,
la machine);
}
autre
{
char * printstring;
/ * Allouer suffisamment d'espace pour toutes les éventualités .... * /
printstring = (char *) malloc (strlen (sysname) +
strlen (version) +
strlen (presse) +
strlen (nodename) +
strlen (machine) 6);
strcpy (printstring, "");
if (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
si (== n_flag 1) {
strcat (printstring, nodename);
strcat (printstring, "");
}
si (== r_flag 1) {
strcat (printstring, presse);
strcat (printstring, "");
}
if (v_flag == 1) {
strcat (printstring, version);
strcat (printstring, "");
}
si (== m_flag 1) {
strcat (printstring, la machine);
strcat (printstring, "");
}
puts (printString);
libre (printstring);
}
return 0;
}
print_usage void (void)
{
char * utilisation [] = {"uname - (C) 2004 Kevin Waldron",
"Distribué sous les termes de la GNU General Public Licence»,
"UTILISATION:", "uname [options]",
"-s Imprimer le nom du noyau»,
"-v Affiche la version du noyau»,
"-R Imprimer la version du noyau»,
"-n Imprimer le noeud nom d'hôte réseau",
"-m Imprimer le nom du matériel de la machine»,
"-a Imprimer tout ce qui précède»,
"", "Sans options, uname agit comme uname -s"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (utilisation + i));
}
}
Détails logiciels:
Version: 0.1
Date de transfert: 2 Jun 15
Licence: Gratuit
Popularité: 40
Commentaires non trouvées