在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)文章
static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法詳解
以下是對static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法進行了詳細的分析介紹,需要的朋友可以過來參考下2013-09-09