在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ù)組中所標明的組加入到目前進程的組設(shè)置中. 參數(shù)size 為list()的gid_t 數(shù)目, 最大值為NGROUP(32)。
返回值:設(shè)置成功則返回0, 如有錯誤則返回-1.
錯誤代碼:
- 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ù)僅會返回用戶所屬的組數(shù)。
返回值:返回組識別碼, 如有錯誤則返回-1.
錯誤代碼:
- 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ù)組中素數(shù)交換
這篇文章主要為大家介紹了C語言數(shù)組中素數(shù)交換,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>2021-12-12
C++函數(shù)參數(shù)匹配規(guī)則示例小結(jié)
這篇文章主要介紹了C++函數(shù)參數(shù)匹配規(guī)則,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
基于WTL 雙緩沖(double buffer)繪圖的分析詳解
本篇文章是對WTL下使用雙緩沖(double buffer)繪圖進行了詳細的分析介紹,需要的朋友參考下2013-05-05

