国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

unix網絡編程卷2:管道和FIFO

2019-11-10 18:46:42
字體:
來源:轉載
供稿:網友

管道和FIFO

管道(Pipe):管道可用于具有親緣關系進程間的通信,允許一個進程和另一個與它有共同祖先的進程之間進行通信。命名管道(named pipe):命名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關系進程間的通信。命名管道在文件系統中有對應的文件名。命名管道通過命令mkfifo或系統調用mkfifo來創建。#include <unistd.h>int pipe(int fd[2])

該函數返回兩個文件描述符 fd[[0]和fdp[1],前者用于讀,后者用于寫。

#include <iostream>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include <fcntl.h>#include <string.h>void client(int readfd, int writefd);void server(int readfd, int writefd);int main(int argc,char **argv){ int pipe1[2], pipe2[2]; int childpid; pipe(pipe1); pipe(pipe2); if( (childpid = fork()) == 0) //child { close(pipe1[1]); close(pipe2[0]); server(pipe1[0],pipe2[1]); exit(0); } close(pipe1[0]); close(pipe2[1]); client(pipe2[0],pipe1[1]); waitpid(childpid, NULL, 0); exit(0);}void server(int readfd, int writefd){ int fd; size_t n; char buff[4097]; if( (n = read(readfd, buff, 4096)) == 0) { std::cout<< "read file error " << std::endl; return; } buff[n] = '/0'; std::cout << "the server get filename from client:" << buff << std::endl; if( (fd = open(buff, O_RDONLY)) < 0) { std::cout << "the file file can't open file" << std::endl; write(writefd, buff , n); } else { while( (n = read(fd, buff, 4096)) > 0) { std::cout << "the server read file:" << buff; write(writefd, buff , n); } close(fd); }}void client(int readfd, int writefd){ size_t len; size_t n; char buff[4097]; std::cout<< "pls input filename" << std::endl; fgets(buff, 4096, stdin); len = strlen(buff); if( buff[len-1] == '/n') len--; write(writefd, buff, len); while( (n = read(readfd, buff ,4096)) > 0) { std::cout << "the client read message from server:" <<buff; }}

有一個test文件 文件有一行數據this is a test 這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德安县| 南汇区| 新源县| 卫辉市| 濮阳市| 克什克腾旗| 绥宁县| 扎兰屯市| 乌拉特前旗| 民乐县| 英德市| 兴和县| 湘乡市| 佛学| 南郑县| 黄浦区| 延安市| 若羌县| 莫力| 凉城县| 定边县| 南汇区| 二手房| 奇台县| 龙游县| 台中市| 库车县| 莒南县| 普兰店市| 墨玉县| 吴旗县| 鄂温| 突泉县| 赤城县| 蒙城县| 锦州市| 湟中县| 项城市| 时尚| 辽宁省| 新郑市|