2023/4/19
POPEN & PCLOSE
- 函数原型
FILE *popen(const char *command, const char *type); int pclose(FILE *stream);
- 函数行为
popen
函数(常用)建立管道,fork子进程,调用sehll执行命令。
pclose
函数关闭由popen
函数返回的I/O
文件流。 - 参数解释
type
:r
表示command
的标准输出是管道,父进程利用文件指针从管道中读取数据。w
表示command
的标准输入是管道,父进程利用文件指针向管道中写入数据。
command
: I/O文件指针。 - 应用示例
#include <stdio.h>
int main( int argc, char **argv ) {
FILE *r_fp = popen( "ls", "r" );
FILE *w_fp = popen( "wc -l", "w" );
char buf[ 65536 ] = { 0 };
while ( ( fgets( buf, sizeof( buf ), r_fp ) ) != NULL ) {
fputs( buf, w_fp );
}
pclose( r_fp );
pclose( w_fp );
return 0;
}