linux popen 使用例子
时间: 2023-10-13 17:27:20 浏览: 121
可以参考以下代码示例:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[1024];
fp = popen("ls -l", "r");
if (fp == NULL) {
printf("Failed to run command\n");
return 1;
}
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
pclose(fp);
return 0;
}
```
这个程序运行时,它会执行 `ls -l` 命令,并将该命令的输出输出到标准输出中。
相关问题
linux popen 同时读写,在Linux中使用popen的例子
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返回的文件指针进行错误检查。
linux popen
`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` 函数来关闭管道。
阅读全文