cp(1)命令的简单实现(一)

/******************************************************
 Program:
	program to copy a file.
 History:
	2013/05/25	dingdong	First release
******************************************************/

#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>

char buffer[1024];

void copy(int old,int new);

int
main(int argc,char *argv[])
{
	int fdold,fdnew;
	
	if(argc!=3)
	{
		printf("need 2 arguments for copy program\n");
		exit(1);
	}
	/*open source file read only*/
	if((fdold=open(argv[1],O_RDONLY))==-1)
	{
		printf("cannot open file %s\n",argv[1]);
		exit(1);
	}
	if((fdnew=creat(argv[2],0666))==-1)
	{
		printf("cannot creat file %s\n",argv[2]);
		exit(1);
	}
	copy(fdold,fdnew);
	exit(0);
}

void 
copy(int old,int new)
{
	int count;
	while((count=read(old,buffer,sizeof(buffer)))>0)
		write(new,buffer,count);		
}

这个命令主要是用到read跟write函数即可,思路比较简单,跟大家分享下代码,过几天再实现一个完全复制的参数。




版权声明:本文为QiangWaiQiang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。