Linux文件与相关函数的知识点1

Open函数

高频使用的Linux系统调用:open write read close Linux

自带的工具:man手册:

man 1是普通的shell命令,比如ls

调用命令:man 1 ls

man 2是系统调用函数,比如open,write

调用open函数的调用命令:man 2 open

在Linux系统库的定义

int open(const char *pathname, intflags); /* 比较常用*/ int open(const char *pathname, intflags, mode_tmode); //包含的头文件:

#include //这里提供类型pid_t和size_t的定义

#include #include

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

失败,返回-1

参数说明:

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

flags:表示打开文件后用的操作

底层是一个宏,它可能以十六进制的形式存放。

O_RDONLY:只读模式 0x 0000 0000

使用路径打开

直接使用文件名

O_WRONLY:只写模式 0x 00000001

O_RDWR:可读可写 0x 00000002

gcc test.c int open(const char *pathname, intflags); /* 比较常用*/ int open(const char *pathname, intflags, mode_tmode); //包含的头文件:

#include //这里提供类型pid_t和size_t的定义

#include #include

参数说明 参数说明

O_APPEND 表示追加,如果原来文件里面有内容,则这次写入会写在文件的最末尾。0x00002000 O_CREAT 表示如果指定文件不存在,则创建这个文件 0x0000 0100 O_EXCL 表示如果要创建的文件已存在,则出错,同时返回-1,并且修改errno 的值。

使用该参数的意义为如果每次有这个文件则创建此文间

最后行表示对各个文件的操作权限

O_TRUNC 表示截断,如果文件存在,并且以只写、读写方式打开,则将其长度截断为0。

O_NOCTTY 如果路径名指向终端设备,不要把这个设备用作控制终端

注:Liunx里面粘贴指令为:shift+ctrl+v

close函数

功能就是简单的关闭文件

文件的权限属性

inux 系统中采用三位十进制数表示权限,如0755, 0644.

7 1+2+4(表示下面1和2和4共同组合的权限)

5 1+4

5 1+4

ABCD A- 0, 表示十进制

B-用户

C-组用户

D-其他用户

int close(int fd); #include ‐‐‐ ‐> 0 (no excute , nowrite ,no read)

‐‐x ‐> 1 excute, (nowrite, no read)

‐w‐ ‐> 2 write

r‐‐ ‐> 4 read

‐wx ‐> 3 write, excute

r‐x ‐> 5 read, excute

rw‐ ‐> 6 read, write

对于上面的各种权限我将详细解释一下

如上图,从左往右看,从第二位起,每三个分成一类,第一类表示此电脑用户,第二类表示组用户,第三类表示其他用户,每三个里面都表示着各种权限,r是可读w是可写x是可执行,所以能够轻易地得到此文件不同用户对他的权限,如第一行的文件就是此电脑用户可读可写可执行,组用户可读不可写可执行,以此类推。

可能会生成不可执行文件

可以在代码文件生成后面加上权限0755达到可读可写可执行权限

相关推荐
大树8814 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠14 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质14 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush414 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52014 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz14 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工15 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智16 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩16 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_16 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化