Linux之day3 文件系统

一、Linux文件系统

1.创建

int creat(const char *filename,mode_t mode)

参数mode是存储文件的权限

2.打开

int open(const char*pathname,int flag)
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.读写

int read(int fd,const void *buf,size_t length)
int write(int fd,const void *buf,size_t length)

在文件打开后才可以读写

4.定位

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.关闭

int close(int fd)

二、C库文件系统

1.创建和打开

FILE *fopen(const char *path,const char *mode )

2.读写

int fgetc(File *stream ) 
int fputc(int c,FILE *steam) 
char *fgets(char *s,int n,FILE *steam) 
int fputs(const char *s,FILE *stream) 
int fprintf(FILE *stream,const char *format,...) 
int fscanf(FILE *steam,const char *format,...) 
size_t fread(void *ptr,size_t size ,size_t n,FILE *stream) 
size_t fwrite(const void *ptr ,size_t size ,size n,FILE *stream)

3.关闭

int fclose(FILE *stream)


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页