文件描述符拷贝
#include <unistd.h>
//根据oldfd描述符生成一个新的文件描述符,生成新的文件描述符的原则是:最小的,未用的
int dup(int oldfd);
//根据oldfd生成一个新的文件描述符 ,但是这个新的文件描述符可以指定为具体的值
int dup2(int oldfd, int newfd);
例子:
int main(int argc,char *argv[])
{
//定义变量
int src=0;
int dst=0;
//判断argc
if(argc<0)
{
printf("用法:%s 源文件 目的文件\n",argv[0]);
exit(0);
}
//打开文件
src=open(argv[1],O_RDONLY,0644);
dst=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0644);
if((src<0)||(dst<0))
{
perror("open");
exit(0);
}
//文件拷贝
char buf[8]={0};
int len=0;
while((len=read(src,buf,sizeof(buf)))==sizeof(buf))
{
write(dst,buf,sizeof(buf));
memset(buf,0,sizeof(buf));
}
write(dst,buf,len);
//关闭文件
close(src);
close(dst);
return 0;
}