unix 高級編程學習第一章1——ls實現

書中一直使用apue.h文件,現在不要apue.h頭文件用簡單的方法實現。

1.ls命令,列出目錄中所有文件的名字,代碼如下:

#include <stdio.h>
#include <dirent.h>

int main(int argc, char *argv[])
{
	DIR *dp;
	struct dirent *dirp;

	if(argc != 2)
	{
		printf("usage: list directory name\n");
	}

	if((dp = opendir(argv[1])) == NULL)
	{
		printf("can't open %s\n", argv[1]);
	}

	while((dirp = readdir(dp)) != NULL)
	{
		printf("%s\n", dirp->d_name);
	}

	closedir(dp);

	return 0;
}



2. 編譯

gcc list.c -o list

3. 運行及結果

當前目錄下文件名: ./list .

父目錄下的文件名: ./list ..

程序後面的路徑可以是任意絕對路徑和相對路徑,就不一一演示了。

4. 最後

可以看到實現的ls功能和系統的ls功能還是有差別的,比如結果文件名不是按照字母順序排列的。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章