uname é uma versão especial do uname. Suporta -a, -s, -r, -n, -v, -m opções.
USO: uname [opções]
-s Imprimir o nome do kernel
-v Exibe a versão do kernel
-r Imprimir a versão do kernel
-n Imprimir o nó hostname rede
-m Imprimir o nome do hardware da máquina
-a Imprimir todos os itens acima
Sem opções, uname age como -s uname
Amostra:
#include
#include
#include
#include
#include
print_usage void (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;
carvão animal hospedeiro [256];
uts struct utsname;
if (gethostname (host, 255)! = 0 || uname (& UTS) <0)
{
fprintf (stderr, "Não é possível obter informationn host");
saída (1);
}
/ * Se não há opções, em seguida, basta imprimir sysname * /
if (argc == 1) {
s_flag = 1;
}
outro
{
while ((c = getopt (argc, argv, "asnrvm"))! = -1)
{
switch (c) {
caso 'a':
a_flag = 1;
parar;
caso 's':
s_flag = 1;
parar;
caso 'n':
n_flag = 1;
parar;
caso 'r':
r_flag = 1;
parar;
caso 'v':
v_flag = 1;
parar;
caso 'm':
m_flag = 1;
parar;
caso '?':
errflag ++;
parar;
}
}
}
/ * Deve ter sido uma ou mais opções erradas passado -
imprimir informações de uso e de saída * /
se (errflag! = 0)
{
print_usage ();
saída (1);
}
char * sysname, * máquina, * nodename, * libertação, * versão;
sysname = uts.sysname;
máquina = uts.machine;
nodename = uts.nodename;
libertar = uts.release;
version = uts.version;
se (a_flag == 1) {
printf ("% s% s% s% s% sn", sysname, nodename, liberação, versão,
máquina);
}
outro
{
char * PrintString;
/ * Alocar espaço suficiente para todas as eventualidades .... * /
PrintString = (char *) malloc (strlen (sysname) +
strlen (versão) +
strlen (release) +
strlen (nodename) +
strlen (máquina) 6);
strcpy (PrintString, "");
se (s_flag == 1) {
strcat (PrintString, sysname);
strcat (PrintString, "");
}
se (n_flag == 1) {
strcat (PrintString, nodename);
strcat (PrintString, "");
}
se (r_flag == 1) {
strcat (PrintString, release);
strcat (PrintString, "");
}
se (v_flag == 1) {
strcat (PrintString, versão);
strcat (PrintString, "");
}
se (m_flag == 1) {
strcat (PrintString, máquina);
strcat (PrintString, "");
}
puts (PrintString);
livre (PrintString);
}
retornar 0;
}
print_usage void (void)
{
char * uso [] = {"uname - (C) 2004 Kevin Waldron",
"Distribuído sob os termos da GNU General Public Licence",
"USO:", "uname [opções]",
"-s Imprimir o nome do kernel",
"-V Imprime a versão do kernel",
"-r Imprimir a versão do kernel",
"-n Imprimir o nó hostname rede",
"-m Imprimir o nome do hardware da máquina",
"-a Imprimir todas as anteriores",
"", "Sem opções, uname age como -s uname"};
int i = 0;
for (i = 0; i <12; i ++)
{
printf ("% sn", * (uso + i));
}
}
Detalhes de Software:
Versão: 0.1
Data de upload: 2 Jun 15
Licença: Livre
Popularidade: 40
Comentários não encontrado