Ber*_*son 7 c io segmentation-fault
我正在开发一个简单的C程序来打开文件并从中读取一些数据.没有编译错误,但是当我在某个文件上运行程序时,出现"Segmentation Fault:code dumped"错误.我在代码的最顶部插入了一个print语句,但它没有运行.当你还没有做任何事情时,是否有可能出现分段错误?
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%s", "Made it to here!");
FILE *fp;
char input[100];
fp = fopen(argv[1], "r+b");
fgets(input, sizeof(input), fp);
printf("%s", input);
fclose(fp);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
当我在它自己的文本版本上运行它时它会工作,它打印出第一行.但是,当我在另一个文件texttest.vmf上运行它时,我得到分段错误,第一个打印不执行.VMF是Valve Map Files,但它们是标准文本格式.这个文件大约3.7 KB.有任何想法吗?
das*_*ght 19
您的代码之前没有必要失败printf:调用printf可能已成功,但由于缓冲区的输出已被缓冲,因此在将输出写入屏幕之前程序可能已崩溃.
添加\n到输出字符串会导致控制台缓冲区刷新.如果您希望通过printfs 进行调试,则应始终添加\n到格式字符串的末尾.
| 归档时间: |
|
| 查看次数: |
7513 次 |
| 最近记录: |