- 用read和write实现cp
1,注意头文件
2,fd1是源文件,传入参数中的第一个,fd2是目标文件,传入参数中的第二个,要写入的文件至少可写:如果没有当前文件就创建文件并设置权限,如果已经有文件就截断为0再重新写
3,定义一个缓冲区,读到缓冲区,再从缓冲区中写入目标文件
4,用循环,知道读到源文件尾返回为0才停止
5,养成习惯,打开文件就要关闭文件
扩展:关于错误处理函数:
在系统编程阶段是不允许像上文编写程序的,上文主要为了凸显编写逻辑。
在理论上讲,所有的系统函数在编辑编写中都需要检查返回值, 除了有一些必要性不是特别大,像close函数
==改上例:open的时候和read的时候都可能报错
同样也可用fget,gput函数实现拷贝,但是却比read和write函数实现快很多,这是因为fget和fput函数有自带的一个缓冲区,是4096个字节一次才进行磁盘交换,而readwrite就是按照程序所给buf大小进行交换。可用strace
进行查看
read、write称为Unbuffered I/O,无用户级缓冲区
所以系统函数并不比库函数更好