uname הוא גרסה מיוחדת של uname. תומך -a, -s, -r, -n, -v, -m אפשרויות.
שימוש: [אפשרויות] uname
-s הדפס שם הליבה
-v הדפסת גרסת הקרנל
-r הדפס שחרור הליבה
-n הדפס מארח צומת הרשת
-m הדפס שם חומרת מחשב
-a הדפסה כל האמור לעיל
ללא אפשרויות, uname מתנהג כמו -s uname
לדוגמא:
#include
#include
#include
#include
#include
print_usage חלל (void);
int ראשי (int argc, char * argv [])
{
int ג;
optarg char * extern;
optind extern int, optopt;
int a_flag = 0, s_flag = 0, n_flag = 0, r_flag = 0, v_flag = 0,
m_flag = 0;
int errflag = 0;
מארח char [256];
UTS utsname struct;
אם (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_flag = 1;
לשבור;
מקרה 'נ':
v_flag = 1;
לשבור;
'מ' 'המקרה:
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 *;
/ * להקצות מספיק מקום לכל אפשרויות .... * /
printstring = (char *) 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 חלל (חלל)
{
char שימוש * [] = {"uname - (C) 2004 קווין וולדרון",
"מופץ תחת התנאים של הרישיון הציבורי הכללי של הגנים",
"שימוש:", "[אפשרויות] uname",
"-S הדפס שם הליבה",
"-v הדפסת גרסת הקרנל",
"-r הדפס שחרור הליבה",
"-n הדפס מארח צומת הרשת",
"-m הדפס שם חומרת המכונה",
"כיבושין הדפסה כל האמור לעיל",
"", "בלי אפשרויות, uname מתנהג כמו -s uname"};
int i = 0;
ל( i = 0; i <12; i ++)
{
printf ("SN%", * (שימוש + i));
}
}
פרטי תוכנה:
תגובות לא נמצא