错误:被叫对象'fopen'不是函数或函数指针

时间:2016-09-04 05:40:03

标签: c header stdio

我现在得到的奇怪错误,

在我的#include部分,我有#include <stdio.h>根据fopen的手册页是必需的

"SYNOPSIS
       #include <stdio.h>"

我也在使用同一代码中的stdio.h中的fdopen并且它正在工作

fp = fdopen(fdes, "r+");

错误指向以下代码

fout = fopen(fname, "wb");

完整错误

getFileCli.c:94:12: error: called object ‘fopen’ is not a function or function pointer
     fout = fopen(fname, "wb");
            ^
getFileCli.c:22:8: note: declared here
  FILE *fopen;

现在,如果我使用主要部分中FILE *fopen(const char *path, const char *mode);的fopen标头中的代码,它可以正常工作。

我在我的系统上运行了一个定位

locate stdio.h
/usr/include/stdio.h
/usr/include/c++/4.9/tr1/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/lib/x86_64-linux-gnu/perl/5.20.2/CORE/nostdio.h

所以我知道,为什么包含不起作用?

2 个答案:

答案 0 :(得分:4)

当编译器试图告诉您时,您声明fopenFILE*类型的变量:

getFileCli.c:22:8: note: declared here
  FILE *fopen;

由于你的变量既不是函数也不是函数指针,你不能调用它:

getFileCli.c:94:12: error: called object ‘fopen’ is not a function or function pointer
     fout = fopen(fname, "wb");
            ^

要解决此问题,请删除第22行中的声明FILE *fopen;或重命名变量。

答案 1 :(得分:0)

我认为你要写的是FILE *fout;而不是FILE *fopen;