C语言用system()执行脚本:如何判断脚本执行成功
2023-12-13 11:11:34
一、写博原由
????????对system()函数的返回值仅判断 != 0 时为脚本执行失败,发现脚本有时没有执行,而程序却没报错,故出此博客。
????????仅有代码,详细可man system。
二、正确判断返回值代码示例
2.1 脚本示例
cdk.sh
#!/bin/sh
echo "hello world"
2.2 C语言执行脚本示例
写法1:对情况详细判断
#include <stdio.h>
#include <stdlib.h>
int main()
{
pid_t status;
status = system("./cdk.sh");
if (-1 == status)
{
printf("system error\n");
return -1;
}
else
{
//正确退出
if (WIFEXITED(status))
{
if (0 == WEXITSTATUS(status))//操作成功
{
printf(“run successfully.\n");
}
else
{
printf("run fail, exit code: [%d]\n", WEXITSTATUS(status));
return -1;
}
}
else
{
printf("exit status = [%d]\n", WEXITSTATUS(status));
return -1;
}
}
return 0;
}
?写法2:简易写法
#include <stdio.h>
#include <stdlib.h>
int main()
{
pid_t status;
status = system("./cdk.sh");
if (-1 == status)
{
printf("system error\n");
return -1;
}
//正确退出并操作成功
if (WIFEXITED(status)
&& 0 == WEXITSTATUS(status))
{
printf("run successfully.\n");
}
else
{
printf("fail, exit code: [%d]\n", WEXITSTATUS(status));
return -1;
}
return 0;
}
文章来源:https://blog.csdn.net/weixin_57535837/article/details/134903056
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!