1、函数原型
1.1 read
ssize_t read(int fd, void *buf, size_t count);
fd:文件描述符
buf:缓冲区
count:缓冲区大小
成功:读到的字节数
失败: -1 设置errno
1.2 write
ssize_t write(int fd, void *buf, size_t count);
fd:文件描述符
buf:缓冲区指针
count:数据大小
成功:写入的字节数
失败: -1 设置errno
2、函数代码
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define MAX_BUF_lEN 1024
int main(int argc, char *argv[])
{
char buf[MAX_BUF_lEN];
int ret = 0;
int fd1 = fopen(argv[1], O_RDONLY);
if(-1 == fd1){
perror("open argv1 error!");
exit(1);
}
int fd2 = fopen(argv[2], O_RDWR|O_CREATE|O_TRUNC, 0664);
if(-1 == fd1){
perror("open argv2 error!");
exit(1);
}
while((ret = read(fd1, buf, 1023)) != 0 )
{
if(n<0){
perror("read error!")
break;
}
write(fd2, buf, ret);
}
close(fd1);
close(fd2);
exit(1);
}