我现在得到的奇怪错误,
在我的#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
所以我知道,为什么包含不起作用?
答案 0 :(得分:4)
当编译器试图告诉您时,您声明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;
或重命名变量。
答案 1 :(得分:0)
我认为你要写的是FILE *fout;
而不是FILE *fopen;