在C語言編程中設(shè)置和獲取代碼組數(shù)的方法
C語言setgroups()函數(shù):設(shè)置組代碼函數(shù)
頭文件:
#include <grp.h>
定義函數(shù):
int setgroups(size_t size, const gid_t * list);
函數(shù)說明:setgroups()用來將list 數(shù)組中所標(biāo)明的組加入到目前進(jìn)程的組設(shè)置中. 參數(shù)size 為list()的gid_t 數(shù)目, 最大值為NGROUP(32)。
返回值:設(shè)置成功則返回0, 如有錯(cuò)誤則返回-1.
錯(cuò)誤代碼:
- EFAULT:參數(shù)list 數(shù)組地址不合法.
- EPERM:權(quán)限不足, 必須是root 權(quán)限
- EINVAL:參數(shù)size 值大于NGROUP(32).
C語言getgroups()函數(shù):獲取組代碼函數(shù)
頭文件:
#include <unistd.h> #include <sys/types.h>
定義函數(shù):
int getgroups(int size, gid_t list[]);
函數(shù)說明:getgroup() 用來取得目前用戶所屬的組代碼. 參數(shù)size 為list() 所能容納的gid_t 數(shù)目. 如果參數(shù)size 值為零, 此函數(shù)僅會(huì)返回用戶所屬的組數(shù)。
返回值:返回組識(shí)別碼, 如有錯(cuò)誤則返回-1.
錯(cuò)誤代碼:
- EFAULT:參數(shù)list 數(shù)組地址不合法.
- EINVAL:參數(shù)size 值不足以容納所有的組.
范例
#include <unistd.h>
#include <sys/types.h>
main()
{
gid_t list[500];
int x, i;
x = getgroups(0, list);
getgroups(x, list);
for(i = 0; i < x; i++)
printf("%d:%d\n", i, list[i]);
}
執(zhí)行:
0:00 1:01 2:02 3:03 4:04 5:06 6:10
相關(guān)文章
C語言練習(xí)之?dāng)?shù)組中素?cái)?shù)交換
這篇文章主要為大家介紹了C語言數(shù)組中素?cái)?shù)交換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>2021-12-12
C++函數(shù)參數(shù)匹配規(guī)則示例小結(jié)
這篇文章主要介紹了C++函數(shù)參數(shù)匹配規(guī)則,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
C語言實(shí)現(xiàn)樹的動(dòng)態(tài)查找實(shí)例代碼
這篇文章主要介紹了C語言實(shí)現(xiàn)樹的動(dòng)態(tài)查找實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-06-06
基于WTL 雙緩沖(double buffer)繪圖的分析詳解
本篇文章是對(duì)WTL下使用雙緩沖(double buffer)繪圖進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

