linux用C语言执行命令并获取命令的返回值,命令返回很多东西
时间: 2023-07-10 10:17:50 浏览: 97
可以使用C语言中的`system()`函数来执行命令,并且可以使用`popen()`函数来获取命令的输出结果。`system()`函数返回命令的退出状态码,可以使用`WEXITSTATUS()`宏来获取真实的退出状态码。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
int main()
{
char command[100] = "ls -l";
char buf[1024] = {0};
int status;
// 执行命令
status = system(command);
// 获取真实的退出状态码
if (WIFEXITED(status))
{
printf("command exited with status %d\n", WEXITSTATUS(status));
}
// 获取命令的输出结果
FILE *fp = popen(command, "r");
if (fp)
{
while (fgets(buf, sizeof(buf), fp) != NULL)
{
printf("%s", buf);
}
pclose(fp);
}
return 0;
}
```
上述示例代码中,使用`system()`函数执行了`ls -l`命令,并且使用`WEXITSTATUS()`宏获取了真实的退出状态码。使用`popen()`函数打开了一个管道,并且读取了命令的输出结果。最后,使用`pclose()`函数关闭了管道。
阅读全文