在C語(yǔ)言編程中設(shè)置和獲取代碼組數(shù)的方法
C語(yǔ)言setgroups()函數(shù):設(shè)置組代碼函數(shù)
頭文件:
#include <grp.h>
定義函數(shù):
int setgroups(size_t size, const gid_t * list);
函數(shù)說(shuō)明:setgroups()用來(lái)將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語(yǔ)言getgroups()函數(shù):獲取組代碼函數(shù)
頭文件:
#include <unistd.h> #include <sys/types.h>
定義函數(shù):
int getgroups(int size, gid_t list[]);
函數(shù)說(shuō)明:getgroup() 用來(lái)取得目前用戶所屬的組代碼. 參數(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語(yǔ)言解讀數(shù)組循環(huán)右移問(wèn)題
這篇文章主要介紹了C語(yǔ)言解讀數(shù)組循環(huán)右移問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法詳解
以下是對(duì)static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-09-09C語(yǔ)言實(shí)現(xiàn)字符串替換的示例代碼
本文主要介紹了C語(yǔ)言實(shí)現(xiàn)字符串替換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Clion(CMake工具)中引入第三方庫(kù)的詳細(xì)方法
這篇文章主要介紹了Clion(CMake工具)中引入第三方庫(kù)的詳細(xì)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02C++基于easyx圖形庫(kù)實(shí)現(xiàn)推箱子游戲
這篇文章主要為大家詳細(xì)介紹了C++基于easyx圖形庫(kù)實(shí)現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06