求Linux C++高手解答
2011-08-04 19:57 Aga.J 阅读(655) 评论(0) 编辑 收藏 举报问题如下,今天整天就耗在和它有关的地方上了……
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<unistd.h>
#include<fcntl.h>
void main()
{
char *buf="hello\n";
int len=strlen(buf);
close(1);
FILE* fd0=freopen("/dev/tty","w",stdout);
write(1,buf,len+1);
//如果close(1),然后没有调用freopen,然后直接write就会发生bad file descriptor的错误,结论正确!
//如果没有调用close(1),也没有调用freopen,然后直接write,则会成功输出到shell,结论正确!
//如果调用close(1)后再调用reopen,然后调用write,则会发生bad file descripto的错误,但是shell会显示所写的内容,神马意思??? 我要问的就是这里
FILE *fd=fopen("tmp.log","r+");
if(fd!=NULL)
fputs(strerror(errno),fd);
fclose(fd);
}
谢谢!
被移出首页,这个问题看来只能自己解了
作者:Aga.J
出处:http://www.cnblogs.com/aga-j
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
个人学习笔记仅供本人记录知识所用,不属发表性文章。