私は現在、最初は引数を取るように設計されたコード例を使用しており、現在のディレクトリでその引数を検索します。「」を置き換えて、別のディレクトリ(正確には/ dev / shm)を検索するようにしました。 「」「/dev/ shm」を使用しますが、何かを検索してもコードは何も表示されません*(ワイルドカードに注意してください)。ワイルドカード検索は現在のディレクトリで正常に機能するので、問題はワイルドカードではないと思います。誰かが私を助けてくれたら、本当にありがたいですが、ありがとう!
#include <dirent.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
static void lookup(const char *arg)
{
DIR *dirp;
struct dirent *dp;
if ((dirp = opendir(".")) == NULL) {
perror("couldn't open '.'");
return;
}
do {
errno = 0;
if ((dp = readdir(dirp)) != NULL) {
if (strcmp(dp->d_name, arg) != 0)
continue;
(void) printf("found %s\n", arg);
(void) closedir(dirp);
return;
}
} while (dp != NULL);
if (errno != 0)
perror("error reading directory");
else
(void) printf("failed to find %s\n", arg);
(void) closedir(dirp);
return;
}
int main(int argc, char *argv[])
{
int i;
for (i = 1; i < argc; i++)
lookup(argv[i]);
return (0);
}