を動作しません-R私は、コマンド./myls -R何も表示され、すべての空白でプログラムを実行するとCで実装:(ヘルプが必要私のls -Rは私のLSの問題を持つ
int print_Recursive(char *dirname)
{
char fbuf [256];
DIR *dir;
struct dirent *dirp;
struct stat sbuf;
printf("\n");
dir = opendir(dirname);
while ((dirp = readdir(dir)))
{
if(strcmp(dirp->d_name, ".") != 0 &&
strcmp(dirp->d_name, "..") != 0)
{
sprintf(fbuf, "%s/%s", dirname, dirp->d_name);
}
}
closedir(dir);
return 0;
}
int print_file(char *file, char *dir, struct stat buf, int showinode, int showlong, int showRec)
{
if (showinode)
printf("%lld ", buf.st_ino);
if (showlong)
print_long(file, dir, buf);
if (showRec)
print_Recursive(dir);
else
printf("%s\n", file);
return 0;
}
。
は私が間違っているのかを把握することはできません:(
あなたの ' print_Recursive'は繰り返されません(呼び出し自体)。 – lurker
私はCで新しく、あなたは私を助けてくれますか? 'print_Recursive(dir);'私はここでそれを呼びます、それはありませんか? –
再帰的なことは、それ自体も呼び出すことを意味します。したがって 'print_Recursive'の中から' print_Recursive'を呼び出すことになります。具体的には、 'print_Recursive'内の' while'ループでは、ファイルがディレクトリであるかどうかをチェックし、そうであればそのディレクトリで 'print_Recursive'を呼び出します。さらに、@ TimLeathartはなぜ出力がないのかを指摘します。 – lurker