uname є спеціальна версія uname. Підтримка -a, -s, -r, -n, -v, -m опції.
ВИКОРИСТАННЯ: uname [опції]
-s Вивести ім'я ядра
-v Вивести версію ядра
-r Вивести реліз ядра
-n Вивести ім'я хоста мережевого вузла
-m Вивести ім'я машини апаратного
-a Видає все вище
Без варіантів, uname діє як uname -s
Зразок:
#include
#include
#include
#include
#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 ОТС;
якщо (gethostname (хост, 255)! = 0 || uname (& ОТС) <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':
m_flag = 1;
перерва;
Справа '?':
errflag ++;
перерва;
}
}
}
/ * Повинен бути один або більше помилкових варіантів пройшло -
ІНФ.ПЕЧАТІ використання і вихід * /
якщо (errflag! = 0)
{
print_usage ();
вихід (1);
}
символ * SYSNAME * машина * ім'я вузла, * випуск * версія;
SYSNAME = uts.sysname;
машина = uts.machine;
ім'я вузла = uts.nodename;
звільнити = uts.release;
Версія = uts.version;
якщо (a_flag == 1) {
Е ("% s% s% s% s% зп", SYSNAME, ім'я вузла, реліз, версія,
машина);
}
ще
{
символ * printstring;
/ * Виділити достатньо місця на всі випадки .... * /
printstring = (символ *) Танос (STRLEN (SYSNAME) +
StrLen (версія) +
StrLen (реліз) +
StrLen (ім'я вузла) +
StrLen (машина) +6);
STRCPY (printstring, "");
якщо (s_flag == 1) {
strcat (printstring, SYSNAME);
strcat (printstring, "");
}
якщо (n_flag == 1) {
strcat (printstring, ім'я вузла);
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 - (С) 2004 Кевін Уолдрон",
"Поширюється під умовами GNU General Public Licence",
"ВИКОРИСТАННЯ:", "uname [опції]",
"-s Вивести ім'я ядра",
"-v Вивести версію ядра",
"-r Роздрукувати випуск ядра",
"-n Вивести ім'я хоста мережевого вузла",
"-m Вивести ім'я апаратної машини",
"-a Видає все вище",
"", "Без варіантів, uname діє як uname -s"};
Int я = 0;
для (я = 0; я <12; я ++)
{
Е ("% SN", * (використання + я));
}
}
Дані програми:
Версія: 0.1
Дата завантаження: 2 Jun 15
Ліцензія: Безкоштовно
Популярність: 6
Коментар не знайдено