实验四 Linux下的C语言编程

实验四 Linux下的C语言编程

ID:38730237

大小:42.52 KB

页数:5页

时间:2019-06-18

实验四 Linux下的C语言编程_第1页
实验四 Linux下的C语言编程_第2页
实验四 Linux下的C语言编程_第3页
实验四 Linux下的C语言编程_第4页
实验四 Linux下的C语言编程_第5页
资源描述:

《实验四 Linux下的C语言编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四Linux下的C语言编程四、实验内容本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用。内容如下:1、编程实现copy命令。执行格式:copyfile1file2file3功能:将file1、file2两文件的内容合并拷入file3中,其中间应有30个字节的空洞(调试成功后可将空洞调大到几十MB)。程序执行后用du命令显示其占用磁盘空间,观察其大小,分析原因。程序可能涉及到的系统调用:read(),wri

2、te(),open(),creat(),close(),lseek()#include#include#include#include#include#include#includeintmain(intargc,charconst*argv[]){intfile1,file2,file3;if(argc!=4){printf("Usage:copyfile1fil

3、e2file3");exit(1);}file1=open(argv[1],O_RDONLY);file2=open(argv[2],O_RDONLY);file3=open(argv[3],O_CREAT

4、O_RDWR,S_IRWXU);intn;charbuf[1024];while((n=read(file1,buf,1024))>0)if(write(file3,buf,n)!=n)printf("writeerror");if(n<0)printf("read%serrorErrno=

5、%d",argv[1],errno);if(lseek(file3,30,SEEK_END)==-1)printf("lseekerror");while((n=read(file2,buf,1024))>0)if(write(file3,buf,n)!=n)printf("writeerror");if(n<0)printf("read%serrorErrno=%d",argv[2],errno);exit(0);close(file1);close(file2);close(file3)

6、;printf("success");return0;}2、编程实现renam(即LINUX下的rename)命令,功能是实现文件的重命名。执行格式:renamfileafileb;其中filea为源文件,fileb为目标文件。程序执行时应显示出命令行的所有参数,并给出重命名前后两个文件的大小、索引节点号及最近一次状态改变的时间。程序可能涉及到的系统调用:read(),write(),open(),stat(),close(),link(),unlink()#include#in

7、clude#include#include#include#includeexterninterrno;intmain(intargc,constchar*argv[]){structstatbuf1,buf2;if(argc!=3){printf("Usage:renameoldfilenewfile");exit(1);}if(stat(argv[1],&buf1)==-1){printf("starerro

8、rerrnois%d",errno);exit(1);}printf("使用stat()显示文件%s的信息",argv[1]);printf("%s大小-->%d",argv[1],(int)buf1.st_size);printf("%s索引节点号-->%d",argv[1],(int)buf1.st_ino);printf("%s最后一次修改时间-->%d",argv[1],(int)buf1.st_mtime);printf("-------------------------

9、-------------------------");if(rename(argv[1],argv[2])==-1){printf("renameerrorErrno%d",errno);exit(1);}printf("-------------------renamesuccess------------------");if(stat(argv[2],&buf2)==-1){printf(

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

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

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