在“ /getc.c” eclipse c ubuntu中找不到源文件

时间:2019-03-10 19:27:19

标签: c linux ubuntu gdb fgetc

刚刚在我的Linux上安装了eclipse并尝试使用文件。 我想使用fgetc函数,但似乎无法正常工作.. 在调试时:即使我使用Im来克服它的迷恋,并在运行时只是不做任何事情。 与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.

有什么想法吗?

thnk高级

这是我的代码:

#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);
}

1 个答案:

答案 0 :(得分:2)

错误消息来自调试器。它表明,为您的系统构建glibc的任何人都没有将源文件添加到调试信息中。结果,单步执行诸如fgetc之类的系统库功能非常令人困惑。但这与您的实际问题无关。

您不能将open之类的文件描述符功能与fgetc之类的文件流功能混合使用。编译器将显示打印类型不匹配警告;您真的不应该忽略这些。

类似这样的方法应该可以修复类型错误:

  File *fp = fopen("out.txt", "r");
  if (fp == NULL) {
    perror("fopen");
    return 1;
  }
  ch = fgetc(fp);

如果要继续使用无缓冲的I / O和open,则必须使用read函数而不是fgetc来读取字节。