详解C语言中getgid()函数和getegid()函数的区别
C语言getgid()函数:取得组识别码函数
头文件:
#include <unistd.h> #include <sys/types.h>
定义函数:
gid_t getgid(void);
函数说明:getgid()用来取得执行目前进程的组识别码。
返回值:返回组识别码
范例
#include <unistd.h> #include <sys/types.h> main() { printf("gid is %d\n", getgid()); }
执行:
gid is 0 //当使用root 身份执行范例程序时
C语言getegid()函数:获得组识别码
头文件:
#include <unistd.h> #include <sys/types.h>
定义函数:
gid_t getegid(void);
函数说明:getegid()用来取得执行目前进程有效组识别码. 有效的组识别码用来决定进程执行时组的权限.
返回值:返回有效的组识别码.
范例
#include <unistd.h> #include <sys/types.h> main() { printf("egid is %d\n", getegid()); }
执行:
egid is 0 //当使用root 身份执行范例程序时
相关推荐
-
C语言中设置用户识别码的相关函数的简单讲解
C语言setuid()函数:设置真实的用户识别码 头文件: #include <unistd.h> 定义函数: int setuid(uid_t uid); 函数说明: setuid()用来重新设置执行目前进程的用户识别码. 不过, 要让此函数有作用, 其有效的用户识别码必须为0(root). 在Linux 下, 当root 使用setuid()来变换成其他用户识别码时, root 权限会被抛弃, 完全转换成该用户身份, 也就是说, 该进程往后将不再具有可setuid()的权利, 如果只是向暂
-
C语言中操作utmp文件的相关函数用法
C语言getutent()函数:从utmp文件中取得账号登录数据 头文件: #include <utmp.h> 定义函数: struct utmp *getutent(void); 函数说明:getutent()用来从utmp 文件(/var/run/utmp)中读取一项登录数据, 该数据以utmp 结构返回. 第一次调用时会取得第一位用户数据, 之后每调用一次就会返回下一项数据, 直到已无任何数据时返回NULL. utmp 结构定义如下: struct utmp { short int ut
-
C语言中计算正弦的相关函数总结
C语言sin()函数:正弦函数 头文件: #include <math.h> sin() 函数用来求给定值的正弦值,其原型为: double sin(double x); [参数]给定的值(弧度). [返回值]返回-1 至1 之间的计算结果. 弧度与角度的关系为: 弧度 = 180 / π 角度 角度 = π / 180 弧度 使用 rtod( ) 函数可以将弧度值转换为角度值. 注意,使用 GCC 编译时请加入-lm. 举例如下: #include <stdio.h> #incl
-
详解C语言中sizeof如何在自定义函数中正常工作
1.在main函数中,sizeof是可以正常工作的,比如: int main() { int n[5]; printf("input: \n"); int i ; for(i = 0; i < 5; i++) { scanf("%d",n + i); } int len = sizeof(n)/sizeof(n[0]); printf("%d\n",len); return 0; } 2.但是在自定义函数中就不可以了,如下: #includ
-
详解C语言中typedef和#define的用法与区别
目录 一.typedef的用法 二.#define的用法 三.typedef与#define的区别 四.typedef的用途 用途一 用途二 用途三 用途四 五.typedef的陷阱 陷阱一 陷阱二 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,比如: typedef int INT; typedef (int*) pINT; typedef unsigned int uint32_t type
-
详解C语言中getgid()函数和getegid()函数的区别
C语言getgid()函数:取得组识别码函数 头文件: #include <unistd.h> #include <sys/types.h> 定义函数: gid_t getgid(void); 函数说明:getgid()用来取得执行目前进程的组识别码. 返回值:返回组识别码 范例 #include <unistd.h> #include <sys/types.h> main() { printf("gid is %d\n", getgid
-
举例详解Go语言中os库的常用函数用法
(f *File).Name()这个函数是返回文件的名称,函数原型func (f *File) Name() string要文件的指针操作,返回字符串,感觉比较鸡助的方法底层实现 复制代码 代码如下: func (f *File) Name() string { return f.name } import ( "fmt" "os" ) func main() { f, _ := os.Open("1.go") fmt.Println(
-
详解C语言中return返回函数局部变量的问题
目录 return返回栈区局部变量的指针 return返回栈区局部的临时变量 return只读数据段和static数据 在计算机中,释放空间并不需要将空间中的内容全部置成0或者1,而是只要设置这一块空间的数据无效即可.比如在下载文件时需要花很长时间,但是删除文件却只要几秒钟,这是因为操作系统只是把文件标识(文件头链接)删掉了,文件原文还保留着,我们没了文件标识就找不到这个文件了.所以删除后的文件,还可以用特殊的办法被找回来. 这也就意味着,当函数结束调用的时候,函数中的局部变量实际上还是在的,只
-
详解C语言中return与exit的区别
详解C语言中return与exit的区别 1,exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的.main函数结束时也会隐式地调用exit函数.exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流.关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件.exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而return是返回函数值并退出函数 2,return是语言级别的,它
-
详解 Go 语言中 Map 类型和 Slice 类型的传递
Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Println(m) } func mdMap(m map[int]int) { m[1] = 100 m[2] = 200 } 结果是 map[2:200 1:100] 我们再修改如下 m2: func main() { var m map[int]int mdMap(m) fmt.Println(m) } func mdMap(m map[int]int) {
-
详解Golang语言中的interface
interface是一组method签名的组合,interface可以被任意对象实现,一个对象也可以实现多个interface.任意类型都实现了空interface(也就是包含0个method的interface),空interface可以存储任意类型的值.interface定义了一组方法,如果某个对象实现了某个接口的所有方法,则此对象就实现了此接口. go version go1.12 package main import ( "fmt" ) // 定义struct type Hu
-
详解go语言中type关键词的几种使用
type是go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef.搞清楚type的使用,就容易理解go语言中的核心概念struct.interface.函数等的使用.以下我用例子代码总结描述,请特别留意代码中的注释. 1.定义结构体 //结构体定义 type person struct { name string //注意后面不能有逗号 age int } func main() { //结构体初始化 p := person{ name: "taozs",
-
详解R语言中的PCA分析与可视化
1. 常用术语 (1)标准化(Scale) 如果不对数据进行scale处理,本身数值大的基因对主成分的贡献会大.如果关注的是变量的相对大小对样品分类的贡献,则应SCALE,以防数值高的变量导入的大方差引入的偏见.但是定标(scale)可能会有一些负面效果,因为定标后变量之间的权重就是变得相同.如果我们的变量中有噪音的话,我们就在无形中把噪音和信息的权重变得相同,但PCA本身无法区分信号和噪音.在这样的情形下,我们就不必做定标. (2)特征值 (eigen value) 特征值与特征向量均为矩阵分
随机推荐
- 最全最实用的正则表达式大全分享
- MySQL数据库误操作后快速回滚的方法
- PHP判断字符串长度的两种方法很实用
- 网站渗透常用Python小脚本查询同ip网站
- python实现中文输出的两种方法
- 队列的动态链式存储实现代码分享
- Mysql5.6忘记root密码修改root密码的方法
- docker python如何实现打包的方法
- js 实现 input type="file" 文件上传示例代码
- Python基础中所出现的异常报错总结
- ASP也使用ORM,给ASP上所有的SQL注入画上句号
- 自动改回主页的批处理文件
- Android 编程下字库的使用及注意事项
- Cisco路由器上配置pppoe拨号
- 浅谈Android PathMeasure详解和应用
- Spring HttpMessageConverter的作用及替换解析
- JAVA JDK8 List获取属性列表
- python 数据生成excel导出(xlwt,wlsxwrite)代码实例
- 关于layui 弹出层一闪而过就消失的解决方法
- 深入讲解Swift中的模式匹配