Linux下ls命令实现
2015-10-20 10:16
435 查看
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <errno.h> #include <string.h> #define MAX 1024 void my_ls(char *root) { DIR * dir; struct dirent * ptr; int count; dir = opendir(root); /* 打开目录 */ if(dir == NULL){ perror("fail to open dir"); exit(1); } errno = 0; while((ptr = readdir(dir)) != NULL){ /* 顺序读取每一个目录项 */ /* 跳过".."和"."两个目录 */ if(strcmp(ptr->d_name,".") == 0 || strcmp(ptr->d_name,"..") == 0) continue; printf("%s\t", ptr->d_name); /* 打印每一个文件的文件名 */ count++; /* 换行计数 */ if(count %5 == 0) printf("\n"); } if(errno != 0){ /* 如果errno是0,则说明目录中目录项已经全部读完 */ perror("fail to read dir"); exit(1); } closedir(dir); /* 注意一定要关闭目录 */ } int main(int argc, char * argv[]) { if(argc != 2){ printf("wrong usage\n"); exit(1); } my_ls(argv[1]); return 0; }
相关文章推荐
- Linux IPC实践(1) --匿名PIPE
- 64位arm_Linux操作系统驱动兼容性问题
- linux下core文件设置, Core Dump
- Linux 反向删除文件(排除特定文件)
- Linux内核编译和安装
- linux远程传输文件scp命令
- 使用pyinstaller打包python源代码,成为linux/windows下可执行文件
- Linux下递归读取文件数量
- 15个Linux Yum命令实例--安装/卸载/更新
- CentOS 6.5使用:[3]使用xftp传递文件
- linux项目发布常见命令
- How to install g++ 4.7.2 & c++11 on CentOS 5.x
- 学习日志---linux块组深入,链接,压缩和打包
- linux 内核链表的应用
- Linux启动ssh服务
- linux,python 常用的处理log的命令
- 系统级性能分析工具 — Perf
- cent os linux开机启动到字符界面
- 内核调试工具 — kdump & crash
- 内核调试神器SystemTap — 更多功能与原理(三)