linux popen 同时读写,在Linux中使用popen的例子
时间: 2023-08-11 17:33:47 浏览: 226
popen函数是一个方便的方法来启动一个子进程并在父进程中与之交互。popen函数返回一个文件指针,可以使用标准IO函数来读取或写入数据。
下面是一个使用popen函数在Linux上同时读写的例子:
```c
#include <stdio.h>
#include <string.h>
int main(void) {
FILE *fp;
char buffer[1024];
fp = popen("/bin/bash", "w+");
if (fp == NULL) {
printf("Failed to open pipe\n");
return -1;
}
// Write command to the pipe
fprintf(fp, "ls -l\n");
// Read output from the pipe
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
// Close the pipe
pclose(fp);
return 0;
}
```
这个例子启动一个bash shell子进程,并向其发送“ls -l”命令。然后,父进程从子进程读取输出并将其打印到控制台上。最后,父进程使用pclose函数关闭子进程。在这个例子中,我们使用了"w+"参数来打开popen的文件指针,使其既可以读取也可以写入。
注意:在实际代码中,需要对popen返回的文件指针进行错误检查。
阅读全文