uname هو إصدار خاص من uname. يدعم خيارات -A، -s، -R، -n، -v، -m.
الاستعمال: [خيارات] uname
-s طباعة اسم النواة
-v طباعة نسخة النواة
-r طباعة إطلاق سراح النواة
-n طباعة العقدة شبكة المضيف
-m طباعة اسم الجهاز الجهاز
-A طباعة كل ما سبق
بدون خيارات، uname يتصرف مثل -s uname
عينة:
# تشمل
# تشمل
# تشمل
# تشمل
# تشمل
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 (ستدير "غير قادر على الحصول informationn المضيفة")؛
الخروج (1)؛
}
/ * إذا لم خيارات، ثم مجرد طباعة sysname * /
إذا (ARGC == 1) {
s_flag = 1؛
}
آخر
{
بينما ((ج = getopt (ARGC، ARGV "asnrvm"))! = -1)
{
التبديل (ج) {
حالة "أ":
a_flag = 1؛
كسر.
حالة الصورة ':
s_flag = 1؛
كسر.
حالة 'ن':
n_flag = 1؛
كسر.
حالة 'R':
r_flag = 1؛
كسر.
حالة 'الخامس':
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) {
printf ("٪ ق٪ ق٪ ق٪ ق٪ التعطيل"، sysname، nodename، الإصدار، الإصدار،
آلة)؛
}
آخر
{
شار * printstring.
/ * تخصيص مساحة كافية لجميع الاحتمالات .... * /
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 طباعة العقدة شبكة المضيف"،
"-m طباعة اسم الجهاز الجهاز"،
"وهو الأمر طباعة كل ما سبق"،
""، "بلا خيارات، uname يتصرف مثل -s uname"}؛
كثافة العمليات ط = 0؛
ل(ط = 0؛ ط <12؛ ط ++)
{
printf ("٪ التعطيل"، * (استخدام + ط))؛
}
}
تفاصيل البرنامج:
لم يتم العثور على التعليقات