实验6- LINUX环境编程-2.doc

实验6- LINUX环境编程-2.doc

ID:48218771

大小:71.04 KB

页数:15页

时间:2020-01-23

实验6-  LINUX环境编程-2.doc_第1页
实验6-  LINUX环境编程-2.doc_第2页
实验6-  LINUX环境编程-2.doc_第3页
实验6-  LINUX环境编程-2.doc_第4页
实验6-  LINUX环境编程-2.doc_第5页
资源描述:

《实验6- LINUX环境编程-2.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验6、LINUX环境编程-2学生姓名:李亚军学号:6100412196专业班级:卓越计科121班1.实验目的结合文件操作,理解LINUX环境中的命令行参数的使用。2.实验内容1.编写LINUXC程序,实现简单的LINUX命令ls功能。3.实验步骤(1)代码myls.c#include#include#include#include#include#include#include#include#include

2、#include#include#include#include#include#include#include#defineOPT_v0x0001/*-v选项:查看本软件版本*/#defineOPT_h0x0002/*-h选项:查看本软件帮助*/#defineOPT_l0x0004/*-l选项:长型(long)显示*/#defineOPT_a0x0008/*-a选项:显示所有文件(all)*/#defineOPT_R0x0010/*-R选项

3、:显示子目录内容*/#defineOPT_f0x0020/*-f选项:不排序*/#defineDONE_SUCCESS0typedefstruct_Node{charpath[1024];charname[256];intlength;structstatst;struct_Node*pnext;}nNode;intcreatelslink(char*path,intflag,nNode**head){DIR*dp;structdirent*entry;structstatstatbuf;nNode*p;charabspath[1024];if((dp=opendir(path))=

4、=NULL){fprintf(stderr,"cannotopendirectory:%s",path);return-1;}if(chdir(path)==-1){fprintf(stderr,"cannotcddirectory:%s",path);return-2;}if(NULL==getcwd(abspath,1024)){fprintf(stderr,"getcwderror!");return-3;}while((entry=readdir(dp))!=NULL){lstat(entry->d_name,&statbuf);if((!(flag&OPT_a)

5、)&&(entry->d_name[0]=='.'))/*没有选项-a则不显示.开头的文件(或目录)名*/continue;else{p=(nNode*)malloc(sizeof(nNode));p->pnext=*head;*head=p;(*head)->length=strlen(entry->d_name);strcpy((*head)->path,abspath);strcpy((*head)->name,entry->d_name);memcpy(&((*head)->st),&statbuf,sizeof(structstat));}}if(-1==chdir("..

6、")){fprintf(stderr,"cannotcddirectory:..");return-3;}if((closedir(dp))==-1){fprintf(stderr,"cannotclosedp");return-4;}returnDONE_SUCCESS;}voidsortlslink(nNode*head,intflag){nNode*p,*q,r;intmsuccess;if(!head)return;if(flag&OPT_f){;}else{p=head;while(p->pnext)p=p->pnext;while(p!=head){q=head;

7、msuccess=1;while(q->pnext){if(strcmp(q->name,q->pnext->name)>0){memcpy(&r,q,sizeof(nNode));strcpy(q->name,q->pnext->name);strcpy(q->path,q->pnext->path);q->length=q->pnext->length;memcpy(&q->st,&(q->pnext->st),sizeof(q->st));strcp

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

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

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