linux用C语言执行命令并获取命令的返回值
时间: 2023-09-06 19:13:52 浏览: 69
在Linux系统中,可以使用C语言执行命令并获取命令的返回值。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
char command[50];
int result;
// 执行命令
sprintf(command, "ls /tmp");
result = system(command);
// 获取命令返回值
if (result < 0) {
printf("Failed to execute command\n");
return -1;
} else {
printf("Command returned %d\n", result);
return 0;
}
}
```
上述代码中,使用system()函数执行了一个命令"ls /tmp",并将结果存储在result变量中。system()函数返回值为命令的退出状态码,如果命令执行成功,返回值为0,否则为其他值。可以根据返回值来判断命令是否执行成功。
相关问题
linux用C语言执行命令并获取命令的返回值,命令返回很多东西
可以使用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()`函数关闭了管道。
linux 里c语言system
在 Linux 中,C 语言中的 `system` 函数用于执行一个系统命令。它的原型如下:
```c
int system(const char *command);
```
`system` 函数接收一个字符串参数,该字符串参数是要执行的系统命令,例如:
```c
system("ls -l");
```
上述代码将执行 `ls -l` 命令并输出其结果。
`system` 函数会阻塞当前进程,直到执行的命令完成。如果执行成功,`system` 函数返回 0,否则返回一个非零值。注意,这个返回值并不是执行命令本身的返回值,而是表示命令是否执行成功的状态码。如果需要获取命令的实际返回值,需要使用 `popen` 或 `exec` 等函数。