int my_system(const char * cmd)
{
FILE * fp;
int res; char buf[1024];
if (cmd == NULL)
{
printf("my_system cmd is NULL!\n");
return -1;
}
if ((fp = popen(cmd, "r") ) == NULL)
{
perror("popen");
printf("popen error: %s/n", strerror(errno)); return -1;
}
else
{
while(fgets(buf, sizeof(buf), fp))
{
printf("%s", buf);
}
if ( (res = pclose(fp)) == -1)
{
printf("close popen file pointer fp error!\n"); return res;
}
else if (res == 0)
{
return res;
}
else
{
printf("popen res is :%d\n", res); return res;
}
}
} 用popen实现my_system,替代system
最新推荐文章于 2022-03-19 20:32:04 发布
本文介绍了一个名为my_system的函数实现细节。该函数接受一个字符串参数cmd,并通过调用popen和pclose函数来执行外部命令。文章展示了如何处理命令执行过程中可能出现的各种错误情况。
2万+

被折叠的 条评论
为什么被折叠?



