popen
是C语言中标准库中的一个函数,它通过创建一个新进程来执行一个外部命令,并与进程进行通信。在大多数主流的操作系统中都有实现。
下面是一个基本的popen
函数的示例:
#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)-1, fp) != NULL) {
printf("%s", buffer);
}
pclose(fp);
return 0;
}
在这个示例中,我们通过执行ls -l
命令来获取当前目录下所有文件的详细信息。popen
函数使用第一个参数"ls -l"
来执行这个命令,而第二个参数"r"
表示我们要读取这个命令的输出。执行命令后,通过fgets
函数逐行读取输出,并打印到控制台上。最后使用pclose
函数来关闭popen
打开的文件流。
需要注意的是,在使用popen
函数的时候,尽量不要执行不可信任的命令,避免造成安全问题。