我不断地得到一个分段错误,并把它缩小到一行(这是下面代码中的“fseek”行——我把下面的所有内容都注释掉了,仍然得到了错误,但当我注释掉那一行时却没有得到它。)这是我的代码:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    FILE *f_in, *f_out;
    f_in = fopen(argv[1], "rb");
    fseek(f_in, 0, SEEK_SET);
    return 0
}

所有其他代码看起来都很好,所以我没有包括它。我尝试在f SEEK行之前添加一行:“fseek(f_-in,0,SEEK_-END);”。我也尝试过将0改为其他数字,并在fseek之前执行fread,但始终会出现分段错误。有人知道那条线(或者另一条线,如果不是那条线的话)有什么问题吗?

最佳答案

检查对fopen()的调用是否失败:

f_in = fopen(argv[1], "rb");
if ( NULL == f_in )
{
    // handle error
    .
    .
    .

关于c - C代码中fseek行中的段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29836185/

10-11 21:59