在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语言读取文件流的相关函数用法简介
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语言中的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语言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服务器或共享,无
随机推荐
- 在Django中限制已登录用户的访问的方法
- 使用Perl创建指定编码格式(如utf-8)文件的实现代码
- SQLite 错误码整理
- VBS教程:方法-Move 方法
- Java随机生成手机短信验证码的方法
- 详解iOS中Button按钮的状态和点击事件
- 浅谈thinkphp5 instance 的简单实现
- 与MSSQL对比学习MYSQL的心得(七)--查询
- Powershell小技巧之屏蔽输出结果
- oracle数据迁移到db2数据库的实现方法(分享)
- IE8 下的Js错误HTML Parsing Error...
- PHP中的use关键字概述
- Bootstrap每天必学之折叠(Collapse)插件
- Android监听Home键和Back键的区别介绍
- jQuery.extend 函数的详细用法
- android 二次打包完成apk多渠道打包的方法
- Python基于列表模拟堆栈和队列功能示例
- 浅谈jquery中ajax跨域提交的时候会有2次请求的问题
- insert和select结合实现"插入某字段在数据库中的最大值+1"的方法
- Java远程连接Linux服务器并执行命令及上传文件功能