在C语言编程中设置和获取代码组数的方法
C语言setgroups()函数:设置组代码函数
头文件:
#include <grp.h>
定义函数:
int setgroups(size_t size, const gid_t * list);
函数说明:setgroups()用来将list 数组中所标明的组加入到目前进程的组设置中. 参数size 为list()的gid_t 数目, 最大值为NGROUP(32)。
返回值:设置成功则返回0, 如有错误则返回-1.
错误代码:
- EFAULT:参数list 数组地址不合法.
- EPERM:权限不足, 必须是root 权限
- EINVAL:参数size 值大于NGROUP(32).
C语言getgroups()函数:获取组代码函数
头文件:
#include <unistd.h> #include <sys/types.h>
定义函数:
int getgroups(int size, gid_t list[]);
函数说明:getgroup() 用来取得目前用户所属的组代码. 参数size 为list() 所能容纳的gid_t 数目. 如果参数size 值为零, 此函数仅会返回用户所属的组数。
返回值:返回组识别码, 如有错误则返回-1.
错误代码:
- EFAULT:参数list 数组地址不合法.
- EINVAL:参数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]); }
执行:
0:00 1:01 2:02 3:03 4:04 5:06 6:10
相关推荐
-
C语言编程中从密码文件获取数据的函数总结
C语言getpw()函数:取得指定用户的密码文件数据 头文件: #include <pwd.h> #include <sys/types.h> 定义函数: int getpw(uid_t uid, char *buf); 函数说明:getpw()会从/etc/passwd中查找符合参数uid所指定的用户账号数据, 找不到相关数据就返回-1. 所返回的buf 字符串格式如下: 账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell 返回值:返回 0 表示成功,
-
C语言中的setlinebuf()、utmpname()、rewind函数使用
C语言setlinebuf()函数:设置文件流为线性缓冲区 头文件: #include <stdio.h> 定义函数: void setlinebuf(FILE * stream); 函数说明:setlinebuf()用来设置文件流以换行为依据的无缓冲IO. 相当于调用:setvbuf(stream, (char*)NULL, _IOLBF, 0);请参考setvbuf(). C语言utmpname()函数:设置文件路径 头文件: #include <utmp.h> 定义函数: v
-
C语言读取文件流的相关函数用法简介
C语言fread()函数:读文件函数(从文件流读取数据) 头文件: #include <stdio.h> 定义函数: size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); 函数说明:fread()用来从文件流中读取数据. 参数stream 为已打开的文件指针, 参数ptr 指向欲存放读取进来的数据空间, 读取的字符数以参数size*nmemb 来决定. Fread()会返回实际读取到的nmemb 数目, 如果此值
-
在C语言编程中设置和获取代码组数的方法
C语言setgroups()函数:设置组代码函数 头文件: #include <grp.h> 定义函数: int setgroups(size_t size, const gid_t * list); 函数说明:setgroups()用来将list 数组中所标明的组加入到目前进程的组设置中. 参数size 为list()的gid_t 数目, 最大值为NGROUP(32). 返回值:设置成功则返回0, 如有错误则返回-1. 错误代码: EFAULT:参数list 数组地址不合法. EPERM:权
-
C语言编程中建立和解除内存映射的方法
C语言mmap()函数:建立内存映射 头文件: #include <unistd.h> #include <sys/mman.h> 定义函数:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize); 函数说明:mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写. 参数说明: 返回值:若映射成功则返回映射区的内存起始地址,否则返回MAP_
-
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
本文实例讲述了Yii2中设置与获取别名的函数(setAlias和getAlias)用法.分享给大家供大家参考,具体如下: 首先说说什么是别名. 在Yii中有很多的路径,在开发的过程当前我们也会使用一些路径.一般来说都需要使用绝对路径,但绝对路径都很长. 所以,为了方便的使用路径,可以在Yi中i给每个路径起个名称,这个名称就是别名. 别名的格式: 别名必须以"@"字符开头,别名中还可以包含"/".如("@www"为根别名,"@www/te
-
vue中设置、获取、删除cookie的方法
1.在src目录下的access下新建一个cookie.js, 内容如下: export function setCookie(c_name,value,expire) { var date=new Date() date.setSeconds(date.getSeconds()+expire) document.cookie=c_name+ "="+escape(value)+"; expires="+date.toGMTString() //console.lo
-
C语言编程中常见的五种错误及对应解决方案
目录 1. 未初始化的变量 2. 数组越界 3. 字符串溢出 4. 重复释放内存 5. 使用无效的文件指针 前言: C 语言有时名声不太好,因为它不像近期的编程语言(比如 Rust)那样具有内存安全性.但是通过额外的代码,一些最常见和严重的 C 语言错误是可以避免的. 即使是最好的程序员也无法完全避免错误.这些错误可能会引入安全漏洞.导致程序崩溃或产生意外操作,具体影响要取决于程序的运行逻辑. 下文讲解了可能影响应用程序的五个错误以及避免它们的方法: 1. 未初始化的变量 程序启动时,系统会为其
-
Android编程实现通过反射获取资源Id的方法
本文实例讲述了Android编程实现通过反射获取资源Id的方法.分享给大家供大家参考,具体如下: 在将自己写的工具打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的获取资源. 特别用在自己定义一个工具将其打成.jar包时,特别注意资源的获取 1.封装成一个工具类 package com.cp.utils; import android.content.Context; public class CPResourceUtil { public
-
SpringBoot2中使用@RequestHeader获取请求头的方法
目录 一.使用@RequestHeader获取请求头 (一)获取某一个请求头 (二)获取数值型请求头 (三)一次性获取所有请求头 二.@RequestHeader注解详解 (一)name.value属性 (二)required属性 (三)defaultValue属性 springMVC/SpringBoot中提供了@RequestHeader注解用来获取请求头. 一.使用@RequestHeader获取请求头 (一)获取某一个请求头 例如,获取accept-language请求头: @GetMa
-
Vmware中桥接无法获取IP的解决方法
Vmware设置虚拟操作系统网卡为桥接模式后,本应该和本地网卡获取到同一网段的IP的,但现在突然无法获取到IP设置,原因是什么呢?经过查看,发现Vmware中的网络编辑器中的桥接网卡桥接到了一个虚拟网卡上,更改到物理网卡后,虚拟机中的操作系统就获取到了地址,点[编辑]-- [虚拟网络编辑器] – [更改设置] – 选中VMnet0,类型为桥接模式的那个卡,在已桥接至后边,选择你的物理网卡,如图: Vmware设置虚拟操作系统网卡为桥接模式后,本应该和本地网卡获取到同一网段的IP的,但现在突然无法
-
iOS中设置清除缓存功能的实现方法
绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下图所示: 具体步骤 使用注意:过程中需要用到第三方库,请提前安装好:SDWebImage.SVProgressHUD. 1. 创建自定义Cell,命名为GYLClearCacheCell 重写initWithStyle:(UITableViewCellStyle)style reuseIdentif
-
Linux中scp命令获取远程文件的方法
一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度. 二.scp有什么用? 1.我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的: 2.我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无
随机推荐
- JAVA实现简单系统登陆注册模块
- javascript JSON操作入门实例
- 基于jquery tab切换(防止页面刷新)
- Objective-C编程中语句和变量的一些编写规范建议
- JavaScript 对象详细整理总结
- 利用Timer在ASP.NET中实现计划任务的方法
- PHP网页游戏学习之Xnova(ogame)源码解读(二)
- PHP实现的简易版图片相似度比较
- Python挑选文件夹里宽大于300图片的方法
- mysql 基本操作
- Bootstrap 模态框(Modal)插件代码解析
- Win2008 R2中IIS7.5配置完网站权限不足问题的解决方法
- 详解Linux下搭建VPN服务器(CentOS、pptp)
- Python设置Socket代理及实现远程摄像头控制的例子
- C#中使用资源的方法分析
- vue全局组件与局部组件使用方法详解
- 人工神经网络算法知识点总结
- 微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
- 微信小程序实现写入读取缓存详解
- Windows Server 2019 Install(图文教程)