最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux 進程通信之FIFO的實現(xiàn)

 更新時間:2020年02月11日 14:18:01   作者:weixin_43903378  
這篇文章主要介紹了Linux 進程通信之FIFO的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

FIFO通信(first in first out)

FIFO 有名管道,實現(xiàn)無血緣關(guān)系進程通信。

  • 創(chuàng)建一個管道的偽文件
    • a.mkfifo testfifo 命令創(chuàng)建
    • b.也可以使用函數(shù)int mkfifo(const char *pathname, mode_t mode);
  • 內(nèi)核會針對fifo文件開辟一個緩沖區(qū),操作fifo文件,可以操作緩沖區(qū),實現(xiàn)進程間通信–實際上就是文件讀寫

man 3 mkfifo

#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);

注意事項:

FIFOs
Opening the read or write end of a FIFO blocks until the other end is also opened (by another process or thread). See
fifo(7) for further details.

打開fifo文件時候,read端會阻塞等待write端open,write端同理,也會阻塞等待另外一段打開。

代碼示例:
file_w.c 寫端

#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>

int main(int argc, char *argv[]) {
  if(argc != 2) {
    printf("./a.out filename1\n");
    return -1;
  }
  printf("begin open w\n");
  int o_ret = open(argv[1], O_WRONLY);
  printf("end open w\n");
  char buf[256];
  int num = 0;
  while (1) {
    memset(buf, '\0', sizeof(buf));
    sprintf(buf, "xiaoming--%d", num++);
    printf("strlen(buf) = %d\n", strlen(buf));
    write(o_ret, buf, strlen(buf));
    sleep(1);
  }
  close(o_ret);
  return 0;
}
 

file_r.c 讀端

#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>

int main(int argc, char *argv[]) {
  if(argc != 2) {
    printf("./a.out filename1\n");
    return -1;
  }
  printf("begin open r\n");
  int o_ret = open(argv[1], O_RDONLY);
  printf("end open r\n");
  char buf[256];
  int num = 0;
  while (1) {
    memset(buf, '\0', sizeof(buf));
    read(o_ret, buf, sizeof(buf));
    printf("strlen(buf) = %d\n", strlen(buf));
    printf("read is%s\n", buf);
  }
  close(o_ret);
  return 0;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • linux環(huán)境中常用的mysql命令介紹

    linux環(huán)境中常用的mysql命令介紹

    大家好,本篇文章主要講的是linux環(huán)境中常用的mysql命令介紹,感興趣的同學(xué)趕快來看一看,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-11-11
  • Linux下安裝軟件包報依賴等相關(guān)問題的解決方法

    Linux下安裝軟件包報依賴等相關(guān)問題的解決方法

    大家好,本篇文章主要講的是Linux下安裝軟件包報依賴等相關(guān)問題的解決方法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話,記得收藏一下
    2021-12-12
  • linux上安裝zookeeper 啟動和關(guān)閉的教程

    linux上安裝zookeeper 啟動和關(guān)閉的教程

    這篇文章主要介紹了linux上安裝zookeeper 啟動和關(guān)閉的教程詳解,首先zookeeper運行需要java環(huán)境所以必須先裝JDK,具體操作步驟大家一起看看本文吧
    2018-08-08
  • Linux系統(tǒng)安裝Tomcat并配置Service啟動關(guān)閉

    Linux系統(tǒng)安裝Tomcat并配置Service啟動關(guān)閉

    這篇文章主要介紹了Linux系統(tǒng)安裝Tomcat并配置Service啟動關(guān)閉,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 新版VPS主機管理面板WDCP安裝及使用體驗-國產(chǎn)簡單易用型VPS面板

    新版VPS主機管理面板WDCP安裝及使用體驗-國產(chǎn)簡單易用型VPS面板

    這篇文章主要介紹了新版VPS主機管理面板WDCP安裝及使用體驗-國產(chǎn)簡單易用型VPS面板,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • linux nohup及tail-f用法

    linux nohup及tail-f用法

    這篇文章給大家分享了linux nohup及tail-f用法相關(guān)內(nèi)容,有興趣的朋友可以參考學(xué)習(xí)下。
    2018-07-07
  • Linux環(huán)境部署DNF倉庫以及配置NFS共享服務(wù)

    Linux環(huán)境部署DNF倉庫以及配置NFS共享服務(wù)

    本文詳細介紹了如何在Linux環(huán)境下部署DNF倉庫和配置NFS共享服務(wù),DNF倉庫主要用于集中管理軟件包,而NFS共享服務(wù)則用于多系統(tǒng)間的文件共享,文章涵蓋了從倉庫部署、軟件包同步到NFS配置和客戶端訪問的全過程,為系統(tǒng)管理員提供了全面的指導(dǎo)
    2025-04-04
  • Linux中使用Crontab定時監(jiān)測維護Tomcat應(yīng)用程序的方法

    Linux中使用Crontab定時監(jiān)測維護Tomcat應(yīng)用程序的方法

    定時監(jiān)測發(fā)布的某項應(yīng)用程序是否可用,如果不可用,立即執(zhí)行處理措施,實現(xiàn)自動化運維工作
    2014-11-11
  • 深入理解Apache Airflow 調(diào)度器(最新推薦)

    深入理解Apache Airflow 調(diào)度器(最新推薦)

    Apache Airflow調(diào)度器是數(shù)據(jù)管道管理系統(tǒng)的關(guān)鍵組件,負責(zé)編排dag中任務(wù)的執(zhí)行,通過理解調(diào)度器的角色和工作方式,正確配置調(diào)度器,并遵循最佳優(yōu)化實踐,你可以確保數(shù)據(jù)管道高效可靠地運行,本文介紹Apache Airflow 調(diào)度器的相關(guān)知識,感興趣的朋友一起看看吧
    2025-02-02
  • Linux中使用Cron定時執(zhí)行SQL任務(wù)的實現(xiàn)步驟

    Linux中使用Cron定時執(zhí)行SQL任務(wù)的實現(xiàn)步驟

    在Linux系統(tǒng)中,計劃任務(wù)(Cron)是一種強大的工具,可以自動執(zhí)行預(yù)定的任務(wù),它非常適合定期運行腳本、備份數(shù)據(jù)、清理臨時文件等一系列重復(fù)性任務(wù),本文給大家介紹了如何在Linux中使用Cron定時執(zhí)行SQL任務(wù),需要的朋友可以參考下
    2024-11-11

最新評論

调兵山市| 卢氏县| 马山县| 乌兰浩特市| 灵石县| 即墨市| 综艺| 中超| 桦川县| 朝阳县| 健康| 昭觉县| 金沙县| 电白县| 桐梓县| 巨野县| 介休市| 开阳县| 凭祥市| 图们市| 海安县| 涪陵区| 扎兰屯市| 富蕴县| 辽源市| 长阳| 嘉荫县| 宣汉县| 唐海县| 淮北市| 濮阳县| 平凉市| 界首市| 浦城县| 全州县| 阳东县| 嘉峪关市| 吴川市| 东乡| 孟连| 林芝县|