⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p12-1.c

📁 SUN Solaris8平台下进程间通信
💻 C
字号:
#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include "err_exit.h"#define DATA1   "Fine,thanks."#define DATA2   "Hello,how are you?"int main(void){    int sockets[2], child;    char buf[1024];    /* 创建套接字偶对 */    if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) < 0)         err_exit("socketpair error");    /* 创建子进程*/    if ((child = fork()) == -1)         err_exit("fork error ");    if (child != 0) {    /* 这是父进程 */        /* 关闭子进程的套接字 */        close(sockets[0]);        /* 读来自子进程的消息 */        if (read(sockets[1], buf, sizeof(buf)) < 0)             err_exit("reading socket error");        printf("parent process %d received request: %s\n", getpid(),buf);        /* 向子进程写消息 */        if (write(sockets[1], DATA1, sizeof(DATA1)) < 0)             err_exit("writing socket error");        /* 通讯结束 */        close(sockets[1]);    } else {     /* 子进程 */        /* 关闭父进程的套接字端 */        close(sockets[1]);        /* 发送消息给父进程 */        if (write(sockets[0], DATA2, sizeof(DATA1)) < 0)             err_exit("writing socket error");        /* 读来自父进程的消息 */        if (read(sockets[0], buf, sizeof(buf)) < 0)            err_exit("reading socket error");        printf("child process %d received answer: %s\n", getpid(),buf);        /* 通讯结束 */        close(sockets[0]);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -