《APUE》第6章練習1

 問題:編寫一個程序,它調用uname並輸出utsname結構中的全部字段,並將輸出與uname(1)命令的輸出結構作比較。node

我原本覺得utsname結構也跟passwd結構同樣,也有那三個函數來獲取整個結構的內容,可是看了頭文件後才發現,頭文件裏面除告終構體的定義就只有這個uname函數了。vim

我用逐項輸出成員的內容來模仿uname命令,我不知道有沒有能夠用循環的方式來輸出一個結構的內容。網絡

下面給出個人代碼:dom

 1 /* 調用uname並輸出utename結構中的全部字段 */
 2 #include <sys/utsname.h>
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 
 6 #define MAX 200
 7 
 8 int main(void)
 9 {
10     struct utsname buf;
11 
12     if (uname(&buf) == -1)
13         exit(1);
14     
15     printf("system name: %s\n", buf.sysname);
16     printf("nodename: %s\n", buf.nodename);
17     printf("release: %s\n", buf.release);
18     printf("version: %s\n", buf.version);
19     printf("machine: %s\n", buf.machine);
20     printf("domainname: %s\n", buf.__domainname);
21 
22     return 0;
23 }
View Code

這是跟uname -a 比較的結果:ide

00函數

就差了幾個X86_64和GNU/Linux,那個domainname是關於網絡的我也不太明白。spa

ps:在網上搜怎麼man一個頭文件的時候,我之外地發現了vim的兩個好命令!1.用gf能夠進入頭文件查看文件內容;2.用shift+k就能夠查看某函數的說明(即man func)code

相關文章
相關標籤/搜索