IOday6作業

1>使用有名管道,完成兩個進程的相互通信

//create.c
#include<myhead.h>int main(int argc, const char *argv[])
{if((mkfifo("myfifo1",0664))== -1){perror("mkfifo");return -1;}if((mkfifo("myfifo2",0664))== -1){perror("mkfifo");return -1;}getchar();system("rm myfifo1");system("rm myfifo2");return 0;
}
//01file.c
#include<myhead.h>void* write_file(void* arg)
{int wfd;//打開管道if((wfd = open("./myfifo1",O_WRONLY)) == -1){perror("open");exit(1);}char buf[128]="";while(1){printf("請寫入:");fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1]=0;write(wfd,buf,sizeof(buf));if(strcmp(buf,"quit")==0){break;//exit(0);}}close(wfd);//pthread_exit(NULL);
}
void* read_file(void* arg)
{int rfd;if((rfd = open("./myfifo2",O_RDONLY)) == -1){perror("open");exit(1);}char buf[128]="";while(1){bzero(buf,sizeof(buf));read(rfd,buf,sizeof(buf));printf("輸出的是%s\n",buf);if(strcmp(buf,"quit")==0){break;}}close(rfd);pthread_exit(NULL);}int main(int argc, const char *argv[])
{//創建線程pthread_t wtid = -1;//pthread_t rtid = -1;if(pthread_create(&wtid,NULL,write_file,NULL) != 0){perror("pthread_t");return -1;}if(pthread_create(&rtid,NULL,read_file,NULL) != 0){perror("pthread_t");return -1;}//回收線程pthread_join(rtid,NULL);pthread_join(wtid,NULL);return 0;
}

?

//02file.c
#include<myhead.h>
void* write_file(void* arg)
{int wfd;if((wfd = open("./myfifo2",O_WRONLY)) == -1){perror("open");exit(1);}char buf[128]="";while(1){printf("請寫入:");fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1]=0;write(wfd,buf,sizeof(buf));if(strcmp(buf,"quit")==0){break;//exit(0);}}close(wfd);//pthread_exit(NULL);
}
void* read_file(void* arg)
{int rfd;	if((rfd = open("./myfifo1",O_RDONLY)) == -1){perror("open");exit(1);}char buf[128]="";while(1){bzero(buf,sizeof(buf));read(rfd,buf,sizeof(buf));printf("輸出的是%s\n",buf);if(strcmp(buf,"quit")==0){break;}}close(rfd);pthread_exit(NULL);}
int main(int argc, const char *argv[])
{//打開管道//創建線程pthread_t wtid = -1;//pthread_t rtid = -1;if(pthread_create(&wtid,NULL,write_file,NULL) != 0){perror("pthread_t");return -1;}if(pthread_create(&rtid,NULL,read_file,NULL) != 0){perror("pthread_t");return -1;}//回收線程pthread_join(rtid,NULL);pthread_join(wtid,NULL);return 0;
}

效果圖:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207666.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207666.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MYSQL練題筆記-高級查詢和連接-這系列最后一題以及下個系列(子查詢)的第一題

今天做了下面兩題&#xff0c;到第三題的時候想了下但是沒有太多的思路&#xff0c;然后看題解的時候實在是覺得自己不會&#xff0c;打算明天看吧。 1.按分類統計薪水相關的表和題目如下 我是想著簡化問題&#xff0c;先找出薪水低于30000的員工&#xff0c;然后找這些員工的上…

JAVA 鎖

樂觀鎖 樂觀鎖是一種樂觀思想&#xff0c;即認為讀多寫少&#xff0c;遇到并發寫的可能性低&#xff0c;每次去拿數據的時候都認為別人不會修改&#xff0c;所以不會上鎖&#xff0c;但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數據&#xff0c;采取在寫時先讀出…

Sam Altman當選“TIME時代周刊”2023年度最佳CEO!還有梅西、Taylor Swift當選...

TIME時代周刊昨日在官網公布了2023年最佳CEO—— Sam Altman當選! 此外&#xff0c;Taylor Swift當選年度最佳人物&#xff0c;梅西當選年度最佳運動員。 Sam Altman的當選可謂是實至名歸&#xff01;沒有誰能比火爆全球的ChatGPT背后&#xff0c;OpenAI的CEO更“成功”了。 …

ssh安裝及問題解決

ssh安裝及遇到的問題 ssh分為客戶端 openssh-client 和服務器 openssh-server&#xff0c;可以利用以下命令確認是否安裝&#xff1a; dpkg -l | grep ssh我用ubantu安裝的&#xff0c;所以默認安裝了客戶端 安裝客戶端和服務器端的命令分別為&#xff1a; sudo apt-get ins…

金融量化交易:使用Python實現遺傳算法

大家好&#xff0c;遺傳算法是一種受自然選擇過程啟發的進化算法&#xff0c;用于尋找優化和搜索問題的近似解決方案。本文將使用Python來實現一個用于優化簡單交易策略的遺傳算法。 1.遺傳算法簡介 遺傳算法是一類基于自然選擇和遺傳學原理的優化算法&#xff0c;其特別適用…

MySQL 教程 2.1

MySQL 插入數據 MySQL 表中使用 INSERT INTO 語句來插入數據。 你可以通過 mysql> 命令提示窗口中向數據表中插入數據&#xff0c;或者通過PHP腳本來插入數據。 語法 以下為向MySQL數據表插入數據通用的 INSERT INTO SQL語法&#xff1a; INSERT INTO table_name (colu…

使用Pytorch實現Grad-CAM并繪制熱力圖

這篇是我對嗶哩嗶哩up主 霹靂吧啦Wz 的視頻的文字版學習筆記 感謝他對知識的分享 看一下這個main cnn.py的文件 那這里我為了方便 就直接從官方的torch vision這個庫當中導入一些我們常用的model 比如說我這里的例子是采用的mobile net v3 large這個模型 然后這里我將pretrain設…

微信小程序 純css畫儀表盤

剛看到設計稿的時候第一時間想到的就是用canvas來做這個儀表盤&#xff0c;雖然本人的畫布用的不是很好但還可以寫一寫&#x1f600;。話不多說直接上代碼。最后有純css方法 <!--wxml--> <canvas canvas-id"circle" class"circle" >// js dat…

MySQL 忘記root密碼后重置密碼操作

在忘記 MySQL 密碼的情況下&#xff0c;可以通過 --skip-grant-tables 關閉服務器的認證&#xff0c;然后重置 root 的密碼&#xff0c;具體操作步驟如下。 步驟 1)&#xff1a;關閉正在運行的 MySQL 服務。打開 cmd 進入 MySQL 的 bin 目錄。 步驟 2)&#xff1a;輸入mysqld -…

【Docker】容器數據持久化及容器互聯

容器數據持久化及容器互聯 一、Docker容器的數據管理1.1、什么是數據卷1.2、數據卷特點1.3、數據卷使用 二、Docker的數據卷容器2.1、什么是數據卷容器2.2、掛載數據卷容器方法 三、Docker數據卷的備份和還原3.1、數據備份方法3.2、數據還原方法 四、Docker容器互聯4.1、docker…

數據寶庫:深入探討數據隱私與安全的要義

寫在開頭 隨著數字時代的蓬勃發展&#xff0c;數據已成為當今社會的新型燃料。然而&#xff0c;正如能源需要保護和管理一樣&#xff0c;我們的數據同樣需要被妥善對待。本文將深入討論數據隱私和安全的不可忽視的重要性&#xff0c;并為您提供一些實用的基本措施和方法&#…

xcode ——Instrumets(網絡連接調試)使用

環境&#xff1a; instruments 使用只能在真機調試時使用&#xff0c;且真機系統必須ios15 點擊debug 按鈕——Network——Profile in Instruments 然后就可以看到如下面板 展開運行的項目&#xff0c;點擊session下的域名&#xff0c;下方回出現該域名下的網絡請求。點擊Deve…

管理類聯考——數學——真題篇——按題型分類——充分性判斷題——秒殺

題型結構 問題求解&#xff1a;通過計算求解&#xff0c;從五個選項中選出一個正確答案。條件充分性判斷&#xff1a;問所給的條件&#xff08;1&#xff09;&#xff08;2&#xff09;能否推出題設的結論&#xff0c;共有五個選項&#xff0c;從中選出正確的一個。&#xff0…

車聯網安全學習路標

1. 汽車和物聯網基礎知識 首先&#xff0c;你需要全面了解汽車和物聯網的基礎知識&#xff0c;包括汽車電子體系結構、車載通信技術&#xff08;如CAN、LIN、FlexRay、Ethernet&#xff09;以及物聯網的架構和通信協議&#xff08;如MQTT、CoAP&#xff09;。 2. 汽車網絡安全…

LCR 090. 打家劫舍 II(leetcode)動態規劃

文章目錄 前言一、題目分析二、算法原理1.狀態表示2.狀態轉移方程3.初始化4.填表順序5.返回值是什么 三、代碼實現總結 前言 在本文章中&#xff0c;我們將要詳細介紹一下LeetcodeLCR 090. 打家劫舍 II。采用動態規劃解決&#xff0c;這是一道經典的多狀態dp問題 一、題目分析…

人工智能從 DeepMind 到 ChatGPT ,從 2012 - 2024

本心、輸入輸出、結果 文章目錄 人工智能從 DeepMind 到 ChatGPT &#xff0c;從 2012 - 2024前言2010年&#xff1a;DeepMind誕生2012&#xff5e;2013年&#xff1a;谷歌重視AI發展&#xff0c;“拿下”Hinton2013&#xff5e;2014年&#xff1a;谷歌收購DeepMind2013年&…

stm32一種步進電機查表法驅動

文章目錄 一、定時器基礎頻率二、驅動原理三、關鍵代碼 對于stm32芯片來說&#xff0c;步進電機的驅動由于要在中斷中不斷計算下一次脈沖的時間而極其消耗算力&#xff0c;使用計算的方法對于芯片的算法消耗更高&#xff0c;特別是在f1這種算力比較低的芯片上&#xff0c;這時候…

Pipenv環境配置+Pytest運行

環境配置 使用Pipenv進行虛擬環境管理&#xff0c;Pipfile為依賴模塊管理文件。 安裝pipenv&#xff1a;brew install pipenv根項目根目錄下執行命令創建虛擬環境&#xff1a; pipenv install在Pycharm中指定項目運行的虛擬環境 &#xff1a;File->Settings->Project:-…

一文2500字使用Python進行GRPC和Dubbo協議的高級測試

01、GRPC測試 GRPC&#xff08;Google Remote Procedure Call&#xff09;是一種高性能、開源的遠程過程調用&#xff08;RPC&#xff09;框架&#xff0c;由 Google開發并基于Protocol Buffers&#xff08;protobuf&#xff09;進行通信。它使用了HTTP/2協議作為傳輸層&#…

C++11條件變量condition_variable

文章目錄 前言正文等待通知注意事項 結尾 前言 條件變量用于多線程中&#xff0c;其作用是在多線程間實現線程的等待、喚醒和通知機制&#xff0c;常配合互斥鎖&#xff08;std::mutex&#xff09;一起使用。它主要用于解決數據競爭問題>。 正文 條件變量只有五個函數&am…