gpt4 book ai didi

c - 创建目录时出现段错误(核心转储)

转载 作者:行者123 更新时间:2023-11-30 14:23:45 26 4
gpt4 key购买 nike

我有这个简单的代码:

int read_data(int GrNr) {
//many lines of code
fprintf(fdatagroup, "%i", Ngroups);
return 0;
}

int main(int argc, char **argv) {
for(NUM=NUM_MIN;NUM<=NUM_MAX;NUM++) {
sprintf(groupfile,"../output/profiles/properties_%03d.txt", NUM);
fdatagroup = fopen(groupfile,"w");

GROUP=0;
accept=0;

do {
check=read_data(GROUP);
printf("check = %d \n", check);

accept++;
FOF_GROUP++;
}
while (accept<=n_of_halos);

fclose(fdatagroup);
}
printf("Everything done.\n");
return 0;
}

如果我没有在输出目录中手动创建名为“profiles”的文件夹,我会得到错误:段错误(核心转储)

如果该文件夹存在,则一切正常。我该怎么做才能从代码内部创建目录?我在linux中使用gcc。谢谢。

最佳答案

正如一些背景,当 fopen 尝试打开一个不存在的文件时,它不会失败,而是简单地返回 NULL。当您尝试向空指针读取/写入数据时,就会发生段错误。

目录的创建和销毁位于 sys/dir.h 的范围内

#include <sys/dir.h>
...
mkdir(path_str);

关于c - 创建目录时出现段错误(核心转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574560/

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