简要对比C语言中的setgid()函数和setregid()函数

C语言setgid()函数:设置真实的组识别码
头文件:

#include <unistd.h>

定义函数:

int setgid(gid_t gid);

函数说明:setgid()用来将目前进程的真实组识别码(real gid)设成参数gid 值. 如果是以超级用户身份执行此调用, 则real、effective 与savedgid 都会设成参数gid。

返回值:设置成功则返回0, 失败则返回-1, 错误代码存于errno 中.

错误代码:
EPERM:并非以超级用户身份调用, 而且参数gid 并非进程的effective gid 或saved gid 值之一.

C语言setregid()函数:设置真实及有效的组识别码
头文件:

#include <unistd.h>

定义函数:

int setregid(gid_t rgid, gid_t egid);

函数说明:setregid()用来将参数rgid 设为目前进程的真实组识别码, 将参数egid 设置为目前进程的有效组识别码. 如果参数rgid 或egid 值为-1, 则对应的识别码不会改变。

返回值:执行成功则返回0, 失败则返回-1, 错误代码存于errno.