Linux文件的基本操作函数
1、Linux文件的基本操作 Linux文件的基本操作主要包括了文件的创建、打开、读写和关闭等基本操作。 1.1、文件操作系统调用 (1)创建文件系统函数 int creat(const char *pathname,mode_t mode); 参数: ???????? pathname:要创建文件的名称 ???????? mode:新建文件的存取权限,可通过umask()系统调用改变文件权限 返回值: ???????? 成功:返回新的文件描述符 ???????? 失败:返回-1或者其它错误号 (2)修改文件权限函数 将文件设置为新的mask,并且返回旧的mask mode_t umask(mode_t mask); 参数: ???????? mask:要设置的文件权限 返回值: ???????? 返回文件旧的权限 (3)文件打开函数 文件打开函数open()具有两种函数形式 int open(const char *pathname,int flags); int open(const char *pathname,int flags,mode_t mode); 参数: ???????? pathname:要打开的文件名 ???????? flages:文件打开的标志 O_RDONLY:以只读方式打开文件 O_WRONLY:以只写方式打开文件 O_RDWR:以读写方式打开文件 O_APPEND:以追加的方式打开文件 O_CREAT:创建一个文件 O_NOBLOCK:以非阻塞的方式打开文件 O_TRUNC:如果文件已存在,则删除文件的内容 ???????? mode:设置文件的访问权限,可以使用或逻辑进行配合使用 S_IRUSR:用户可以读 S_IWUSR:用户可以写 S_IXUSR:用户可以执行 S_IRWXU:用户可以读、写、执行 S_IRGRP:组可以读 S_IWGRP:组可以写 S_IXGRP:组可以执行 S_IRWXG:组可以读、写、执行 S_IROTH:其他人可以读 S_IWOTH:其他人可以写 S_IXOTH:其他人可以执行 S_IRWXO:其他人可以读、写、执行 S_ISUID:设置用户执行ID S_ISGID:设置组的执行ID 返回值: ???????? 成功:返回文件描述符 ???????? 失败:返回-1或者其他错误号 (4)文件读函数 对文件进行打开操作后,使用read()可以对文件进行读操作,函数原型如下 ssize_t read(int fd,void *buf,size_t count); 参数: ???????? fd:要读的文件的文件描述符 ???????? buf:缓冲区,用来保存在文件中读到的内容 ???????? count:要读的字节数 返回值: ???????? 成功:返回已经读到的字节数 ???????? 失败:返回-1 (5)文件写函数 对文件进行打开操作后,使用write()可以对文件进行写操作,函数原型如下 ssize_t write(int fd,const void *buf,size_t count); 参数: ???????? fd:要写的文件的文件描述符 ???????? buf:缓冲区,保存要写入文件里面的内容 ???????? count:要写入的字节数 返回值: ???????? 成功:返回已经写入的字节数 ???????? 失败:返回-1 (6)文件指针定位函数 使用lseek()能对文件指定的文件进行读写操作,函数原型如下 off_t lseek(int fd,off_t offset,int whence); 参数: ???????? fd:要操作的文件的文件描述符 ???????? offset:相对于whence的偏移字节数,能取负值 ???????? whence:相对位置 SEEK_SET:相对文件开头 SEEK_CUR:相对文件读写指针的当前位置 SEEK_END:相对文件末尾 返回值: ???????? 成功:返回新的偏移位置 ???????? 失败:返回-1 (7)文件关闭函数 打开文件对文件进行相关的读写操作后,必须要关闭文件,函数原型如下 int close(int fd); 参数: ???????? fd:要关闭的文件的文件描述符 返回值: ???????? 成功:返回0 ???????? 失败:返回-1 1.2、C库文件函数调用 C库文件函数的操作独立于具体的操作系统平台 (1)文件创建和打开函数 FILE *fopen(const char *path,const char *mode); 参数: ???????? path:要创建或者打开的文件名 ???????? mode:以何种方式打开或创建文件 r/rb:以只读方式打开文件 w/wb:以只写方式打开文件 a/ab:以追加的方式打开文件,如果文件不存在,则创建文件 r+/r+b/rb+:以读写的方式打开 w+/w+b/wh+:以读写方式打开,如果文件不存在,则创建文件 a+/a+b/ab+:以读和追加方式打开,如果文件不存在,则创建新文件 返回值: ???????? 成功:返回FILE文件指针 ???????? 失败:返回NULL (2)文件读写函数 C库函数支持以字符或者字符串的形式对文件进行读写操作 int fgetc(FILE *stream); char *fgets(char *s,int size,FILE *stream); int fputc(int c,FILE *stream); int fputs(const char *s,FILE *stream); int fprintf(FILE *stream,const char *format,...); int fscanf(FILE *stream,...); size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream); size_t fwrite(const void *ptr,FILE *stream); (3)文件指针定位函数 int fseek(FILE *stream,long offset,int whence); 参数: ???????? stream:要操作的文件的文件指针 ???????? offset:偏移量 ???????? whence:文件的相对位置 SEEK_SET:相对于文件头 SEEK_CUR:相对于文件的当前位置 SEEK_END:相对于文件的末尾 返回值: 成功:返回0 失败:返回-1 (4)文件关闭函数 int fclose(FILE *stream);
参数: ???????? stream:要关闭文件的文件指针 返回值: ???????? 成功:返回0 ???????? 失败:返回错误号 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |