【发布时间】:2019-03-10 19:27:19
【问题描述】:
刚刚在我的 linux 上安装了 eclipse 并尝试使用文件。 我想使用 fgetc 功能,但似乎它不起作用.. 调试时:即使我使用跨过它的粉碎,而让它运行它只是不做任何事情。 它也发生在与 fscanf、fgets 等文件相关的每个函数中。
错误信息是:
Can't find a source file at "/build/glibc-OTsEL5/glibc-2.27/libio/getc.c"
Locate the file or edit the source lookup path to include its location.
有什么想法吗?
谢谢你的进步
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
func();
return 0;
}
void func(){
int ch;
int fd = open("out.txt", O_RDONLY);
if(fd < 0)
perror("fd");
ch = fgetc(fd);
printf("%d",ch);
}
【问题讨论】:
-
不要试图通过库函数进行跟踪。只需使用 trace-over 或者如果您错误地进入它们 finish 命令。无论您您的程序的实际问题是什么,它都在其他地方。
-
如果我理解正确,所以我真的没有跟踪,我用 step over 而不是 step into 来调试它
-
如果你正确地跨过它,你就不会看到这个。但即便如此,它也无关。专注于调试意外行为。
-
坦率地说,您的代码甚至不应该 compile 发出严重警告,因为您混合了文件描述符和 FILE 句柄,以及一些其他问题,例如缺少原型和缺少包含...
-
其实下次阅读编译器警告。如果您选择忽略它们,则表示您比编译器更了解情况。 有时这可能是真的,但在这种情况下,你显然不知道。