gpt4 book ai didi

无法打开要追加的特定文件名

转载 作者:行者123 更新时间:2023-11-30 18:00:19 24 4
gpt4 key购买 nike

我有一些代码可以迭代地将数据附加到文件中,看起来类似于:

for(int i=0; i<number; i++){
FILE *log_file;
char name[50];
sprintf(name,"something_%d.log",i);
log_file=fopen(name,"a");
if(log_file == NULL){
printf("ERROR cannot open file %s",name);
abort();
}
/* Write stuff to file */
fclose(log_file);
}

看起来很简单吧?如果该文件存在并且我有权写入该文件,则它会正常进行;如果该文件不存在并且我有权在该目录中写入文件,它将正常创建该文件。错误的!不知何故,当我遇到特定文件名(MINI_3f_1_0.log)时,程序无法创建/打开该文件并产生log_file = NULL。显然这不是我的全部代码,最糟糕的是我无法用所示的简单程序重现这个问题。

我已经花了几个小时试图找出正在发生的事情,到目前为止我对以下内容有 100% 的把握:

  1. 文件在同一范围内声明、打开和关闭
  2. 同名文件未在任何其他函数/整个程序中打开
  3. 我有该目录的读/写权限
  4. 尝试不按迭代顺序打开文件会在同一例程中完成时产生相同的错误

你们能给我的任何指导将不胜感激。如果您在经验中遇到过类似的情况,您是如何解决的?

最佳答案

正如 Mat 在评论中所建议的,在不同的目录中运行代码不会产生错误。文件系统可能存在问题,需要由系统管理员进行调查。

关于无法打开要追加的特定文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10640245/

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