使用write和read完成文件的拷贝。
#include <stdio.h>
#include <string.h>
#include <myhead.h>
int main(int argc, const char *argv[])
{
int fd1,fd2;
fd1 = open("./1.txt",O_RDONLY);//只读方式打开文件1.txt
if(-1==fd1)
{
perror("open");
return -1;
}
fd2 = open("./2.txt",O_WRONLY|O_CREAT|O_TRUNC,0644);//只写方式打开文件
if(-1==fd2)
{
perror("open");
return -1;
}
char arr[100];
int len1,len2;
while ((len1 = read(fd1, arr, sizeof(arr))) > 0) // 读取数据直到文件末尾
{
len2 = write(fd2, arr, len1); // 写入数据到2.txt
if (len2 < 0)//数据错误,结束循化
{
perror("write");
break;
}
}
if (len1 < 0) // 检查读取是否成功
{
perror("read");
}
// 打印最后一次读取的数据,为空,没有输出,有输出说明拷贝出错
if (len1 > 0)
{
arr[len1] = '\0'; // 确保字符串以NULL字符结尾
printf("%s", arr);
}
//while((len1=read(fd1,arr,sizeof(arr)))!=0);
//思考如何写到一句话中
//while((len1=read(fd1,arr,sizeof(arr)))!=0&&(len2=write(fd2,arr,len1))!=0);
//printf("%s",arr);
close(fd1);
close(fd2);
return 0;
}