Linux文件打开open、文件写入write、文件读取read、文件关闭close、文件光标lseek、文件创建create和fopen系列对比

文件打开open、文件写入write、文件读取read、文件关闭close、文件光标lseek、文件创建create

文件一般流程是打开或者创建文档——编辑文档——保存文档——关闭文档。liunx文件操作所提供的api(Application Programming Interface,应用程序接口)有open、write、read、close、lseek、create等。

文件打开open

open头文件和函数

// open头文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
//open函数
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
//open函数返回值,success 返回文件描述符, error 返回 -1
//pathname:文件路径名。例"./file1"
//flags:O_RDONLY 只读   		O_WRONLY 只写   		O_RDWR 	 可读可写可打开
//		O_CREAT  如果open文件不存在,则创建文件。
// 		O_EXCL	 如果同时指定了OCREAT,而文件已经存在,则open()出错,返回-1。	 
//		O_APPEND 每次文件写入加到文件尾部。
//		O_TRUNC  删去文件中原本的内容。
//mode:	一定是在flags中使用了O_CREAT标志,mode记录待创建的文件的访问权限。

mode的分类和加权数字表示

宏表示 含义 宏表示 含义 宏表示 含义
S_IRUSR 使用者可读权限 S_IRGRP 群组拥有读权限 S_IROTH 其他用户拥有读权限
S_IWUSR 使用者可写权限 S_IWGRP 群组拥有写权限 S_IWOTH 其他用户拥有写权限
S_IXUSR 使用者可执行权限 S_IXGRP 群组拥有执行权限 S_IXOTH 其他用户拥有执行权限

S_IRUSR、S_IWUSR、S_IXUSR比较常用

加权数字 第一位 第二位 第三位
4 使用者可读权限 群组拥有读权限 其他用户拥有读权限
2 使用者可写权限 群组拥有写权限 其他用户拥有写权限
1 使用者可执行权限 群组拥有执行权限 其他用户拥有执行权限

例如:0666,拥有4+2=6使用者可读、可写权限;拥有4+2=6群组可读、可写权限;拥有4+2=6其他用户可读、可写权限。

什么是文件描述符?简单来说就是描述和区分文件的一个标志。上面看出文件描述符是个int型。
什么是程序?什么进程?
1、程序是静态的概念,gcc xxx.c –o pro 磁盘中生成pro文件,叫做程序;
2、进程是程序的一次运行活动,通俗点意思是程序跑起来了,系统中就多了一个进程;
ps:图中fd为文件描述符,图中进程和原进程是一个意思,由于为让图结构看着清晰,取了原进程的名字。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值