uname е специална версия на uname. Поддържа -а, -s, -r, -п, -v, -т опции.
Употреба: uname [опции]
-s Печат името на ядрото
-v Печат версията на ядрото
-r Печат освобождаването на ядрото
-М Печат името на хоста мрежов възел
-m Печат името на машината хардуер
-а Печат всички по-горе
Без опции, uname действа като uname -s
Извадка:
# включват
# включват <Сис / utsname.h>
#include
# включват
# включват
нищожен print_usage (недействителни);
INT главната (INT argc, Чар * argv [])
{
INT C;
ученик Чар * optarg;
ученик 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;
Чар домакин [256];
структура на utsname UTS;
ако (gethostname (хост, 255)! = 0 || uname (& UTS) <0)
{
fprintf (STDERR, "Не може да получите домакин informationn");
изход (1);
}
/ * Ако не опции, след това просто печатат sysname * /
ако (argc == 1) {
s_flag = 1;
}
още
{
докато ((с = getopt (argc, argv, "asnrvm"))! = -1)
{
превключвател (в) {
случай "а":
a_flag = 1;
прекъсване;
случай "S":
s_flag = 1;
прекъсване;
случай "N":
n_flag = 1;
прекъсване;
случай "R":
r_flag = 1;
прекъсване;
случай "V":
v_flag = 1;
прекъсване;
случай "М":
m_flag = 1;
прекъсване;
случай "?":
errflag ++;
прекъсване;
}
}
}
/ * Трябва да е било едно или повече грешни възможности минаха -
принт инфо използване и напускане * /
ако (errflag! = 0)
{
print_usage ();
изход (1);
}
Чар * sysname, * машина, * nodename, * освобождаване, * версия;
sysname = uts.sysname;
машина = uts.machine;
nodename = uts.nodename;
освободи = uts.release;
Версия = uts.version;
ако (a_flag == 1) {
ФОРМАТ ("% S% S% S% S% SN", sysname, nodename, освобождаване, версия,
машина);
}
още
{
Чар * printstring;
/ * Отпусне достатъчно пространство за всякакви изненади .... * /
printstring = (Чар *) изчистване (strlen (sysname) +
strlen (версия) +
strlen (освобождаване) +
strlen (nodename) +
strlen (машина) 6);
strcpy (printstring, "");
ако (s_flag == 1) {
strcat (printstring, sysname);
strcat (printstring, "");
}
ако (n_flag == 1) {
strcat (printstring, nodename);
strcat (printstring, "");
}
ако (r_flag == 1) {
strcat (printstring, освобождаване);
strcat (printstring, "");
}
ако (v_flag == 1) {
strcat (printstring, версия);
strcat (printstring, "");
}
ако (m_flag == 1) {
strcat (printstring, машина);
strcat (printstring, "");
}
поставя (printstring);
безплатно (printstring);
}
връщане 0;
}
нищожен print_usage (недействителни)
{
Чар ползване * [] = {"uname - (C) 2004 Kevin Waldron",
"Разпространявана при условията на Public Licence на GNU General",
"Употреба:", "uname [опции]",
"-S Печат името на ядрото",
"-V Печат версията на ядрото",
"-R Печат освобождаването на ядрото",
"-М Печат името на хоста мрежов възел",
"-m Печат името на машината на хардуер",
"-а Печат всички по-горе",
"", "Без опции, uname действа като uname -s"};
INT I = 0;
за (I = 0; I <12; I ++)
{
ФОРМАТ ("% SN", * (използване + I));
}
}
Софтуер детайли:
Версия: 0.1
Дата на качване: 2 Jun 15
Разрешително: Безплатно
Популярност: 40
Коментари не е намерена