系统调用的函数常用的有:open,close,creat,read,write,lseek,dup这几个函数。
实现cp的过程:cp命令使用格式 cp 文件1 文件2
首先打开文件->读文件->写入另一个文件->关闭文件。
实现代码:
/*********************
*mycp.c
*switch
*2016/7/27
*瀹炵幇鏂囦欢鎷疯礉
*********************/
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc,char **argv)
{
int fd1,fd2,count=0;
char bufs[512];
//鍒ゆ柇鏍煎紡鏄惁姝g‘
if(argc<2)
{
printf("Usage is error:./mycp argv1 argv2.\n");
return -1;
}
//鎵撳紑鏂囦欢
fd1 = open(argv[1],O_RDONLY,0755);
//鍒ゆ柇鏄惁鎵撳紑澶辫触
if(fd1<0)
{
printf("open file1 error!\n");
return -1;
}
fd2 = open(argv[2],O_RDWR|O_CREAT,0755);
if(fd2<0)
{
printf("open file2 error!\n");
return -1;
}
//璇绘枃浠?鍐欐枃浠?
//锛燂紵杩欏潡鍙互lseek鍒版枃浠剁殑寮€澶存棤鎰忎箟
while( (count = read(fd1,bufs,100))>0 )
{
//锛燂紵杩欏潡鍙互浣跨敤dup涓嶈繃娌℃湁鎰忎箟
write(fd2,bufs,count);
}
//鍏抽棴鏂囦欢
close(fd1);
close(fd2);
}