前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux文件系统

Linux文件系统

作者头像
心跳包
发布2020-08-28 11:39:56
6.7K0
发布2020-08-28 11:39:56
举报
文章被收录于专栏:嵌入式智能硬件

一、Linux文件系统

1.创建

代码语言:javascript
复制
int creat(const char *filename,mode_t mode)

参数mode是存储文件的权限

2.打开

代码语言:javascript
复制
int open(const char*pathname,int flag)
代码语言:javascript
复制
int open(const char*pathname,int flag,mode_t mode)

flag文件打开标志:

O_RDONLY:以只读形式打开文件

O_WRONLY:以只写方式打开文件

O_RDWR:以读写方式打开文件

O_APPEND:以追加的方式打开文件

O_CREAT:创建一个文件

O_EXEC:如果使用O_CREAT而且文件已经存在,就会发生一个错误

O_NOBLOCK:以非阻塞方式打开一个文件

O_TRUNC:如果文件已经存在,则删除文件内容

如果使用的是O_CREAT标志,则使用的函数是int open(const char*pathname,int flag,mode_t mode),这个时候要指定mode标志,用来表示文件的访问权限。

mode文件访问权限

S_IRUSR 用户可以读

S_IWUSR用户可以写

S_IXUSR用户可以执行

S_IRWXU用户可以读、写、执行

S_IRGRP组可以读

S_IWGRP组可以写

S_IXGRP组可以读、写、执行

S_IROTH其他人可以读

S_IWOTH其他人可以写

S_IXOTH其他人可以执行

S_ITWXO其他人可以读写执行

S_ISUID设置用户执行ID

S_ISGID设置组执行ID

3.读写

代码语言:javascript
复制
int read(int fd,const void *buf,size_t length)
int write(int fd,const void *buf,size_t length)

在文件打开后才可以读写

4.定位

代码语言:javascript
复制
int lseek(int fd,offset_t offset,int whence)

lseek()将文件读写指针相对whence移动offset个字节,操作成功时,返回文件指针相对于文件头位置,参数whence可使用下述值:

SEEK_SET:相对文件头文件

SEEK_CUR:相对文件读写指针的当前位置

SEEK_END:相对文件末尾

offset可取负值

lseek(fd,0,SEEK_END)文件的返回值长度

5.关闭

代码语言:javascript
复制
int close(int fd)

二、C库文件系统

1.创建和打开

代码语言:javascript
复制
FILE *fopen(const char *path,const char *mode )

2.读写

代码语言:javascript
复制
int fgetc(File *stream ) 
代码语言:javascript
复制
int fputc(int c,FILE *steam) 
代码语言:javascript
复制
char *fgets(char *s,int n,FILE *steam) 
代码语言:javascript
复制
int fputs(const char *s,FILE *stream) 
代码语言:javascript
复制
int fprintf(FILE *stream,const char *format,...) 
代码语言:javascript
复制
int fscanf(FILE *steam,const char *format,...) 
代码语言:javascript
复制
size_t fread(void *ptr,size_t size ,size_t n,FILE *stream) 
代码语言:javascript
复制
size_t fwrite(const void *ptr ,size_t size ,size n,FILE *stream)

3.关闭

代码语言:javascript
复制
int fclose(FILE *stream)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/04/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档