今回もなるべくシステムコールを使うこと前提で書いています
とくにオプションとかは付けずに、ディレクトリ内のファイル名一覧を表示するだけの簡単なものです
解答例:myls.c(実行ファイル名:myls)
/* 簡易lsコマンド */
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
DIR *dir;
struct dirent *dp;
char path[64];
if(argc <= 1) {
strcpy(path, ".");
}else{
strcpy(path,argv[1]);
}
dir = opendir(path);
if(dir == NULL) {
perror("opendir");
exit(-1);
}
for(dp = readdir(dir); dp != NULL; dp = readdir(dir)) {
printf("%s\n",dp -> d_name);
}
closedir(dir);
return (0);
}
0 件のコメント:
コメントを投稿