linux 中管道的全双工通信(fork()父进曾和子进程执行先后顺序是不确定的)

原创 2013年12月02日 13:53:45

代码:

#include<stdio.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
void sondo(int fd2read,int fd1write)
{
    char *message="hello world";
    char message1[100];  
 
    write(fd1write,message,100);
    
    read(fd2read,message1,100);
    printf("parent give son message   %s",message1);
}

void parentdo(int fd1write,int fd2read)
{
    char message1[100];
    char *message="hello world my name is bai ai jie";
    write(fd1write,message,strlen(message)+1);  
    read(fd2read,message1,100);
    printf("son give parent  message      %s",message1);

}
int main(void)
{
    int fd1[2],fd2[2];
    int stat_val;
    pid_t pid;
    if(pipe(fd1))
    {
        printf("管道1或者管道2创建失败");
        exit(0);
    }
    if(pipe(fd2))
    {
        printf("管道2创建失败哦~");
        exit(0);
    }
    pid=fork();
    switch(pid){
        case -1:
            printf("进程没有创建成功");
            exit(0);

        case 0:
            
            printf("儿子进程");
            close(fd1[1]);
            close(fd2[0]);
            sondo(fd1[0],fd2[1]);
            exit(0);
        default:
            printf("父亲进程");
    
            close(fd1[0]);
            close(fd2[1]);
            parentdo(fd1[1],fd2[0]);
            
            exit(0);

    }
}

问题:子进程父进程哪个先执行:【转】关于 fork 和父子进程的理解 + 【转】

关于 fork 和父子进程的理解    代码: #include   #include   main ()  {          pid_t pid;   ...
  • tong_xin2010
  • tong_xin2010
  • 2014年08月10日 13:53
  • 7027

fork创建子进程利用pipe管道通信

转自:这里。每个进程各自有不同的用户地址空间,任 何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再...
  • beautysleeper
  • beautysleeper
  • 2016年09月19日 14:00
  • 2249

时间片轮转调度算法的提及和关于fork函数执行父,子进程先后顺序的理解

时间片轮转调度算法的提及和关于fork函数执行父,子进程先后顺序的理解     fork函数是用来创建进程的,命令行下输入man2 fork 看到他的函数声明: #include  pid_t ...
  • lyh__521
  • lyh__521
  • 2014年07月29日 19:12
  • 1756

Linux下用管道实现进程全双工通信的代码

直接看代码, 里面已经有注释了。   主程序: int main() { char buf[256]; int fdin[2]; int fdout[2]; int p...
  • myaccella
  • myaccella
  • 2011年11月17日 10:49
  • 3251

socketpair创建双向通信的管道(全双工通信)

socketpair创建双向通信的管道(全双工通信)
  • Li_Ning_
  • Li_Ning_
  • 2016年08月06日 22:03
  • 1383

套接字(全双工)实现进程间通信

特点: sv【0】和sv【1】可读可写。每个进程固定用一个接口。 写数据时:通道不满不阻塞; 读数据时:通道里没数据时阻塞。可用fcntl设置为非阻塞。 创建: int socketpair...
  • lingfeng2019
  • lingfeng2019
  • 2017年05月16日 19:09
  • 139

进程间通信:同步双工管道

因为工作需要,需要设计出一个双工的IPC。(转载请指明出处)在一番比较后,我发现管道是比较符合我们的需求的。但是我们需求要求管道的对方是可信任的,而在vista以下系统是没有GetNamedPipeC...
  • breaksoftware
  • breaksoftware
  • 2011年11月22日 19:42
  • 3601

验证全双工管道两端同时写不会干扰

半双工管道只能一端写一端读逻辑清晰,但是全双工管道两端都可读可写,某些逻辑可能不那么清晰,比如两端同时写的时候数据是否相互会覆盖?下面验证这个问题,父进程和子进程同时写一个全双工管道socketpai...
  • liuxuejiang158
  • liuxuejiang158
  • 2013年10月16日 09:57
  • 1288

linux下系统启动时,几个配置文件 /etc/profile、~/.bash_profile 等几个文件的执行过程,先后顺序

转载地址:https://www.cnblogs.com/haore147/p/3633107.html 1. 在登录Linux时要执行文件的过程如下: 在刚登录Linux时, 首先启动 ...
  • stpeace
  • stpeace
  • 2017年12月13日 12:19
  • 314

Java学习笔记-----Socket全双工通信

::::::::::::::: 全双工通信。 /* 服务器端 如何让它滚动??? 做一个JScorllPane  ??? */ import javax....
  • H002399
  • H002399
  • 2015年08月07日 21:11
  • 745
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 中管道的全双工通信(fork()父进曾和子进程执行先后顺序是不确定的)
举报原因:
原因补充:

(最多只允许输入30个字)