当前位置: 技术问答>linux和unix
关于重定向的问题!
来源: 互联网 发布时间:2015-03-27
本文导语: 关于输出重定向的问题! 对于一般的linux命令,可以用如下的代码实现: #include #include int main(void) { FILE* pipein_fp, *pipeout_fp; char readbuf[81]; readbuf[80] = 0; //if ((pipein_fp = popen("javac test.java", "r")) == NULL) if ((p...
关于输出重定向的问题!
对于一般的linux命令,可以用如下的代码实现:
#include
#include
int main(void)
{
FILE* pipein_fp, *pipeout_fp;
char readbuf[81];
readbuf[80] = 0;
//if ((pipein_fp = popen("javac test.java", "r")) == NULL)
if ((pipein_fp = popen("ls", "r")) == NULL)
{
perror("popen");
exit(1);
}
while(fgets(readbuf, 80, pipein_fp))
printf("readbuf = %s", readbuf);
pclose(pipein_fp);
}
但是当把应用程序改成javac以后所有的输出都不能截获!
怀疑可能是javac不是输出到stdout!
不知道有谁有方法能把所有的输出都截获呢?
请指教!
谢谢!
对于一般的linux命令,可以用如下的代码实现:
#include
#include
int main(void)
{
FILE* pipein_fp, *pipeout_fp;
char readbuf[81];
readbuf[80] = 0;
//if ((pipein_fp = popen("javac test.java", "r")) == NULL)
if ((pipein_fp = popen("ls", "r")) == NULL)
{
perror("popen");
exit(1);
}
while(fgets(readbuf, 80, pipein_fp))
printf("readbuf = %s", readbuf);
pclose(pipein_fp);
}
但是当把应用程序改成javac以后所有的输出都不能截获!
怀疑可能是javac不是输出到stdout!
不知道有谁有方法能把所有的输出都截获呢?
请指教!
谢谢!
|
改成这样试一试:
if ((pipein_fp = popen("javac test.java 2>&1", "r")) == NULL)
if ((pipein_fp = popen("javac test.java 2>&1", "r")) == NULL)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。