C语言中Linux下打开文件函数 freopen有关问题
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的第二个参数。
#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的第二个参数。