Linux系统编程复习提纲代码.doc

Linux系统编程复习提纲代码.doc

ID:59254204

大小:70.50 KB

页数:20页

时间:2020-09-08

Linux系统编程复习提纲代码.doc_第1页
Linux系统编程复习提纲代码.doc_第2页
Linux系统编程复习提纲代码.doc_第3页
Linux系统编程复习提纲代码.doc_第4页
Linux系统编程复习提纲代码.doc_第5页
资源描述:

《Linux系统编程复习提纲代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、利用文件系统调用函数实现cp命令,例如./a.outa.txtb.txt当前目录下的a.txt到b.txt#include#include#include#include#defineBUFFER_SIZE1024intmain(intargc,char**argv){FILE*from_fd;FILE*to_fd;longfile_len=0;charbuffer[BUFFER_SIZE];char*ptr;/*判断入参*/if(argc!=3){printf("

2、Usage:%sfromfiletofile",argv[0]);exit(1);}/*打开源文件*/if((from_fd=fopen(argv[1],"rb"))==NULL){printf("Open%sError",argv[1]);exit(1);}/*创建目的文件*/if((to_fd=fopen(argv[2],"wb"))==NULL){printf("Open%sError",argv[2]);exit(1);}/*测得文件大小*/fseek(from_fd,0L,SEEK_END);file_len=ftell(fr

3、om_fd);fseek(from_fd,0L,SEEK_SET);printf("fromfilesizeis=%d",file_len);/*进行文件拷贝*/while(!feof(from_fd)){fread(buffer,BUFFER_SIZE,1,from_fd);if(BUFFER_SIZE>=file_len){fwrite(buffer,file_len,1,to_fd);}else{fwrite(buffer,BUFFER_SIZE,1,to_fd);file_len=file_len-BUFFER_SIZE;}//写入完成

4、后清空缓冲区memset(buffer,0,BUFFER_SIZE);}fclose(from_fd);fclose(to_fd);exit(0);}1、通过leek函数,计算文件大小。#include#includeoff_tlseek(intfd,off_tpos,intorigin);fd文件描述符originSEEK_CUR:若pos为0,返回当前文件位置(相对文件当前读写指针的位置+pos)SEEK_END:若pos为0,设为文件尾部(相对当前文件长度+pos)SEEK_SET:若pos为0,设

5、文件开始(将文件设置成pos)Pos文件偏移量返回值:成功返回新文件位置,失败返回-1运行时,要输入要计算文件的名字,和一个复制用的文件名(可不存在的)#include//printffprintf#include//memset#include//readwritelseek#include//exit#include//errno全局变量#include//open#defineLEN1024voidmycp(intfd_in,in

6、tfd_out){charbuff[LEN]={0};intsize;intlen;//如果读取成功,将缓冲区数据写入out文件while((size=read(fd_in,buff,sizeof(buff)))>0){//写入数据,如果失败,程序退出if(write(fd_out,buff,size)!=size){fprintf(stderr,"writeerror:%s",strerror(errno));exit(1);}//打印偏移量len=lseek(fd_in,0,SEEK_CUR);printf("读了%d",len);//

7、写入完成后清空缓冲区memset(buff,0,sizeof(buff));}if(size<0){fprintf(stderr,"readerror:%s",strerror(errno));exit(1);}return;}intmain(intargc,char**argv){//判断参数是否输入正确(是否输入了两个文件名)if(argc<3){fprintf(stderr,"输入参数出错:%s",strerror(errno));exit(1);}//打开文件,判断打开是否失败(打开需计算的文件)intfd_in=open(argv

8、[1],O_RDONLY);if(fd_in<0){fprintf(stderr,"打开文件出错:%s",strerr

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

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

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