File *pp = popen("which abc", "r")在linux 下使用问题
如上,我调用:
popen("which abc", "r") 在 linux 下会直接输出到终端上,就是说,我还没有调用 fgets() ,如果 abc 命令不存在,则已经自动输出了。但是,在 unix 下就不会,可以在调用 fgets() 的时候得到错误,比如, which: no abc 这样的形式
想请教各位,是什么原因,应该如何解决?
我猜是这样的原因:
1>这个popen 的定义 linux 和 unix 不同,确实也不同,linux 下如:
extern FILE *popen (__const char *__command, __const char *__modes) __THROW;
unix 下没有 __THROW;
但是,此时我做了异常捕捉,没用, 如下:
try
{
pp = popen("which aCC", "r") ;
}
catch(...)
{};
2>我的终端设置有问题
这个