关于文件编程的函数分成两种方式
- 系统调用,就是system called interface 采用系统提供的接口进行文件的编写。
- 库函数,不依赖于当前的RUNNING system 只是依赖库函数,这种方式具有良好的可移植性。
其中读写函数运用的好坏直接影响了文件的读写性能,关于文件读写性能好坏,那就是对缓冲区BUF的使用情况的把握,比如我们的使用的文件系统(file system ) 是EXT2 该系统使用的块大小是4k,这时我们的缓冲区应该是多少呢?
通过以下程序的测试!
#inclue
#define BUFSIZE 4096
int main(void)
{
int n;
char buf(BUFSIZE);
while((n=read(STDIN_FILENO,buf,BUFSIZE)) >0)
{
if(wirte(STDOUT_FILENO,buf,n) != n)
err_sys("write error!");
}
if(n < 0)
err_sys("read error!");
return 0;
}
最终发现是使用和文件系统的块大小一致是最好的,所以是4K BUF 最合适!