210124阶段三信号屏蔽,管道通信
生活随笔
收集整理的這篇文章主要介紹了
210124阶段三信号屏蔽,管道通信
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- 一、學(xué)習(xí)的知識點(diǎn)
- 1屏蔽信號
- 2管道
- 2.1匿名管道
- 2.2命名管道
- 二、上課沒有聽懂或者沒有理解的地方
- 三、當(dāng)天學(xué)習(xí)的收獲
一、學(xué)習(xí)的知識點(diǎn)
1屏蔽信號
2管道
2.1匿名管道
int pipefd[2];//文件描述符數(shù)組 成功返回0if (pipe(pipefd) == -1) //創(chuàng)建一個無名管道{perror("pipe");exit(EXIT_FAILURE);}pid_t pid = fork();if (pid == 0){close(pipefd[0]);//子進(jìn)程往管道寫入一個數(shù)據(jù)write(pipefd[1], "hello", 5); // 寫 pipefd[1]close(pipefd[1]);exit(EXIT_SUCCESS);}//父進(jìn)程從管道讀出數(shù)據(jù)sleep(1);char buff[16] = { 0 };read(pipefd[0], buff, 10); //讀取管道 讀取到?jīng)]有為止 因此size可以大一點(diǎn)cout << "buff=" << buff << endl;2.2命名管道
if (access(url, F_OK) == -1) //F_OK 判斷文件是否存在{if (mkfifo(url, 0777) == -1){perror("mkfifo error");return 0;}else{cout << "fifo install url=" << url << endl;}} if (mkfifo(url, 0777) == -1) {perror("mkfifo error");return 0; } //寫進(jìn)程會阻塞到有一個讀進(jìn)程來讀這個FIFO管道。就是沒有進(jìn)程來讀文件,則寫進(jìn)程會阻塞在open語句。 fd = open(url, O_WRONLY); //打開命名管道 ret = write(fd, buf, strlen(buf)); //向管道寫入數(shù)據(jù) ret = read(fd, buf, sizeof(buf)); //從管道讀出數(shù)據(jù)二、上課沒有聽懂或者沒有理解的地方
無
三、當(dāng)天學(xué)習(xí)的收獲
信號屏蔽、使用管道進(jìn)行進(jìn)程間通信
總結(jié)
以上是生活随笔為你收集整理的210124阶段三信号屏蔽,管道通信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 210122阶段三进程间信号
- 下一篇: 210127阶段三进程间通信-消息队列