系統資料檔案和資訊之組檔案

2022-05-04 20:21:22 字數 855 閱讀 6179

unix組檔案(posix.1稱其為組資料庫)包含了表6-3中所示的字段。這些字段包含在中所定義的group結構中。

表6-3 /etc/group檔案中的字段

欄位gr_mem是乙個指標陣列,其中每個指標各指向乙個屬於該組的使用者名稱。該陣列以空指標結尾。

可以用下列兩個由posix.1定義的函式來檢視組名或數值組id。

#include struct group *getgrgid( gid_t gid );

struct group *getgrnam( const

char *name );

兩個函式返回值:若成功則返回指標,若出錯則返回null

如同對口令檔案進行操作的函式一樣,這兩個函式也返回指向乙個靜態變數的指標,在每次呼叫時都重寫該靜態變數。

如果需要搜尋整個組檔案,則需要使用另外幾個函式。下列三個函式類似於針對口令檔案的三個函式。

#include struct group *getgrent( void

);返回值:若成功則返回指標,若出錯或到達檔案結尾則返回null

void setgrent( void

);void endgrent( void );

setgrent函式開啟組檔案(如若它尚未被開啟)並反繞(rewinds  to  the  beginning)它。getgrent函式從組檔案中讀下乙個記錄,如若該檔案尚未開啟則先開啟它。endgrent函式關閉組檔案。

本篇博文內容摘自《unix環境高階程式設計》(第二版),僅作個人學習記錄所用。關於本書可參考:

系統資料檔案和資訊

include 分別通過uid和使用者名稱獲取與指定使用者相關的passwd資訊 成功返回指標,出錯返回null struct passwd getpwuid uid t uid struct passwd getpwnam const char name passwd結構可以儲存 etc pass...

系統資料檔案和資訊之附加組ID

4.2bsd引入了附加組id supplementary group id 的概念。我們不僅可以屬於口令檔案記錄項中組id所對應的組,也可屬於多達16個另外的組。檔案訪問許可權檢查相應被修改為 不僅將程序的有效組id與檔案的組id相比較,而且也將所有附加組id與檔案的組id進行比較。常量ngroup...

APUE筆記 系統資料檔案和資訊

passwd結構體 include 這個結構體的字段也就是 ect passwd中看到的字段 root x 0 0 root root bin bash bin x 1 1 bin bin sbin nologin daemon x 2 2 daemon sbin sbin nologin etc ...