uname es una versión especial de uname. Soporta -a, -s, -r, -n, -v, -m opciones.
USO: uname [opciones]
-s Imprimir el nombre del núcleo
-v Imprimir la versión del núcleo
-r Imprimir el lanzamiento del kernel
-n Imprimir el nombre de host del nodo de red
-m Imprime el nombre de hardware de la máquina
-a Imprimir todo lo anterior
Sin opciones, uname actúa como -s uname
Muestra:
#include
#include
#include
#include
#include
void print_usage (void);
int main (int argc, char * argv [])
{
int c;
extern OPTARG char *;
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 acogida [256];
uts estructura utsname;
si (gethostname (host, 255)! = 0 || uname (y uts) <0)
{
fprintf (stderr, "No se puede obtener Informationn host");
exit (1);
}
/ * Si no hay opciones, a continuación, sólo se imprimen sysname * /
si (argc == 1) {
s_flag = 1;
}
más
{
while ((c = getopt (argc, argv "asnrvm"))! = -1)
{
interruptor (c) {
caso 'a':
a_flag = 1;
descanso;
caso 's':
s_flag = 1;
descanso;
caso 'n':
n_flag = 1;
descanso;
caso 'r':
r_flag = 1;
descanso;
caso 'v':
v_flag = 1;
descanso;
caso 'm':
m_flag = 1;
descanso;
caso '?':
errflag ++;
descanso;
}
}
}
/ * Debe haber sido una o más opciones erróneas pasado -
imprimir información de uso y salida * /
si (errflag! = 0)
{
print_usage ();
exit (1);
}
char * sysname, * máquina * nodename, * la liberación, * la versión;
sysname = uts.sysname;
máquina = uts.machine;
nodename = uts.nodename;
liberar = uts.release;
version = uts.version;
si (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodename, la liberación, la versión,
máquina);
}
más
{
char * printString;
/ * Asignar suficiente espacio para todas las eventualidades .... * /
printString = (char *) malloc (strlen (sysname) +
strlen (versión) +
strlen (liberación) +
strlen (nodename) +
strlen (máquina) 6);
strcpy (printString, "");
si (s_flag == 1) {
strcat (printString, sysname);
strcat (printString, "");
}
si (== n_flag 1) {
strcat (printString, nodename);
strcat (printString, "");
}
si (== r_flag 1) {
strcat (printString, liberación);
strcat (printString, "");
}
si (v_flag == 1) {
strcat (printString, versión);
strcat (printString, "");
}
si (== m_flag 1) {
strcat (printString, máquina);
strcat (printString, "");
}
puts (printString);
libre (printString);
}
return 0;
}
void print_usage (void)
{
char * uso [] = {"uname - (C) 2004 Kevin Waldron",
"Distribuido bajo los términos de la Licencia Pública General de GNU",
"USO", "uname [opciones]",
"-s Imprimir el nombre del núcleo",
"-v Imprimir la versión del núcleo",
"-R Imprimir la liberación del núcleo",
"-n Imprimir el nombre de host del nodo de red",
"-m Imprime el nombre de hardware de la máquina",
"-a Imprimir todo lo anterior",
"", "Sin opciones, uname uname -s actúa como"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (uso + i));
}
}
Detalles de software:
Versión: 0.1
Fecha de carga: 2 Jun 15
Licencia: Libre
Popularidad: 6
Comentarios que no se encuentran