使用Linux C编程实现简单的ls命令.doc

上传人:白大夫 文档编号:3382015 上传时间:2019-08-20 格式:DOC 页数:2 大小:17KB
返回 下载 相关 举报
使用Linux C编程实现简单的ls命令.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《使用Linux C编程实现简单的ls命令.doc》由会员分享,可在线阅读,更多相关《使用Linux C编程实现简单的ls命令.doc(2页珍藏版)》请在三一文库上搜索。

1、使用Linux C编程实现简单的ls命令使用Linux C编程实现简单的ls命令具体代码如下:加载的头文件有stdio.h,sys/types.h,dirent.h,unistd.h,sys/stat.h,fcntl.h,string.h等。void main(int argc,char *argv) DIR *dir; struct dirent *rdir; struct stat statbuf; char * buffer=”/”; char *file_; char *p; int lenght=strlen(argvargc-1); int len=argc; char param

2、eter=i,t,a,u,g,b,s; /参数属组 if(argc=1 |strstr(argvargc-1,buffer)=NULL) argvargc+=”./”; dir=opendir(“./”); /打开目录文件 else dir=opendir(argvargc-1); file_=argvargc-1; /打开目录文件 while(rdir=readdir(dir)!=NULL) /读取目录中的目录或者文件 if(len!=argc) file_=rdir-d_name; /从struct dirent结构取出文件名称 else p=rindex(file_,/); if(str

3、len(p)!=1) strcat(file_,buffer); strcat(file_,rdir-d_name); int file=open(file_,O_RDONLY,0); /打开文件 stat(file_, /通过stat函数读取文件的状态信息放在struct stat 这个结构体中,这个结构包含文件的属组,属主,权限,时间戳,文件大小等。 int tmp=1; while(tmp if(rindex(argvtmp,parameter0)!=NULL) printf(%10d,rdir-d_ino); if(rindex(argvtmp,parameter1)!=NULL) p

4、rintf(%10d,statbuf.st_atime); if(rindex(argvtmp,parameter2)!=NULL) printf(%10d,rdir-d_ino); printf(%20d,statbuf.st_aTIme); printf(%10d,statbuf.st_uid); printf(%10d,statbuf.st_gid); printf(%10d,statbuf.st_blocks); printf(%10d,statbuf.st_size); if(rindex(argvtmp,parameter3)!=NULL) printf(%10d,statbuf.

5、st_uid); if(rindex(argvtmp,parameter4)!=NULL) printf(%10d,statbuf.st_gid); if(rindex(argvtmp,parameter5)!=NULL) printf(%10d,statbuf.st_blocks); if(rindex(argvtmp,parameter6)!=NULL) printf(%10d,statbuf.st_size); tmp+; close(file); /关闭打开的文件 if(len!=argc) int j=strlen(file_); while(j=lenght) file_j-=NU

6、LL; printf(%20sn,rdir-d_name); closedir(dir); /关闭打开的目录/*struct stat mode_t st_mode; /文件对应的模式,文件,目录等ino_t st_ino; /inode节点号dev_t st_dev; /设备号码dev_t st_rdev; /特殊设备号码nlink_t st_nlink; /文件的连接数uid_t st_uid; /文件所有者gid_t st_gid; /文件所有者对应的组off_t st_size; /普通文件,对应的文件字节数TIme_t st_aTIme; /文件最后被访问的时间TIme_t st_m

7、time; /文件内容最后被修改的时间time_t st_ctime; /文件状态改变时间blksize_t st_blksize; /文件内容对应的块大小blkcnt_t st_blocks; /伟建内容对应的块数量;struct drient long d_ino; 索引节点号 off_t d_off; 在目录文件中的偏移 unsigned short d_reclen; 文件名长 unsigned char d_type; 文件类型 char d_name NAME_MAX+1; 文件名,最长255字符int stat(const char *path, struct stat *struct_stat);int lstat(const char *path,struct stat *struct_stat);还有一个fstat函数。两个函数的第一个参数都是文件的路径,第二个参数是struct stat的指针。返回值为0,表示成功执行。*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1