免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4570 | 回复: 4
打印 上一主题 下一主题

使用fopen()出错,求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-03 16:05 |只看该作者 |倒序浏览
一个简单的C程序test.c:
#include <stdio.h>
int main ()
{
int i;
FILE *fp;
        fp = fopen("./a.txt","a");
        fprintf(fp,"hello");
        fflush(fp);
        fclose(fp);
}

用命令 cc -o test test.c编译时报错
/tmp/ccwgM9Tm.o(.text+0x1f): In function `main':
: undefined reference to `__fopen'
collect2: ld returned 1 exit status

头文件stdio.h是/usr/lib/bcc/include/下拷到/usr/include下的
(拷贝的原因是在系统上装了oracle9.2.0.4客户端后编译pc程序时报stdio.h内很多include文件没有,于是按照BBS上一建议拷贝,拷后当时编译不在出错)

用grep fopen stdio.h查看有
* in stdio_init and fopen */
extern FILE *__fopen __P((char*, int, FILE*, char*));
#define fopen(__file, __mode)         __fopen((__file), -1, (FILE*)0, (__mode))
#define freopen(__file, __mode, __fp) __fopen((__file), -1, (__fp), (__mode))
#define fdopen(__file, __mode)  __fopen((char*)0, (__file), (FILE*)0, (__mode))

现求‘fopen’问题的解决方法。

另哪位大大能否提供一下redhat linux 下proc 和cc 的编译环境配置,不胜感激!

论坛徽章:
0
2 [报告]
发表于 2006-03-03 16:59 |只看该作者
猜测可能用cc编译的时候跟链接库版本不一致造成
你用gcc试试看

论坛徽章:
0
3 [报告]
发表于 2006-03-03 17:56 |只看该作者
应该是 CC 链接的库路径错误,你可以加上 -I 库的路径试一下

论坛徽章:
0
4 [报告]
发表于 2006-03-20 16:20 |只看该作者

已解决,还是跟个完结篇

当时由于时间有限,没有细细去分析
直接从一已配置好的能顺利编译的主机上将/usr/include/stdio.h拷贝过来就顺利通过了
比较了一下,原来的stdio.h大小是3884,现在的stdio.h大小是22580

论坛徽章:
0
5 [报告]
发表于 2006-03-20 16:35 |只看该作者
fopen返回值没判断,LZ知道文件打开肯定成功吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP