UNIX組文件(POSIX.1稱其為組數據庫)包含了表6-3中所示的字段。這些字段包含在<grp.h>中所定義的group結構中。
表6-3 /etc/group文件中的字段
字段gr_mem是一個指針數組,其中每個指針各指向一個屬于該組的用戶名。該數組以空指針結尾。
可以用下列兩個由POSIX.1定義的函數來查看組名或數值組ID。
#include <grp.h>struct group *getgrgid( gid_t gid );struct group *getgrnam( const char *name );兩個函數返回值:若成功則返回指針,若出錯則返回NULL
如同對口令文件進行操作的函數一樣,這兩個函數也返回指向一個靜態變量的指針,在每次調用時都重寫該靜態變量。
如果需要搜索整個組文件,則需要使用另外幾個函數。下列三個函數類似于針對口令文件的三個函數。
#include <grp.h>struct group *getgrent( void );返回值:若成功則返回指針,若出錯或到達文件結尾則返回NULLvoid setgrent( void );void endgrent( void );
setgrent函數打開組文件(如若它尚未被打開)并反繞(rewinds to the beginning)它。getgrent函數從組文件中讀下一個記錄,如若該文件尚未打開則先打開它。endgrent函數關閉組文件。
本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。
新聞熱點
疑難解答