linux c open 权限,linux c open函数用法
在linux中所有的对象都是以文件的形式存在,所以linux C中对open函数的掌握非常重要。
open函数是linux底层系统调用函数,在linux中需要对文件进行实时监控,最精准的方式还是采用open函数实时获取。
在Linux中使用open函数的时候需要引入以下三个头文件
#include < sys/types.h >
#include < sys/stat.h >
#include < fcntl.h >
open函数 原型 int open(const char *path, int oflags,mode_t mode);
函数功能
open建立了一条到文件或设备的访问路径。
open函数一般用于打开或者创建文件,在打开或创建文件时可以制定文件的属性及用户的权限等各种参数。
第一个参数path表示:路径名或者文件名。路径名为绝对路径名 /dev/input/event2,
文件则是在当前工作目录下的。
第二个参数oflags表示:打开文件所采取的动作。
可能值:必须指定下面某一种:
O_RDONLY(只读),
O_WRONLY(只写),
O_RDWR(可读可写)
打开/创建文件时,至少得使用上述三个常量中的一个,以下常量是选用的:
O_APPEND 每次写操作都写入文件的末尾
O_CREAT 如果指定文件不存在,则创建这个文件
O_EXCL 如果要创建的文件已存在,则返回 -1,并且修改errno的值
O_TRUNC 如果文件存在,并且以只写/读写方式打开,则清空文件全部内容
O_NOCTTY 如果路径名指向终端设备,不要把这个设备用作控制终端。
O_NONBLOCK 如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I/O
设置为非阻塞模式(nonblocking mode)
参数示例 O_RDONLY|O_CREAT 只读创建文件
第三个参数mode表示:设置文件访问权限的初始值
S_IRUSR,S_IWUSER,S_IXUSR,S_IRGRP,S_IWGRP,S_IXGRP,S_IROTH,S_IWOTH,S_IXOTH.其中R:读,W:写,X:执行,USR:文件所属的用户,GRP:文件所属的组,OTH:其他用户。
第三个参数是在第二个参数中有O_CREAT时才用作用[当创建文件时才需要使用]
反之第三个参数可以忽略。
返回值大于0则操作成功,小于0则打开文件失败。
示例代码:
#include < stdio.h >
#include < stdlib.h >
#include < sys/types.h >
#include < sys/stat.h >
#include < fcntl.h >
#include < unistd.h >
#include < errno.h >
int main(){
int fd,size,i;
char fileInfo[256];
if((fd =open(“/dev/input/event2”,O_RDONLY)) ==-1){
printf(“read failure\n”);
exit(1);
} else{
printf(“file exists!\n”);
}
printf(“file size is :%d\n”,size);
close(fd);
return 0;
}
linux c open 权限,linux c open函数用法相关推荐
- linux 修改驱动权限,Linux Kernel 'MSR' 驱动程序本地权限提升漏洞
发布日期:2013-02-07 更新日期:2013-03-05 受影响系统: Linux kernel 2.6.x 描述: -------------------------------------- ...
- o在linux是什么权限,Linux权限管理基本知识大全
Linux权限管理基本知识大全 Linux系统有什么基本权限,权限管理命令是什么?下面跟yjbys小编一起来看看吧! 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户. ...
- linux mkdir -m权限,Linux中mkdir和touch命令区别
一.目的 本文将介绍linux下新建文件或文件夹.删除文件或文件夹命令. touch能够新建文件,mkdir用来新建文件夹.rm用来删除文件或文件夹. 本文将选取ubu ...
- linux创建目录无权限,linux下文件夹权限 linux 创建文件夹没有权限
linux 给所有文件下文件加权限 更改文件用户组.使用命令chgrp,命令如下. 更改文件所有者.使用命令chown. chown命令可以同时修改所有者和用户组名称(即拥有chgrp的功能),命令如 ...
- linux twiki 添加权限,Linux安装TWiki
听说twiki是一个很好的管理知识的工具,今天我们就来安装体验一下. 1.安装apache2 apt-get install apache2或者yum install httpd 2.下载twiki ...
- linux ioctl root权限,Linux系统调用设备的ioctl函数
Linux系统调用设备的ioctl函数 在命令行调用设备的ioctl函数.在Linux系统中,似乎对设备的直接操作只有ioctl函数了.他接受的参数不是太多,而且都是一一对应的. blockdev - ...
- linux下测试权限,Linux下进程权限分析
在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少.本文总结一下linux系统下进程权限问题和现象. 需要强调的是,本文是linux系统下讨论,因为linux ...
- linux 开启端口 权限,Linux 下设置端口权限
Linux 下设置端口权限的系统调用有两个: ioperm 和 iopl . 一. ioperm 和 iopl 介绍. 1.ioperm 该系统调用的介绍参考了以下链接中的内容: http://blo ...
- 不是Linux文件系统的权限,Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)...
文件系统的权限管理(DAC体系:自主访问控制体系): 普通权限 特殊权限 文件的扩展属性 FACL(文件系统访问控制列表) 安全上下文: 任何在计算机中执行的任务都是由进程来实现的,所以进程就有必要访 ...
最新文章
- eclipse 向HDFS中创建文件夹报错 permission denied
- 【转载】C++创建对象的两种方法
- 五大经常使用算法 之 动态规划法
- 除了ssh外也可以开启telnet服务连接服务器
- redis---安全设置
- oracle 混合分区表,Oracle 19C Hybrid partitioned tables混合分区表
- 解决flash builder 4.6安装过程中安装程序遇到错误(-1)
- 超详细!使用 LVS 实现负载均衡原理及安装配置详解
- 【leetcode】排序题(python)
- C#开发Android应用实战
- 在知行EDI系统中实施SNIP验证
- 如何用两个栈实现一个队列
- 排列组合计算公式简易版
- chromecast 协议_如何驯服Chromecast的后台数据使用情况
- 一篇让小百彻底搞懂性能调优
- Linux Regulator Framework(1) - Framework
- 蓝桥杯练习题——数列求和
- 设备巡检维修报备小程序开发制作功能介绍
- win10运行calc计算器报错 win10无法打开这个应用。请与你的系统管理员联系,以了解有关修复或重新安装该应用的信息。
- 一个在公司远程家里电脑的好办法(不用QQ、TeamViewer等软件)