一、在Linux下对文件操作有两种方式:Linux系统调用和ANSI C文件操作。
1、Linux系统调用调用常用于I/O文件操作,系统调用常用的函数有open、close、read、write、lseek、ulink等。
2、 ANSI C文件操作
ANSI C文件操作方法是所有操作系统通用的文件操作方法,它的操作是被缓冲过的被修改的文件并不会立即反应到磁盘中,它在内存中开辟一个“缓冲区”,为程序中的每一个文件操作所使用,当执行读文件的操作时,从磁盘文件中将数据先读入内存“缓冲区“,装满后再从内存“缓冲区”依次读入接收的数据。这种文件操作方式又被称作流式文件操作。ANSI C文件操作常用的函数有fopen、fclose、fread、fwrite、fseek、ftell、rewind、fgetc、fputc、fgets、fputs及remove等
三、下面用两个函数说明Linux系统调用和ANSI C文件操作的区别。
1、由于缓冲区的存在,因此流中的数据与对应文件的数据可能不一致,当系统掉电时,文件若没有及时close(),缓冲区的数据就会丢失,为了同步缓冲区,此时可以调用fflush()函数实现。
fflush()函数需要的头文件:
#include <stdio.h>
函数原型:
int fflush(FILE *stream);
参数说明:
stream:文件句柄。
返回值:
成功返回0;
失败返回EOF。