ls(1)命令的实现
2015-09-27 17:06
477 查看
cpp
ubuntu server 14.04 测试通过#include <stdio.h> #include <dirent.h> #include <stdlib.h> int main(int argc, char *argv[]){ DIR *dp; struct dirent *dirp; if(argc != 2){ printf("usage: ls directory_name\n"); exit(1); } if((dp = opendir(argv[1])) == NULL){ printf("can't open %s\n", argv[1]); exit(1); } while((dirp = readdir(dp)) != NULL){ printf("%s\n", dirp->d_name); } closedir(dp); exit(0); }
golang
package main import ( "fmt" "os" ) func main() { var ( directory_name string count int err error ) if len(os.Args) == 1 { if directory_name, err = os.Getwd(); err != nil { fmt.Println(err) os.Exit(1) } } else { directory_name = os.Args[1] } f, err := os.Open(directory_name) if err != nil { fmt.Println(err) os.Exit(1) } list, err := f.Readdir(-1) f.Close() if err != nil { fmt.Println(err) os.Exit(1) } for _, info := range list { fmt.Println(info.Name()) } count = len(list) fmt.Println("总数:", count) return }
相关文章推荐
- Linux 学习路线指南
- APUE 配置(Fedora)
- apue第16章习题16.3:支持多个端点的服务
- unix环境高级编程编译方法 -apue最简单编译方法(第二版)
- lseek的一些小细节
- 编译第一个文件
- APUE Cpt 1
- README for making apue.2e for Fedora 17&18
- [APUE] 再读之信号
- [APUE] 再读之进程关系
- [APUE]再读之进程间通信
- 《APUE》第三章笔记(1)
- 《APUE》第三章笔记(2)
- 《APUE》第三章笔记(3)
- 《APUE》第三章笔记(4)及习题3-2
- 《APUE》第四章笔记(2)
- 《APUE》第四章笔记(3)
- APUE第三章3.2习题分析
- APUE学习笔记:APUE运行环境
- 写一个与dup2()功能相同的函数