简要对比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.

(0)

相关推荐

  • C语言中读取时间日期的基本方法

    C语言time()函数:获取当前时间(以秒数表示) 头文件: #include <time.h> 定义函数: time_t time(time_t *t); 函数说明:此函数会返回从公元 1970 年1 月1 日的UTC 时间从0 时0 分0 秒算起到现在所经过的秒数.如果t 并非空指针的话,此函数也会将返回值存到t 指针所指的内存. 返回值:成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno 中. 范例 #include <time.h> main(){

  • 用C语言求幂函数和指数函数的方法

    C语言pow()函数:求x的y次方(次幂) 头文件: #include <math.h> pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y); pow()用来计算以x 为底的 y 次方值,然后将结果返回.设返回值为 ret,则 ret = xy. 可能导致错误的情况: 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误. 如果底数 x 和指数 y 都是 0,可能会导致 domain err

  • C语言中settimeofday函数和gettimeofday函数的使用

    C语言settimeofday()函数:设置当前时间戳 头文件: #include <sys/time.h> #include <unistd.h> 定义函数: int settimeofday(const struct timeval *tv, const struct timezone *tz); 函数说明:settimeofday()会把目前时间设成由tv 所指的结构信息,当地时区信息则设成tz 所指的结构.详细的说明请参考gettimeofday(). 注意,在Linux下

  • 简要对比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:并非以超级用户身份调用, 而且参数gi

  • 简要对比C语言中的truncate()函数与ftruncate()函数

    C语言truncate()函数:改变文件大小 头文件: #include <unistd.h> 定义函数: int truncate(const char * path, off_t length); 函数说明:truncate()会将参数path 指定的文件大小改为参数length 指定的大小. 如果原来的文件大小比参数length 大, 则超过的部分会被删去. 返回值:执行成功则返回0, 失败返回-1, 错误原因存于errno. 错误代码: 1.EACCESS 参数path 所指定的文件无

  • 简要对比C语言中的dup()函数和dup2()函数

    C语言dup()函数:复制文件描述词 头文件: #include <unistd.h> 定义函数: int dup (int oldfd); 函数说明:dup()用来复制参数oldfd 所指的文件描述词, 并将它返回. 此新的文件描述词和参数oldfd 指的是同一个文件, 共享所有的锁定.读写位置和各项权限或旗标. 例如, 当利用lseek()对某个文件描述词作用时, 另一个文件描述词的读写位置也会随着改变. 不过, 文件描述词之间并不共享close-on-exec 旗标. 返回值:当复制成功

  • C语言中“不受限制”的字符串函数总结

    "不受限制的"字符串函数 按<C和指针>中所说,那些常用的字符串函数都是"不是限制的",就是说它们只能通过寻找字符串末尾的NULL来判断字符串的长度. strlen strlen函数用于求解字符串长度,其返回类型为unsigned int(即size_t).strlen函数从起点开始,往后计数,遇到'\0'停止. 值得注意的是:strlen函数的返回类型.看如下代码: #include<string.h> #include<iostre

  • R语言中cbind、rbind和merge函数的使用与区别

    cbind: 根据列进行合并,即叠加所有列,m列的矩阵与n列的矩阵cbind()最后变成m+n列,合并前提:cbind(a, c)中矩阵a.c的行数必需相符 rbind: 根据行进行合并,就是行的叠加,m行的矩阵与n行的矩阵rbind()最后变成m+n行,合并前提:rbind(a, c)中矩阵a.c的列数必需相符 > a <- matrix(1:12, 3, 4) > print(a) [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,

  • python语言中pandas字符串分割str.split()函数

    目录 前言 1.常规赛数据格式 2.计算詹姆斯常规赛命中率 总结 前言 为了介绍python语言中pandas库在数据分析中的重要作用,本人打算以NBA球星勒布朗詹姆斯在2020-2021赛季常规赛个人数据为例对pandas相关函数进行详细说明.利用爬虫技术,在知名篮球网站虎扑爬取了勒布朗詹姆斯的数据,稍后会将数据上传至csdn,以供大家下载. 这篇文章,详细介绍了pandas字符串分割函数---str.split()的用法. DataFrame.str.split(pa,n,expand)pa

  • 对比C语言中的setbuf()函数和setvbuf()函数的使用

    C语言setbuf()函数:把缓冲区与流相关联 头文件: #include <stdio.h> 函数setbuf()用于将指定缓冲区与特定的文件流相关联,实现操作缓冲区时直接操作文件流的功能.其原型如下: void setbuf(FILE * stream, char * buf); [参数]stream为文件流指针,buf为缓冲区的起始地址. 如果参数buf 为NULL 指针,则为无缓冲,setbuf()相当于调用setvbuf(stream, buf, buf ? _IOFBF : _IO

  • 对比C语言中execv相关的执行文件的三个函数

    C语言execv()函数:执行文件函数 头文件: #include <unistd.h> 定义函数: int execv (const char * path, char * const argv[]); 函数说明:execv()用来执行参数path 字符串所代表的文件路径, 与execl()不同的地方在于execve()只需两个参数, 第二个参数利用数组指针来传递给执行文件. 返回值:如果执行成功则函数不会返回, 执行失败则直接返回-1, 失败原因存于errno 中. 错误代码:请参考 ex

  • 简单对比C语言中的fputs()函数和fputc()函数

    C语言fputc()函数:写文件函数(将一指定字符写入文件流中) 头文件: #include <stdio.h> 定义函数: int fputc(int c, FILE * stream); 函数说明:fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中. 返回值:fputc()会返回写入成功的字符, 即参数c. 若返回EOF 则代表写入失败. 范例 #include <stdio.h> main() { FILE * fp; char a[

  • 详细对比C语言中的chmod()函数和fchmod()函数

    C语言chmod()函数:修改文件权限 头文件: #include <sys/types.h> #include <sys/stat.h> 定义函数: int chmod(const char * path, mode_t mode); 函数说明:chmod()会依参数mode 权限来更改参数path 指定文件的权限. 参数 mode 有下列数种组合: 1.S_ISUID 04000 文件的 (set user-id on execution)位 2.S_ISGID 02000 文

随机推荐