C -FILE I / O分段故障核心被丢弃了?

时间:2016-11-19 13:40:27

标签: c linux

首先,请解释一下什么是分段错误(核心转储)。我正在Linux中创建一个程序,它将在系统目录中创建一个文件。我猜linux是造成这个问题的原因。这是代码。代码很简单。不介意它,但不知道如何创建简单的文件我不能创建复杂的程序。

#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()

2 个答案:

答案 0 :(得分:1)

首先,当您没有为某些事物分配空间时(至少在我的情况下),并且您正在尝试使用具有空值的指针,因此在Linux上会出现分段错误,核心转储错误。在这种情况下,我认为这是因为你的fopen返回null。 其次,r +首先用于读取,而不是用于写入。因此,如果您尚未创建该文件,则无需阅读任何内容。使用w或w +,这样它将首先创建您的文件。 最后但并非最不重要的是,尽量不要在文件名中使用“/”。

答案 1 :(得分:0)

fp = fopen("/samrat.txt", "r+");替换为fp = fopen("samrat.txt", "w+");

查看此链接以获取更多文件opening modes in c