问题引入:
利用Linux提供的系统IO函数(eg:open , close , read , write ,lseek ),现两个文件的拷贝,文件名从命令行参数传入:
./a.out 11.txt 22.txt
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc,char*argv[])
{
//打开文件两个文件
int fd1 = open(argv[1],O_RDONLY);
if(fd1 == -1)
{
perror("open fd1 error:");
return -1;
}
int fd2 = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0666);
if(fd2 == -1)
{
perror("open fd2 error:");
close(fd1);
return -1;
}
//操作文件
//一个进行读,一个进行写
while(1)
{
char buf[32];
int re = read(fd1,buf,32);
if(re == 0)
{
break;
}
write(fd2,buf,re);
}
//关闭文件
close(fd1);
close(fd2);
}