当前位置:编程学习 > C/C++ >>

管道编程之pipe

pipe():创建一个新的匿名管道

例子中子进程必须等待父进程写入管道之后才能读。

thePipe[0]代表管道的输出,应用程序读它。

thePipe[1]代表管道的输入,应用程序写它。

 

[cpp]
#include <stdio.h>  
#include <unistd.h>  
#include <string.h>  
#include <wait.h>  
 
#define MAX_LINE 80  
 
int main() 

    int thePipe[2], ret; 
    char buf[MAX_LINE+1]; 
    const char *testbuf = {"a test string."}; 
     
    if(pipe(thePipe) == 0) 
    {    
        if(fork() == 0)   //子进程  
        {    
            ret = read(thePipe[0], buf, MAX_LINE);   
            buf[ret] = 0; 
            printf("Child read %s\n", buf); 
        }    
        else              //父进程     
        {   
            ret = write(thePipe[1], testbuf, strlen(testbuf)); 
            ret = wait(NULL); 
        }    
    }    

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <wait.h>

#define MAX_LINE 80

int main()
{
    int thePipe[2], ret;
    char buf[MAX_LINE+1];
    const char *testbuf = {"a test string."};
   
    if(pipe(thePipe) == 0)
    {  
        if(fork() == 0)   //子进程
        {  
            ret = read(thePipe[0], buf, MAX_LINE); 
            buf[ret] = 0;
            printf("Child read %s\n", buf);
        }  
        else              //父进程  
        { 
            ret = write(thePipe[1], testbuf, strlen(testbuf));
            ret = wait(NULL);
        }  
    }  
}


 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,