下载后可任意编辑Linux 操作系统实验报告姓名: 杨子坤 学号: 0938115 班级:09 级通信 2 班 实验三 普通文件和目录编程1、编写程序 mycp.c,实现从命令行读入文件的复制功能,用原始文件系统调用。下载后可任意编辑程序流程如下:程序源代码如下://mycp.c//#include#include#include#define PERMS 0666//默认权限main(int argc,char *argv[]){int f1,f2,n;char buf[BUFSIZ];if(argc!=3)//参数个数不正确下载后可任意编辑 printf("Usage:cp from to\n");if((f1=open(argv[1],O_RDONLY,0))==-1) //只读打开待复制文件 printf("cp:cannot open %s\n",argv[1]);if((f2=creat(argv[2],PERMS))==-1)//创建目标文件,权限读写 printf("cp:cannot creat %s,mode %03o\n",argv[2],PERMS);while((n=read(f1,buf,BUFSIZ))>0)//读取文件 if(write(f2,buf,n)!=n)//写入文件printf("cp:write error on file %s\n",argv[2]);return 0;}运行结果:kury@kuryyang-Y471A ~/expt/expt3 $ gcc -o mycp mycp.ckury@kuryyang-Y471A ~/expt/expt3 $ lsfile1 mycat.c mycatf.c mycp mycp.c mycpf.c myls.c newfile.c 实验 3.vsdkury@kuryyang-Y471A ~/expt/expt3 $ ./mycp file1 filenewkury@kuryyang-Y471A ~/expt/expt3 $ lsfile1 mycat.c mycp mycpf.c newfile.c filenew mycatf.c mycp.c myls.c 实验 3.vsdkury@kuryyang-Y471A ~/expt/expt3 $ cat file1hello the worldkury@kuryyang-Y471A ~/expt/expt3 $ cat filenewhello the world可见在终端中用./mycp file1 filenew 实现了把文件 file1 复制到文件filenew 的功能,和 cp 命令所实现的功能一样。2、编写程序 mycat.c,实现文件内容的显示,用原始文件系统调用实现。程序流程如下:下载后可任意编辑程序源代码如下://mycat.c//#include#includemain(int argc,char *argv[]){int f1,n;char buf[BUFSIZ]; //存放读取的信息if(argc==1||argc>2)//输入参数个数不正确 { printf("enter the right file name\n"); exit(0); }else if((f1=open(argv[1],O_RDONLY,0))==-1)//打开文件 printf("cat:cannot open %s\n",argv[1]);while((n=read(f1,buf,BUFSIZ))>0)//读文件 puts(buf);//输出读取的长度}下载后可任意编辑运行结果:在终端中运行命令./myca...