詳解C語言中的getgrgid()函數(shù)和getgrnam()函數(shù)
C語言getgrgid()函數(shù):從組文件中取得指定gid的數(shù)據(jù)
頭文件:
#include <grp.h> #include <sys/types.h>
定義函數(shù):
strcut group * getgrgid(gid_t gid);
函數(shù)說明:getgrgid()用來依參數(shù)gid 指定的組識(shí)別碼逐一搜索組文件, 找到時(shí)便將該組的數(shù)據(jù)以group 結(jié)構(gòu)返回. 返回值:返回 group 結(jié)構(gòu)數(shù)據(jù), 如果返回NULL 則表示已無數(shù)據(jù), 或有錯(cuò)誤發(fā)生.
范例
/* 取得gid=3 的組數(shù)據(jù) */
#include <grp.h>
#include <sys/types.h>
main()
{
strcut group *data;
int i = 0;
data = getgrgid(3);
printf("%s:%s:%d:", data->gr_name, data->gr_passwd, data->gr_gid);
while(data->gr_mem[i])
printf("%s, ", data->mem[i++]);
printf("\n");
}
執(zhí)行:
sys:x:3:root, bin, adm
C語言getgrnam()函數(shù):從組文件中取得指定組的數(shù)據(jù)
頭文件:
#include <grp.h> #include <sys/types.h>
定義函數(shù):
strcut group * getgrnam(const char * name);
函數(shù)說明:getgrnam()用來逐一搜索參數(shù)那么指定的組名稱, 找到時(shí)便將該組的數(shù)據(jù)以group 結(jié)構(gòu)返回。group結(jié)構(gòu)請(qǐng)參考getgrent()。
返回值:返回 group 結(jié)構(gòu)數(shù)據(jù), 如果返回NULL 則表示已無數(shù)據(jù), 或有錯(cuò)誤發(fā)生.
范例
/* 取得adm 的組數(shù)據(jù) */
#include <grp.h>
#include <sys/types.h>
main()
{
strcut group * data;
int i = 0;
data = getgrnam("adm");
printf("%s:%s:%d:", data->gr_name, data->gr_passwd, data->gr_gid);
while(data->gr_mem[i])
printf("%s, ", data->gr_mem[i++]);
printf("\n");
}
執(zhí)行:
adm:x:4:root, adm, daemon
相關(guān)文章
C語言?動(dòng)態(tài)內(nèi)存管理全面解析
動(dòng)態(tài)內(nèi)存是相對(duì)靜態(tài)內(nèi)存而言的。所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語言中動(dòng)態(tài)內(nèi)存的管理2022-02-02
C++實(shí)現(xiàn)查找二叉樹中和為某一值的所有路徑的示例
這篇文章主要介紹了C++實(shí)現(xiàn)查找二叉樹中和為某一值的所有路徑的示例,文中的方法是根據(jù)數(shù)組生成二叉排序樹并進(jìn)行遍歷,需要的朋友可以參考下2016-02-02
c++項(xiàng)目構(gòu)成從cmake使用基礎(chǔ)詳解
這篇文章主要為大家介紹了c++項(xiàng)目構(gòu)成,從cmake使用基礎(chǔ)開始為大家講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

