1.实现自己的cat命令 例如cat 1.txt 2.txt 3.txt..
#include "/home/ubuntu/IO/myinc.h"
int main(int argc, const char *argv[])
{
for(int i=1;i<argc;i++)
{
int fd;
fd=open(argv[i],O_RDWR);
char arr[10]={0};
while(1)
{
memset(arr,0,10);
ssize_t rd=read(fd,arr,sizeof(arr)-1);
printf("%s",arr);
if(0 == rd)
{
break;
}
}
}
return 0;
}
头文件:
#ifndef __MYSTD__
#define __MYSTD__
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#endif
运行结果:
2.实现自己的cp命令
代码:
#include "/home/ubuntu/IO/myinc.h"
int main(int argc, const char *argv[])
{
printf("%d \n",argc);
int fd1=open(argv[1],O_RDWR);
int fd2=open(argv[2],O_RDWR | O_CREAT,0777);
int buf[10]={0};
while(1)
{
memset(buf,0,10);
int rd=read(fd1,buf,sizeof(buf)-1);
write(fd2,buf,rd);
if(0==rd)
{
break;
}
}
return 0;
}
头文件:
#ifndef __MYSTD__
#define __MYSTD__
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#endif
运行结果:
3.实现diff命令(比较两个文件是否相同,如果相同就打印相同,如果不相同就打印不同)
#include "/home/ubuntu/IO/myinc.h"
#include <errno.h>
int main(int argc, const char *argv[])
{
int fd1=open(argv[1],O_RDWR);
if(-1 == fd1)
{
printf("打开%s失败,错误为%s\n",argv[1],strerror(errno));
}
int fd2=open(argv[2],O_RDWR);
if(-1 == fd2)
{
printf("打开%s失败,错误为%s\n",argv[2],strerror(errno));
}
char brr[10]={0};
char arr[10]={0};
while(1)
{
memset(arr,0,10);
memset(brr,0,10);
int rd1=read(fd1,arr,sizeof(arr)-1);
int rd2=read(fd2,brr,sizeof(brr)-1);
if(0 == rd1 || 0 == rd2)
{
printf("相同\n");
break;
}
if(strcmp(arr,brr)!=0)
{
printf("%s和%s不相同\n",argv[1],argv[2]);
break;
}
}
return 0;
}
头文件:
#ifndef __MYSTD__
#define __MYSTD__
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#endif
运行结果如下: