در uname نسخه ویژه ای از uname است. پشتیبانی از گزینه های -a، -s، -r، -n، -v، متر.
استفاده: uname [گزینه]
-s چاپ نام هسته
-v قابل چاپ نسخه کرنل
-r چاپ نسخه کرنل
-n چاپ نام میزبان گره شبکه
-m چاپ نام سخت افزار و ماشین آلات
-a چاپ تمام موارد بالا
بدون گزینه ها، uname مانند -s uname عمل می کند
نمونه:
# شامل
# شامل <سیستم / utsname.h>
# شامل
# شامل
# شامل
print_usage از درجه اعتبار ساقط (خالی).
اعضای هیات تحریریه اصلی (argc متوسط، کاراکتر * ی argv [])
{
ج هوشمند؛
در خارج کاراکتر * * * * optarg.
optind اعضای هیات در خارج، optopt.
اعضای هیات a_flag = 0، s_flag = 0، n_flag = 0، r_flag = 0، v_flag = 0،
m_flag = 0؛
اعضای هیات errflag = 0؛
میزبان کاراکتر [256].
UTS utsname ساختار.
اگر (gethostname (میزبان، 255)! = 0 || uname (و UTS) <0)
{
fprintf (stderr، "قادر به دریافت informationn میزبان")؛
خروج (1)؛
}
/ * اگر هیچ انتخاب، پس از آن فقط sysname چاپ * * * * /
اگر (argc == 1) {
s_flag = 1؛
}
دیگر
{
در حالی که ((ج = getopt (argc، ی argv، "asnrvm"))! = -1)
{
سوئیچ (ج) {
مورد 'A':
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)؛
}
char * به sysname، * و ماشین آلات، * nodename، * انتشار، نسخه *.
sysname = uts.sysname.
ماشین = uts.machine.
nodename = uts.nodename.
آزاد = uts.release.
نسخه = uts.version.
اگر (a_flag == 1) {
چون printf ("٪ s را از٪ s٪ s را از٪ s٪ SN"، sysname، nodename، انتشار، نسخه،
دستگاه).
}
دیگر
{
char * به printstring.
/ * اختصاص فضای کافی برای همه eventualities .... * * * * /
printstring = (کاراکتر *) malloc (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 کوین والدرون"،
"توزیع تحت شرایط مجوز عمومی همگانی گنو را"،
"استفاده:"، "uname [گزینه]"،
"-s چاپ نام هسته"،
"-v قابل چاپ نسخه کرنل"،
"-r چاپ نسخه کرنل"،
"-n چاپ نام میزبان گره شبکه"،
"متر چاپ نام سخت افزار و ماشین آلات"،
"a- تمام موارد بالا چاپ"،
""، "بدون گزینه ها، uname مانند -s uname عمل می کند"}؛
اعضای هیات من = 0؛
برای (من = 0؛ من <12؛ من ++)
{
چون printf ("٪ SN"، * (استفاده از + من))؛
}
}
جزئیات نرم افزار:
نظر یافت نشد