如何用C实现linux下的ls命令

欢迎进入C/C++编程社区论坛,与200万技术人员互动交流 >>进入

解释: 头文件和opendir一样 函数原型:struct dirent * readdir(DIR * dir); 函数说明 readdir()返回参数dir目录流的下个目录进入点。 Struct dirent这一段是结构说明,基中解释分别下: d_ino 此目录进入点的inode d_off 目录文件开头至此目录进入点的位移 d_reclen _name的长度,不包含NULL字符 d_type d_name 所指的文件类型 d_name 文件名

(三)学完成代码

在当前目录创建新文件ls1.c;前输入以下内容

代码: #include #include #include void do_ls(char []);main(int ac, char *av[]){ if ( ac == 1 ) do_ls( ‘.’ ); else while ( –ac ){ printf(‘%s:\n’, *++av ); do_ls( *av ); }}void do_ls( char dirname[] )/* * list files in directory called dirname */{ DIR *dir_ptr; /* the directory */ struct dirent *direntp; /* each entry */ if ( ( dir_ptr = opendir( dirname ) ) == NULL ) fprintf(stderr,’ls1: cannot open %s\n’, dirname); else { while ( ( direntp = readdir( dir_ptr ) ) != NULL ) printf(‘%s\n’, direntp->d_name ); closedir(dir_ptr); }} 保存并退出;

(四)怎么编译和运行

编写好代码好就要编译了; linux的常用编译工具就是gcc了 #gcc ?o ls1 ls1.c 如图2-3查看当前的文件会发现多了ls1这个文件。这就是编译出来的可执行文件 然后运行此程序: #./ls1 结果如图4-3

图4-3.jpg

怎么样,是不是觉得非常简单啊!当然了这一过程中最主要的是希望你能从中学习到东西,比如对文件系统的原理有一定的认识;知道用man获取帮助文档等等。

[1][2][3]

无论如何,没有人有办法把自己抑或他人的刺拔掉。那是一碰便痛的软肋,

如何用C实现linux下的ls命令

相关文章:

你感兴趣的文章:

标签云: