欢迎来到天天文库
浏览记录
ID:62985037
大小:263.19 KB
页数:17页
时间:2021-07-23
《最新Unix第一次实验报告(编程实现程序list.c-列表普通磁盘文件等).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、精品资料Unix第一次实验报告(编程实现程序list.c-列表普通磁盘文件等)........................................精品资料Unix编程实验报告班级:CCCCCCCC学号:XXXXXXX姓名:XXX........................................精品资料一、实验目的练习vi,使用UNIX的系统调用和库函数,体会UNIX文件通配符的处理方式以及命令对选项的处理方式。二、实验要求编程实现程序list.c,列表普通磁盘文件(不考虑目录和设备文件等),列出文件名和文件大小。a)与ls命令类似,命令行参数可以有0到多个i
2、.0个参数:列出当前目录下所有文件ii.参数为普通文件:列出文件iii.参数为目录:列出目录下所有文件b)实现自定义选项r,a,l,h,m以及--i.r递归方式列出子目录ii.a列出文件名第一个字符为圆点的普通文件(默认情况下不列出文件名首字符为圆点的文件,即只显示隐藏文件)iii.l后跟一整数,限定文件大小的最小值(字节)iv.h后跟一整数,限定文件大小的最大值(字节)v.m后跟一整数n,限定文件的最近修改时间必须在n天内vi.--显式地终止命令选项分析........................................精品资料三、程序源码#include3、h>#include#include#include#include#include/*将char[]转换为数字*/intsav(charch[],intl[]){inti=0;l[0]=0;while(ch[i]!=' ')if(ch[i]<='9'&&ch[i]>='0'){l[0]=10*l[0]+ch[i]-'0';i++;}elsereturn0;return1;}main(intargc,char*argv[]){inti,j,k,ret,l=-1,h=-1,m=-1;4、........................................精品资料charpath[30],path1[30];structstatst;DIR*dir;/*定义Dir*/structdirent*entry;/*定义Dirententry*/intorder[7];/*各个数字代表含义order[1]->r;[2]->a;[3]->l;[4]->h;[5]->m;[6]->--*/time_ttp;/*当前时间*//*得到当前path*/for(i=1;i5、rgv[i][j]!=' ';j++)path[j]=argv[i][j];path[j]=' ';}else{path[0]='.';path[1]=' ';}/*GetOrder*/for(i=1;i<=6;i++)order[i]=0;for(i=1;i6、{order[3]=1;i++;if(i7、&m)==0){printf("Wrongorder!");return;}}elseif(argv[i][1]=='-'){order[6]=1;i=argc+1;}else{printf("Wrongorder!");return;}}}/*检查order*/if(order[3]==1&&l==-1){printf("Wrongorder!");return;}if(order[4]==1&&h==-1){printf("Wrongord
3、h>#include#include#include#include#include/*将char[]转换为数字*/intsav(charch[],intl[]){inti=0;l[0]=0;while(ch[i]!=' ')if(ch[i]<='9'&&ch[i]>='0'){l[0]=10*l[0]+ch[i]-'0';i++;}elsereturn0;return1;}main(intargc,char*argv[]){inti,j,k,ret,l=-1,h=-1,m=-1;
4、........................................精品资料charpath[30],path1[30];structstatst;DIR*dir;/*定义Dir*/structdirent*entry;/*定义Dirententry*/intorder[7];/*各个数字代表含义order[1]->r;[2]->a;[3]->l;[4]->h;[5]->m;[6]->--*/time_ttp;/*当前时间*//*得到当前path*/for(i=1;i5、rgv[i][j]!=' ';j++)path[j]=argv[i][j];path[j]=' ';}else{path[0]='.';path[1]=' ';}/*GetOrder*/for(i=1;i<=6;i++)order[i]=0;for(i=1;i6、{order[3]=1;i++;if(i7、&m)==0){printf("Wrongorder!");return;}}elseif(argv[i][1]=='-'){order[6]=1;i=argc+1;}else{printf("Wrongorder!");return;}}}/*检查order*/if(order[3]==1&&l==-1){printf("Wrongorder!");return;}if(order[4]==1&&h==-1){printf("Wrongord
5、rgv[i][j]!=' ';j++)path[j]=argv[i][j];path[j]=' ';}else{path[0]='.';path[1]=' ';}/*GetOrder*/for(i=1;i<=6;i++)order[i]=0;for(i=1;i6、{order[3]=1;i++;if(i7、&m)==0){printf("Wrongorder!");return;}}elseif(argv[i][1]=='-'){order[6]=1;i=argc+1;}else{printf("Wrongorder!");return;}}}/*检查order*/if(order[3]==1&&l==-1){printf("Wrongorder!");return;}if(order[4]==1&&h==-1){printf("Wrongord
6、{order[3]=1;i++;if(i7、&m)==0){printf("Wrongorder!");return;}}elseif(argv[i][1]=='-'){order[6]=1;i=argc+1;}else{printf("Wrongorder!");return;}}}/*检查order*/if(order[3]==1&&l==-1){printf("Wrongorder!");return;}if(order[4]==1&&h==-1){printf("Wrongord
7、&m)==0){printf("Wrongorder!");return;}}elseif(argv[i][1]=='-'){order[6]=1;i=argc+1;}else{printf("Wrongorder!");return;}}}/*检查order*/if(order[3]==1&&l==-1){printf("Wrongorder!");return;}if(order[4]==1&&h==-1){printf("Wrongord
此文档下载收益归作者所有