error: called object ‘fopen’ is not a function or function pointer

error: called object ‘fopen’ is not a function or function pointer

我现在遇到了非常奇怪的错误,

在我的#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 header 中的代码,它就可以正常工作。

我 运行 在我的系统上定位

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

我知道了,为什么 include 不起作用?

我觉得你想写的是FILE *fout;而不是FILE *fopen;

正如您的编译器试图告诉您的那样,您将 fopen 声明为 FILE* 类型的变量:

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; 或重命名变量。