在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, 如有錯誤則返回-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ū)別及用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-09-09
Clion(CMake工具)中引入第三方庫的詳細(xì)方法
這篇文章主要介紹了Clion(CMake工具)中引入第三方庫的詳細(xì)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

