读书人

C语言中Linux下打开文件函数 freopen有

发布时间: 2012-05-20 16:03:12 作者: rapoo

C语言中Linux下打开文件函数 freopen问题
#include <stdio.h>
#include <errno.h>
#include <string.h>

main()
{
FILE *fp;
char path[]="/root/txt1.txt";
extern int errno;

fp=freopen("/root/txt1.txt","r",fp);
if(fp==NULL)
{
printf("cant't open file %s.\n",path);
printf("errno:%d\n",errno);
printf("ERR :%s\n",strerror(errno));
return;
}
else
{
printf("%s was opened.\n",path);
}
}

运行环境为ubuntu11.04 。 出现段错误。不知道问题在哪里?

[解决办法]
fp没打开文件,怎么reopen啊?

freopen的原理就是将一个FILE*里的fd使用dup2重定向到一个新的文件,在这里叫做:"/root/txt1.txt"。
你fp都没打开文件,重定向谁?
[解决办法]
...是打开一个fp,让它成为freopen的第二个参数。

读书人网 >C语言

热点推荐