gpt4 book ai didi

c - 打开文件时出现段错误

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

我现在真的很困惑。我想创建一个文件并将之前创建的字符串写入其中。但是当执行以下代码时,会发生段错误并且程序终止。

FILE* output;
output = fopen("test.txt", "w");
fprintf(output, line);
fclose(output);

该行声明如下。

char* line = NULL;
line = malloc(1048576 + 1);

首先我认为错误是由于 malloc 而出现的,但这段代码也不起作用:

FILE* output;
output = fopen("test.txt", "w");
fprintf(output, "LBASDHASD");
fclose(output);

我做错了什么?在该行之前运行的代码中,我也使用了文件指针,但文件已经关闭。

最佳答案

您的代码很糟糕,因为您没有检查错误。 output 可能是 NULL 指针(很可能是一个):

#include <errno.h>
#include <string.h>

FILE* output;
output = fopen("test.txt", "w");
if(!output){
//handle the error
printf("something went wrong: %s", strerror(errno));
exit(1);
}
fprintf(output, "LBASDHASD");
fclose(output);

您确定您有权在 CWD 中创建该文件吗?

fopen()errno 设置为失败时的错误代码。像往常一样,strerror(errno) 将为您提供此错误代码的描述。

关于c - 打开文件时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536902/

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