gpt4 book ai didi

c - findnext() 函数调用在第二次调用时失败。程序崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:07 25 4
gpt4 key购买 nike

_findnext() 函数在第二次调用时不工作。这是代码。

int main() {
struct _finddata_t ffblk;
intptr_t done;

chdir("tmp");
printf("Directory changed to dir successfully\n");

done=_findfirst("*.txt",&ffblk);
printf("Call to findfirst successful\n");
printf("%s\n",ffblk.name);
do{
done=_findnext(done,&ffblk);
printf("%s\n",ffblk.name);
} while(!done);
printf("Exited the main loop\n");
getch();
}

程序在获取并打印文件夹 tmp 中前两个文件的名称后崩溃。打印的第一个文件名来自 findfirst() 函数。下一个文件名由 findnext() 打印。我已经通过调试检查过了。

现在,当在循环中第二次调用 findnext() 时,程序崩溃了。我正在使用 gcc 并尝试了大部分具有返回值的东西,但没有成功。有什么想法吗?

最佳答案

你的问题是你不能将 _findnext 的值赋给你的句柄,你需要两个变量:

intptr_t handle = 0;
int done = 0;

handle = _findfirst("*.txt",&ffblk);
while(handle && done != -1)
{
printf("%s\n",ffblk.name);
done = _findnext(handle,&ffblk);
}

关于c - findnext() 函数调用在第二次调用时失败。程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11692739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com