linuxpopen实现源码,Linuxpopen()函数实现流重定向popen()函数⽤法⼩结:
1)原型是:FILE *popen(char *command,char *modes);
2)返回值:如果成功的话返回⼀个⽂件指针,出错的话返回NULL;
3)功能:⾸先它会创建⼀个管道,再调⽤fork()函数创建⼀个⼦进程,接着关闭管道的不使⽤端,也就是在⽗进程与⼦进程间建⽴⼀个管道,⼦进程执⾏command指向的应⽤程序或者是命令。函数执⾏成功的返回值FILE结构指针作为管道的⼀端,为⽗进程所拥有。⼦进程则拥有管道的另⼀端,该端⼝为⼦进程的stdin或者stdout。如果modes=r,那么该管道的⽅向为:⼦进程的stdout到⽗进程的FILE指针;如果modes=w,那么管道的⽅向为:⽗进程的FILE指针到⼦进程的stdin。
源代码如下:
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
FILE *finput,*foutput;
char buf[PIPE_BUF];
int n;
finput=popen("echo test!","r");
foutput=popen("cat","w");
read(fileno(finput),buf,strlen("test!"));
write(fileno(foutput),buf,strlen("test!"));
pclose(finput);
linux重定向pclose(foutput);
printf("\n");
exit(EXIT_SUCCESS);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论