在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函数用法相关推荐

  1. linux 修改驱动权限,Linux Kernel 'MSR' 驱动程序本地权限提升漏洞

    发布日期:2013-02-07 更新日期:2013-03-05 受影响系统: Linux kernel 2.6.x 描述: -------------------------------------- ...

  2. o在linux是什么权限,Linux权限管理基本知识大全

    Linux权限管理基本知识大全 Linux系统有什么基本权限,权限管理命令是什么?下面跟yjbys小编一起来看看吧! 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户. ...

  3. linux mkdir -m权限,Linux中mkdir和touch命令区别

    一.目的 本文将介绍linux下新建文件或文件夹.删除文件或文件夹命令.         touch能够新建文件,mkdir用来新建文件夹.rm用来删除文件或文件夹.         本文将选取ubu ...

  4. linux创建目录无权限,linux下文件夹权限 linux 创建文件夹没有权限

    linux 给所有文件下文件加权限 更改文件用户组.使用命令chgrp,命令如下. 更改文件所有者.使用命令chown. chown命令可以同时修改所有者和用户组名称(即拥有chgrp的功能),命令如 ...

  5. linux twiki 添加权限,Linux安装TWiki

    听说twiki是一个很好的管理知识的工具,今天我们就来安装体验一下. 1.安装apache2 apt-get install apache2或者yum install httpd 2.下载twiki ...

  6. linux ioctl root权限,Linux系统调用设备的ioctl函数

    Linux系统调用设备的ioctl函数 在命令行调用设备的ioctl函数.在Linux系统中,似乎对设备的直接操作只有ioctl函数了.他接受的参数不是太多,而且都是一一对应的. blockdev - ...

  7. linux下测试权限,Linux下进程权限分析

    在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少.本文总结一下linux系统下进程权限问题和现象. 需要强调的是,本文是linux系统下讨论,因为linux ...

  8. linux 开启端口 权限,Linux 下设置端口权限

    Linux 下设置端口权限的系统调用有两个: ioperm 和 iopl . 一. ioperm 和 iopl 介绍. 1.ioperm 该系统调用的介绍参考了以下链接中的内容: http://blo ...

  9. 不是Linux文件系统的权限,Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)...

    文件系统的权限管理(DAC体系:自主访问控制体系): 普通权限 特殊权限 文件的扩展属性 FACL(文件系统访问控制列表) 安全上下文: 任何在计算机中执行的任务都是由进程来实现的,所以进程就有必要访 ...

最新文章

  1. eclipse 向HDFS中创建文件夹报错 permission denied
  2. 【转载】C++创建对象的两种方法
  3. 五大经常使用算法 之 动态规划法
  4. 除了ssh外也可以开启telnet服务连接服务器
  5. redis---安全设置
  6. oracle 混合分区表,Oracle 19C Hybrid partitioned tables混合分区表
  7. 解决flash builder 4.6安装过程中安装程序遇到错误(-1)
  8. 超详细!使用 LVS 实现负载均衡原理及安装配置详解
  9. 【leetcode】排序题(python)
  10. C#开发Android应用实战
  11. 在知行EDI系统中实施SNIP验证
  12. 如何用两个栈实现一个队列
  13. 排列组合计算公式简易版
  14. chromecast 协议_如何驯服Chromecast的后台数据使用情况
  15. 一篇让小百彻底搞懂性能调优
  16. Linux Regulator Framework(1) - Framework
  17. 蓝桥杯练习题——数列求和
  18. 设备巡检维修报备小程序开发制作功能介绍
  19. win10运行calc计算器报错 win10无法打开这个应用。请与你的系统管理员联系,以了解有关修复或重新安装该应用的信息。
  20. 一个在公司远程家里电脑的好办法(不用QQ、TeamViewer等软件)

热门文章

  1. Linux查看网关命令
  2. Mybatis RowBounds 分页原理
  3. 重点:机器学习总结之各算法常用包和函数
  4. Android 推送 整合小米、个推、jpush
  5. SoX-linux里操作音频的瑞士军刀
  6. 2021年度高工金球奖投票正式开启
  7. 什么 APP 能在 3 个月内有 1000 万用户?
  8. 带你真正认识 Linux 系统结构
  9. wustctf2020_getshell
  10. 小迪笔记基础入门1-3