最近做实验时发现在Fedora下使用popen("help","r")能够成功执行获取得到help命令的执行结果,而在ubuntu下面却报错:sh: 1: help: not found。不知道具体原因是什么,求大神解答一下。
代码如下:
void func()
{
FILE * fp = NULL;
char chBuffer[1024]={0};
char chCmd[100] = "help";
fp = popen(chCmd,"r");
if (fp)
{
memset(chBuffer,0,sizeof(chBuffer));
while( NULL != fgets(chBuffer,sizeof(chBuffer),fp))
{
printf("%s",chBuffer);
}
pclose(fp);
}
}
另外还有一个问题是,help不是shell的内部命令吗?那么为什么popen能够执行shell的内部命令,难道是popen先运行了shell程序?如果是的话,那么ubuntu下面执行结果应该跟Fedora下一样才对啊?
<p>你在终端执行下help命令不就知道了...</p>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。