Linuxpopen函数
时间: 2023-11-22 11:04:23 浏览: 21
Linux中的popen函数用于通过创建一个管道来执行一个shell命令,并返回一个文件指针。它的函数原型如下:
```c
FILE *popen(const char *command, const char *type);
```
其中,`command`参数是要执行的shell命令,`type`参数是以何种方式打开管道。`type`可以是`"r"`表示读取模式,或者是`"w"`表示写入模式。
popen函数会创建一个子进程来执行shell命令,并返回一个文件指针。通过这个文件指针,可以读取或写入shell命令的输出或输入。
需要注意的是,使用完popen函数后,应该使用pclose函数来关闭文件指针,并等待子进程结束。
以下是一个简单的例子,展示了如何使用popen函数执行shell命令并读取输出:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[1024];
// 执行shell命令并读取输出
fp = popen("ls -l", "r");
if (fp == NULL) {
perror("popen failed");
return -1;
}
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
// 关闭文件指针并等待子进程结束
pclose(fp);
return 0;
}
```
上述代码中,通过popen函数执行了一个`ls -l`命令,并通过循环读取输出并打印在屏幕上。最后,使用pclose函数关闭文件指针并等待子进程结束。