linux的open close函数详解(ubuntu环境)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • OPEN函数
    • 返回值
    • 参数说明
  • Close函数
    • 参数说明
    • Linux文件权限
  • 总结


前言

高频使用的Linux系统调用:open write read close
Linux自带的工具:man手册:
man 1是普通的shell命令,比如ls
man 2是系统调用函数,比如open,write说明,可以用来查看函数原型
如:man 2 open

open函数在Linux下一般用来打开或者创建一个文件,我们可以根据参数来定制我们需要的文件的属性和用户权限等各种参数。


提示:以下是本篇文章正文内容,下面案例可供参考

OPEN函数

int open(const char pathname, intflags); / 比较常用*/
int open(const char *pathname, intflags, mode_tmode);
//包含的头文件:
#include //这里提供类型pid_t和size_t的定义
#include
#include 使用到OPEN函数时需要将头文件包含进入程序文件

返回值

成功,返回句柄,我们后面对于文件的读写,关闭等都通过句柄来操作。
失败,返回-1

参数说明

pathname:文件的路径名,如果只写文件名,就默认当前目录,如果在文件名加上路径,就按照绝对路径来打开文件。

flags:表示打开文件后用的操作
使用 grep -nr “xxx” ./
xxx为函数名称
可查询open函数的内容

底层是一个宏,它可能以十六进制的形式存放。
O_RDONLY:只读模式 0x 0000 0000
O_WRONLY:只写模式 0x 00000001
O_RDWR:可读可写 0x 00000002

常用的参数

O_APPEND 表示追加,如果原来文件里面有内容,则这次写入会写在文件的最末尾。0x00002000
O_CREAT 表示如果指定文件不存在,则创建这个文件 0x0000 0100
O_EXCL 表示如果要创建的文件已存在,则出错,同时返回-1,并且修改errno 的值。
O_TRUNC 表示截断,如果文件存在,并且以只写、读写方式打开,则将其长度截断为0。
O_NOCTTY 如果路径名指向终端设备,不要把这个设备用作控制终端

Close函数

使用Close函数时要将头文件加入程序文件

#include 

参数说明

代码如下(示例):

函数原型:int close(int fd);
fd是函数的形参
形参很简单,即要关闭的已打开的文件描述符
返回值:0表示正常关闭 -1关闭出现错误
0_RDONLY:可读权限 
O_WRONLY:只写模式
O_RDWR  :可读可写

close函数的功能就是简单的关闭文件

Linux文件权限

Linux 系统中采用三位十进制数表示权限,如0755, 0644.
代码如下(示例):

7 1+2+4
5 1+4
5 1+4

ABCD
A- 0, 表示十进制
B-用户
C-组用户
D-其他用户


总结

学了Linux指令,不学C编程,就是在耍流氓。只有C语言编程,才能体现Linux的魅力,万物皆文件

你可能感兴趣的:(linux,ubuntu,运维)