linux popen
时间: 2023-10-13 18:19:30 浏览: 108
`popen` 是一个 C 语言中的函数,用于在 Linux 系统下执行一个 shell 命令并获得其输出。它通过创建一个管道(pipe)来实现,可以将命令的输出作为文件流读取。
以下是 `popen` 函数的原型:
```c
#include <stdio.h>
FILE *popen(const char *command, const char *mode);
```
- `command` 是一个字符串,表示要执行的 shell 命令。
- `mode` 是一个字符串,指定打开管道的模式,可以是 `"r"`(读取模式)或 `"w"`(写入模式)。
`popen` 函数返回一个指向 `FILE` 结构体的指针,可以像操作文件一样使用该指针来读取或写入命令的输出。
以下是一个使用 `popen` 函数获取命令输出的示例:
```c
#include <stdio.h>
int main() {
FILE *pipe = popen("ls", "r");
if (pipe == NULL) {
printf("Error opening pipe.\n");
return 1;
}
char buffer[128];
while (fgets(buffer, sizeof(buffer), pipe) != NULL) {
printf("%s", buffer);
}
pclose(pipe);
return 0;
}
```
上述示例中,我们使用 `popen("ls", "r")` 执行了 `ls` 命令,并逐行打印输出结果。
需要注意的是,`popen` 函数在使用完毕后应该调用 `pclose` 函数来关闭管道。
阅读全文