C -FILE I/O分段故障核心转储?
问题描述:
首先,请说明什么是分段错误(核心转储)。我正在Linux中创建一个程序,它将在系统目录中创建一个文件。我猜linux是造成这个问题。这里是代码。代码非常简单。不介意,但不知道如何创建简单的文件,我不能创建复杂的程序。C -FILE I/O分段故障核心转储?
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
fp = fopen("/samrat.txt", "r+");
fprintf(fp, "this is a demo text");
fclose(fp);
}
谢谢你的时间和考虑。不要忘记解释什么是分段错误,也是我的这个程序的解决方案。我也尝试过int main()
。
答
首先,当Linux没有为某些东西(至少在我的情况下)分配空间,并且您尝试使用具有空值的指针时,Linux上出现了段错误,核心转储错误。在这种情况下,我认为这是因为你的fopen返回null。其次,r +首先用于读取,而不是写入。所以如果你还没有创建文件,你没有什么可读的。使用w或w +,这样它将首先创建你的文件。 最后但并非最不重要的是,尽量不要在文件名中使用'/'。
检查fopen的返回值。 – BLUEPIXY
@BLUEPIXY我很抱歉,它不是helo –
在根目录下找到一个'.txt'文件是很不寻常的。 – EOF