Linux实验报告_大三上

Linux实验报告_大三上

ID:39454646

大小:229.07 KB

页数:32页

时间:2019-07-03

Linux实验报告_大三上_第1页
Linux实验报告_大三上_第2页
Linux实验报告_大三上_第3页
Linux实验报告_大三上_第4页
Linux实验报告_大三上_第5页
资源描述:

《Linux实验报告_大三上》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三普通文件和目录编程1.编写程序mycp.c,实现从命令行读入文件的复制功能,用原始文件系统调用。实验流程图:判断输入main函数参数个数argcargc!=3noExit(0)fd1=Open(argv[1],O_RDONLY);fd2=open(argv[2],O_RDWR

2、O_CREAT);1read(fd1,buf,bufsize);write(fd2,buf,i);if(i!=bufsize)break;实验程序代码://mycp.c#include#include#include<

3、sys/stat.h>#include#definebufsize5intmain(intargc,char*argv[]){intfd1,fd2;inti;charbuf[bufsize];if(argc!=3){printf("argumenterror");exit(1);}fd1=open(argv[1],O_RDONLY);if(fd1==-1){printf("file%scannotopened",argv[1]);exit(1);}fd2=open(argv[2],O_RDWR

4、O_CREAT);i

5、f(fd2==-1){printf("Cannotopenfile%s",argv[2]);exit(1);}while(1){i=read(fd1,buf,bufsize);write(fd2,buf,i);if(i!=bufsize)break;}close(fd1);close(fd2);return0;}Linux环境下运行情况如下:road@ubuntu:~/桌面/work$gcc-ocpcp.croad@ubuntu:~/桌面/work$./cpargumenterrorPleaseuse:cpfile1file2road@

6、ubuntu:~/桌面/work$./cpab其中,a为一文件,b为空文件。2.编写程序mycat.c,实现文件内容的显示,用原始文件系统调用实现。实验流程图:通过main函数从键盘输入命令行Argc=2?No重新输入命令行fd=open(argv[1],O_RDONLY)不等于1报错while((num=read(fd,buffer,99))>0)buffer[num]='';printf("%s",buffer);实验源代码如下://mycat.c#include#include#include

7、#include#includeintmain(intargc,char*argv[]){intfd;charbuffer[100];intnum;if(argc!=2){printf("usage:%sfilename",argv[0]);return1;}if((fd=open(argv[1],O_RDONLY))==-1){perror("cannotopenthefile");return1;}while((num=read(fd,buffer,99))>0){

8、buffer[num]='';printf("%s",buffer);}close(fd);return0;}Linux环境下运行情况如下:road@ubuntu:~/桌面/work$gcc-omycatmycat.croad@ubuntu:~/桌面/work$./mycatusage:./mycatfilenameroad@ubuntu:~/桌面/work$./mycataiamroad!!!road@ubuntu:~/桌面/work$其中,a为一个文件名。3.1用流文件系统函数重新编写上面的程序。实验流程图:用main命令输入命令行

9、:fcpfilename1filename2argc!=3不为3,提示fd1=fopen(argv[1],"r");打开第一个文件读出数据fd2=fopen(argv[2],"w");打开第二个文件写入数据fread(&buffer,sizeof(char),1,fd1);fwrite(&buffer,sizeof(char),1,fd2);把第一个文件写入第二个文件关闭两个文件描述符用流文件写的文件复制功能函数://fcp.c#include#include#include

10、>#includeintmain(intargc,char*argv[]){FILE*fd1,*fd2;charbuffer[20];if(argc!=3){p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。