popen一般用于获取命令执行的输出,或者对命令进行输入(采用无名管道):
FILE *popen(const char *command, const char *type);
pipe用于无名管道:
int pipe(int pipefd[2]);
mkfifo用于有名管道:
int mkfifo(const char *pathname, mode_t mode);
-----------------------------------------------------------------------------------------------------------------------------------------
管道的认识从command1 | command2 认识开始,到现在做A2DP升华,写一些使用FIFO的要点下来。
1 管道一般用于进程间通信,把一个进程的输出通过管道送给另一个进程。
2 可以通过popen,pclose尝试实现command1 | command2 。
File *popen(const char * command, const char *open_mode);
open_mode: r or w
File a =popen("uname -a", "r");
fread(buffer, 1, BUFSIZE, a);
printf("%s", buffer);
>> Linux Ubuntu 8.09..................
3 pipe创建管道
#include <unistd.h>
本文转自:http://www.cppblog.com/iuranus/archive/2009/08/09/92717.html