我正在程序中用C语言编写一个简单的LS命令,当我第一次打开目录并读取它时,它运行正常,但是当我第二次调用该函数时,opendir()
似乎睡觉或无限循环:
int server_list(t_server_data *sd)
{
DIR *dir;
struct dirent *entry;
printf("In list()\n");
printf("Open directory\n");
if ((dir = opendir("./")) == NULL)
perror("Error: opendir()");
printf("Directory opened\n");
while ((entry = readdir(dir)) != NULL)
{
printf("Reading dir...\n");
/* code */
}
closedir(dir);
return (0);
}
然后这是我得到的输出:
In list()
Open directory
程序什么都不做(等待)。