fopen在特殊情况下失败(windows + eclipse cdt + mingw)

时间:2017-01-06 01:31:05

标签: c eclipse gdb mingw mingw32

我想在Windows上使用MingW + Eclipse开发一个简单的Windows应用程序。

但是我不能用GDB调试程序,因为如果我在调试模式下运行程序,fopen总是失败(返回NULL指针)。

FILE* fp = fopen(filename, "r");

有谁知道如何避免这种现象?

案例1)正常运行程序(不是调试模式)

工作正常。

案例2)使用gdb运行程序(不使用eclipse CDT)

工作正常。

案例3)使用eclipse CDT和gdb运行程序

不起作用。 (fopen总是返回NULL指针)

gcc 4.6.2 gdb 7.6.1 日食4.6.1(霓虹灯) Windows7企业版(SP1)64位版

感谢您提出许多有用的建议! 起初我不知道perror功能, 这是我的测试代码。

    FILE* fp = fopen(filename, "r");
    char lineBuffer[256];
    if (fp) {
        while (fgets(lineBuffer, 256, fp) != NULL) {
            doSomething(lineBuffer);
        }
        fclose(fp);
    }
    else {
        perror("error ");
    }

filename由argv / argc传递。

首先我使用了相对路径,而perror结果如下(someone.txt)

error : No such file or directory

Secondery我使用绝对路径并且perror结果如下。(D:\ someone.txt)

error : Invalid argument

0 个答案:

没有答案