在QNX中,使用system执行一条命令,如何获取该命令的输出结果
时间: 2023-11-27 17:54:26 浏览: 94
在QNX中,可以使用popen函数执行命令并获取其输出结果。
popen函数的原型为:
```c
FILE *popen(const char *command, const char *type);
```
其中,第一个参数是要执行的命令,第二个参数是打开流的模式。如果type参数为"r",则表示打开一个只读流,用于读取命令的输出;如果type参数为"w",则表示打开一个只写流,用于向命令的输入写入数据。
popen函数会返回一个指向FILE结构体的指针,用于后续读取命令的输出。可以使用fgets函数从返回的FILE指针中读取命令的输出,直到读取到EOF为止。
示例代码如下:
```c
#include <stdio.h>
int main()
{
FILE *fp;
char buffer[1024];
// 执行命令并获取输出结果
fp = popen("ls -l", "r");
if (fp == NULL) {
printf("Failed to execute command\n");
return 1;
}
// 从输出结果中读取数据
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
// 关闭流
pclose(fp);
return 0;
}
```
以上代码会执行ls -l命令并将输出结果打印到控制台。