首先,请解释一下什么是分段错误(核心转储)。我正在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()
。
答案 0 :(得分:1)
首先,当您没有为某些事物分配空间时(至少在我的情况下),并且您正在尝试使用具有空值的指针,因此在Linux上会出现分段错误,核心转储错误。在这种情况下,我认为这是因为你的fopen返回null。 其次,r +首先用于读取,而不是用于写入。因此,如果您尚未创建该文件,则无需阅读任何内容。使用w或w +,这样它将首先创建您的文件。 最后但并非最不重要的是,尽量不要在文件名中使用“/”。
答案 1 :(得分:0)
将fp = fopen("/samrat.txt", "r+");
替换为fp = fopen("samrat.txt", "w+");
。
查看此链接以获取更多文件opening modes in c