参考百度百科:
popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数关闭,而不是 fclose() 函数。pclose() 函数关闭标准 I/O 流,等待命令执行结束,然后返回 shell 的终止状态。如果 shell 不能被执行,则 pclose() 返回的终止状态与 shell 已执行 exit 一样。
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int system_io(char* s_strings)
{
int rc = 0;
FILE *fp;
fp = popen(s_strings, "r");
if(NULL == fp)
{
perror("popen error! \n");
exit(1);
}
usleep(1000);
rc = pclose(fp);
if(-1 == rc)
{
perror("pclose error! \n");
perror("pclose error! \n");
return 1;
}
else {
printf("%s ok \r\n",s_strings);
}
usleep(1000);
return 0;
}
int main()
{
system_io("mkdir system_test");//创建一个文件夹
return 0;
}
运行结果: