Linux 系统编程学习-文件I/O操作
2014-02-21 11:11
274 查看
一、非缓冲文件操作
执行非缓冲文件操作后,应用程序将立即获取或传送数据,非缓冲文件操作的函数只有:read(),write()。
从文件中将信息讲到到指定的内存区域中read(文件标识符,内存块指针,内存块长度);
返回值是实际读取的长度,没有读取到数据返回0,错误返回1
文件标识符可使用open()函数获得,或者使用系统预先分配的文件标识符。
将指定长度的数据写入文件中write(文件标识符,内存块指针,内存块长度) 返回值同read()函数
注:read(0,内存块指针,内存块长度)中文件标识符0是系统预定义的文件标识符,代表标准输入,实现的操作与gets()或scanf()函数相当。
指定指针的具体位置lseek(文件标识符,偏移长度,起始位置) 返回值是指针位置,失败返回-1
二、缓冲文件操作
打开文件流fopen(路径,打开方式),返回值是文件流指针,失败返回NULL
关闭文件流fclose(文件流指针),当fclose()函数执行时,所有放在缓冲区等待写入的数据都将被写入到文件中,如果数据没能成功保存,返回-1,否则返回0
需要用到文件流结构指针 FILE *
读取文件流fread(缓冲区指针,长度,数量,文件流指针)
写入文件流fwrite()
fflush(缓冲区指针) 此函数是待写入的数据存储在缓冲区中,而又要立即将缓冲区的数据写入文件
文件流的格式化输入与输出
fscanf(文件流指针,“控制字符串”,输入项列表);返回值是正确输入项的个数
fprintf(文件流指针,“控制字符串”,输出项列表);返回值是实际输出数据的长度
注:fscanf()并不是最灵活的实现方法,因为需要预先估计文件的形式并定义控制字符串,它会将所遇到数值为0的地方当作字符串结束符处理。
文件流的定位操作
fgetpos(文件流指针,fpos_t *位置),获得文件当前读写位置,操作成功返回0,否则返回-1
fsetpos(文件流指针,const fpos_t *位置)设置文件读写位置,返回值同上
ftell(文件流指针)获得文件当前读写位置偏移量,返回值为长整型
rewind(文件流指针)将文件指针重新指向一个流的开头
注:fpos_t类型是标准函数库中定义的一种结构体,是文件流FILE结构体中的一个成员。
文件流操作的其他函数
fgetc(文件流指针)从文件读取一个字符,并将该字符以整型数据返回给调用者;
fputc(字符型数据,文件流指针) 向文件输出一个字符,返回操作结果
fgets(字符串指针,最大长度,文件流指针)从文件读取一个字符串保存到字符串指针指向 的位置,操作成功返回字符串指针
fputs(字符串指针,文件流指针)向文件输了一个字符串,操作成功时返回字符串的长度
freopen(路径,打开方式,文件流指针)重新打开一个文件
setvbuf(文件流指针,缓冲区指针,类型,缓冲区大小)设置文件流的缓冲区
remove(路径)删除文件或目录
文件操作流的错误处理
ferror(文件流指针)判断文件流操作是否失败,失败返回非0,否则返回0
feof(文件流指针)当文件流内指向文件中位置的指针到达文件尾,返回非0,否则返回0
clearee(文件流指针)清除errno变量内错误信息
执行非缓冲文件操作后,应用程序将立即获取或传送数据,非缓冲文件操作的函数只有:read(),write()。
从文件中将信息讲到到指定的内存区域中read(文件标识符,内存块指针,内存块长度);
返回值是实际读取的长度,没有读取到数据返回0,错误返回1
文件标识符可使用open()函数获得,或者使用系统预先分配的文件标识符。
将指定长度的数据写入文件中write(文件标识符,内存块指针,内存块长度) 返回值同read()函数
注:read(0,内存块指针,内存块长度)中文件标识符0是系统预定义的文件标识符,代表标准输入,实现的操作与gets()或scanf()函数相当。
指定指针的具体位置lseek(文件标识符,偏移长度,起始位置) 返回值是指针位置,失败返回-1
二、缓冲文件操作
打开文件流fopen(路径,打开方式),返回值是文件流指针,失败返回NULL
关闭文件流fclose(文件流指针),当fclose()函数执行时,所有放在缓冲区等待写入的数据都将被写入到文件中,如果数据没能成功保存,返回-1,否则返回0
需要用到文件流结构指针 FILE *
读取文件流fread(缓冲区指针,长度,数量,文件流指针)
写入文件流fwrite()
fflush(缓冲区指针) 此函数是待写入的数据存储在缓冲区中,而又要立即将缓冲区的数据写入文件
文件流的格式化输入与输出
fscanf(文件流指针,“控制字符串”,输入项列表);返回值是正确输入项的个数
fprintf(文件流指针,“控制字符串”,输出项列表);返回值是实际输出数据的长度
注:fscanf()并不是最灵活的实现方法,因为需要预先估计文件的形式并定义控制字符串,它会将所遇到数值为0的地方当作字符串结束符处理。
文件流的定位操作
fgetpos(文件流指针,fpos_t *位置),获得文件当前读写位置,操作成功返回0,否则返回-1
fsetpos(文件流指针,const fpos_t *位置)设置文件读写位置,返回值同上
ftell(文件流指针)获得文件当前读写位置偏移量,返回值为长整型
rewind(文件流指针)将文件指针重新指向一个流的开头
注:fpos_t类型是标准函数库中定义的一种结构体,是文件流FILE结构体中的一个成员。
文件流操作的其他函数
fgetc(文件流指针)从文件读取一个字符,并将该字符以整型数据返回给调用者;
fputc(字符型数据,文件流指针) 向文件输出一个字符,返回操作结果
fgets(字符串指针,最大长度,文件流指针)从文件读取一个字符串保存到字符串指针指向 的位置,操作成功返回字符串指针
fputs(字符串指针,文件流指针)向文件输了一个字符串,操作成功时返回字符串的长度
freopen(路径,打开方式,文件流指针)重新打开一个文件
setvbuf(文件流指针,缓冲区指针,类型,缓冲区大小)设置文件流的缓冲区
remove(路径)删除文件或目录
文件操作流的错误处理
ferror(文件流指针)判断文件流操作是否失败,失败返回非0,否则返回0
feof(文件流指针)当文件流内指向文件中位置的指针到达文件尾,返回非0,否则返回0
clearee(文件流指针)清除errno变量内错误信息
相关文章推荐
- Linux系统信息查看命令大全(查看内存使用情况)
- 如何在Linux下格式化U盘以及修改卷标
- linux下各种文件格式的压缩以及解压缩命令
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 应用 Valgrind 发现 Linux 程序的内存问题
- inittab 详解
- linux 技巧 免除密码
- Linux学习记录--文件内容查阅
- Linux学习记录--文件内容查阅
- suse linux安装cmake时ccmake没有安装上的原因
- linux密码正确,但是无法登陆
- Linux查找文件内容
- Linux下查看文件和文件夹大小
- Hadoop\Linux问题资料总结
- Linux用户(user)和用户组(group)的日常管理与操作教程概述
- linux: 虚拟机使用NAT方式连网
- linux CentOS下搭建SVN服务器
- Linux -> usb-serial -> option.c 设备编译usb-serial支持多设备
- 嵌入式Linux BSP的设计与实现
- archlinux配置笔记