IO--進程實操

1.創建一個進程扇

#include <051head.h>
int main(int argc, const char *argv[])
{pid_t pid;for(int i=0;i<4;i++){pid=fork();if(pid==-1) //父進程{ERRLOG("fork error..\n");}   else if(pid==0)  //這是子進程{                                                   printf("pid=%d  ppid=%d\n",getpid(),getppid());break;}//父進程//不用寫代碼,默認執行循環,繼續進行fork}while(1);    //子進程while(waitpid(-1,NULL,WNOHANG)<=0); // 子進程結束,再回收return 0;
}   

2.創建一個進程鏈

#include <25051head.h>
int main(int argc, const char *argv[])
{pid_t pid;for(int i=1;i<5;i++){pid=fork();if(pid==-1)  //這是子進程{ERRLOG("fork error\n");     }else if(pid>0) //父進程 {wait(NULL);     //阻塞   接受子進程資源  exit(0);                                            }//子進程//不用寫,默認執行循環,繼續forkprintf("pid=%d  ppid=%d\n",getpid(),getppid());}while(1);return 0;
}

3.請問打印的結果是什么


輸出結果:

info1 from child process_2
info1 from child process_1
info1 from parent process
info2 from parent process

4.實現文件的拷貝,父進程拷貝前一部分,子進程拷貝后一部分

#include <25051head.h>
int main(int argc, const char *argv[])
{FILE* fp=fopen("my.txt","r");if(NULL==fp){ERRLOG("fopen error..\n");}fseek(fp,0,SEEK_END);int num=ftell(fp);int n=num/2;FILE* fd=fopen("my1.txt","w+");if(NULL==fd){ERRLOG("fopen error..\n");}char buf[128]="";pid_t pid=fork();if(0>pid){ERRLOG("fork error");}else if(0<pid){wait(NULL);   // 等待子進程完成fseek(fp,0,SEEK_SET);fseek(fd,0,SEEK_SET);while(n>0){size_t res=fread(buf,1,(n<sizeof(buf))? n:sizeof(buf),fp);if(res<=0){break;}fwrite(buf,1,n,fd);n-=res;}}else{fseek(fp,n,SEEK_SET);fseek(fd,n,SEEK_SET);                                                       while(n>0){size_t res=fread(buf,1,(n<sizeof(buf))? n:sizeof(buf),fp);if(res<=0){break;}fwrite(buf,1,n,fd);n-=res;//exit(0);}exit(0);}fclose(fp);fclose(fd);return 0;
}

打印結果:

思維導圖

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

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

相關文章

模型預測控制(MPC)概覽

模型預測控制&#xff08;Model Predictive Control, MPC&#xff09; 一、理論基礎與發展脈絡 1. 歷史起源 20世紀70年代起源于工業過程控制&#xff08;如化工領域的動態矩陣控制DMC、模型算法控制MAC&#xff09;&#xff0c;由Richalet、Mehra等學者提出&#xff0c;核心…

Python初體驗:從入門到實踐

Python無疑是開啟編程世界大門的絕佳鑰匙。今天,就讓我們一起踏上Python的學習之旅。 #01 編寫第一個Python程序 環境搭建好之后,上節已經編寫了第一個Python程序。現在就好比,我們已經準備好了廚房和食材,要開始做第一道菜了。啟動Jupyter后,在Jupyter中新建一個文件,…

【數字后端】- 什么是AOI、OAI cell?它們后面數字的含義

是什么&#xff1f; 不管是在DC綜合階段&#xff0c;還是在PR階段&#xff0c;嘗嘗會出現OAI、AOI組合邏輯單元的身影。因為它們可以通過巧妙的串聯和并聯晶體管非常高效地實現組合邏輯&#xff0c;因此在VLSI設計中非常常用。但是它們也是高pin密度單元&#xff0c;也可能會造…

MQTTServer服務器根據MQTTClient客戶端已訂閱的主題推送 分發消息

網絡讀卡器介紹&#xff1a;https://item.taobao.com/item.htm?ftt&id22173428704&spma21dvs.23580594.0.0.52de2c1bgK3bgZ 本示例使用了MQTTNet插件 C# MQTTNETServer 源碼 using MQTTnet.Client.Receiving; using MQTTnet.Server; using MQTTnet; using System; u…

【seismic unix 合并兩個su文件】

Seismic Unix簡介 Seismic Unix&#xff08;SU&#xff09;是由科羅拉多礦業學院開發的開源地震數據處理軟件包&#xff0c;基于Unix/Linux環境運行。它提供了一系列命令行工具&#xff0c;用于地震數據加載、處理、分析和可視化&#xff0c;支持SEG-Y格式和SU自定義格式。SU廣…

【vmware虛擬機使用】安裝vmware workstations17

安裝vmware17 本章學習目標VMware虛擬機簡介開始實操下載VMware workstation虛擬機安裝虛擬機配置虛擬機網絡 總結 本章學習目標 1.安裝vmware workstation虛擬機 2.自定義配置虛擬機網絡&#xff0c;避免網絡沖突 VMware虛擬機簡介 ? VMware的核心是Hypervisor&#xff0…

QT6 源(147)模型視圖架構里的表格窗體 QTableWidget 的范例代碼舉例,以及其條目 QTableWidgetItem 類型的源代碼。

&#xff08;1&#xff09;先用一個簡單的例子&#xff0c;學習一下本類里的成員函數的使用。生成如下圖的界面&#xff0c;表格窗體與初始數據&#xff1a; 查看其 ui_widget . h 文件 &#xff0c;里面的將是最標準的表格窗體的使用代碼 &#xff1a; #ifndef UI_WIDGET_H #…

URL時間戳參數深度解析:緩存破壞與前端優化的前世今生

&#x1f50d; URL時間戳參數深度解析&#xff1a;緩存破壞與前端優化的前世今生 在日常的Web開發中&#xff0c;你是否注意到很多接口URL后面都會帶有一個時間戳參數&#xff1f;比如 xxx/getMsg?_1751413509056。這個看似簡單的參數背后&#xff0c;卻隱藏著前端緩存策略、性…

分布式鎖實現方式:基于Redis的分布式鎖實現(Spring Boot + Redis)

Redis實現分布式鎖的原理 Redis分布式鎖基于其單線程執行命令的特性&#xff0c;通過原子操作實現多節點間的互斥訪問。下面從原理、實現、問題及優化四個方面詳細解析&#xff1a; 1.原子性與互斥性 Redis分布式鎖的核心是原子性操作&#xff1a; 獲取鎖&#xff1a;使用SE…

linux升級降級內核實驗

?實驗環境 vmware workstation 17 centos7.9 下載鏈接&#xff1a; https://vault.centos.org/7.9.2009/isos/x86_64/ ubuntu24.04 下載鏈接&#xff1a; https://old-releases.ubuntu.com/releases/24.04/ ?實驗目的 為了解決日常環境部署中某些驅動軟件依賴特定內…

華為云開始了“開發者空間 AI Agent 開發”活動

引言 今天在華為云App上偶然看到一個新活動&#xff1a;Developer Events_Developer Alliance-Huawei Cloud。這個活動要求開發者可結合自己的工作實踐&#xff0c;須在華為開發者空間內完成應用構建&#xff0c;應用構建類型和主題為AI Agent應用開發。 AI Agent平臺 華為開…

2025.6.26總結

今天和我做同一業務得同事進行了工作交接&#xff0c;主要給我講了怎么去執行自動化。包括性能自動化&#xff0c;API自動化&#xff0c;UI自動化&#xff0c;除了UI自動化要寫些代碼&#xff0c;其他跑得話也就在工具上配個參數&#xff0c;就是個搬磚得活&#xff0c;沒太大技…

ip網絡基礎

交換機工作原理&#xff1a; 自主學習mac地址并成mac地址表 根據mac地址表再進行單播、廣播轉發 主機通信原理&#xff08;局域網&#xff09;&#xff1a; 需要了解arp協議 拓撲圖&#xff1a; 首先&#xff0c;我們觀察icmp數據包&#xff0c;發現缺少目標mac地址&#…

AI大模型如何重塑軟件開發流程?

文章目錄 每日一句正能量前言一、AI大模型的定義與特點&#xff08;一&#xff09;定義&#xff08;二&#xff09;特點 二、AI大模型在軟件開發中的應用場景&#xff08;一&#xff09;代碼自動生成&#xff08;二&#xff09;智能測試&#xff08;三&#xff09;需求分析與設…

Kafka與RabbitMQ相比有什么優勢?

大家好&#xff0c;我是鋒哥。今天分享關于【Kafka與RabbitMQ相比有什么優勢&#xff1f;】面試題。希望對大家有幫助&#xff1b; Kafka與RabbitMQ相比有什么優勢&#xff1f; 超硬核AI學習資料&#xff0c;現在永久免費了&#xff01; Kafka與RabbitMQ在消息隊列的設計和應…

LeetCode 2090. 半徑為 k 的子數組平均值

題目鏈接 2090. 半徑為 k 的子數組平均值 題目描述 給定一個下標從 0 開始的整數數組 nums 和整數 k&#xff0c;構建并返回一個長度為 n 的數組 avgs&#xff0c;其中 avgs[i] 表示以下標 i 為中心、半徑為 k 的子數組的平均值。具體規則如下&#xff1a; 無效位置&#x…

深入理解C++11原子操作:從內存模型到無鎖編程

文章目錄 C并發編程的新紀元內存模型基礎&#xff1a;可見性與有序性數據競爭的根源happens-before關系memory_order枚舉詳解1. memory_order_relaxed2. memory_order_acquire/memory_order_release3. memory_order_seq_cst 原子操作詳解std::atomic模板核心原子操作1. 讀取與存…

DQL-1-基礎查詢

基礎查詢 DQL-1-基礎查詢 基礎查詢DQL - 介紹DQL - 語法DQL - 基本查詢案例 DQL - 介紹 SQL 英文全稱是 Data Query Language, 數據查詢語言, 用來查詢數據庫中表的記錄 查詢關鍵字: SELECT DQL - 語法 SELECT 字段列表FROM 表名列表WHERE條件列表GROUP BY分組字段列表HAVI…

Prompt 精通之路(七)- 你的終極 AI 寶典:Prompt 精通之路系列匯總

你的終極 AI 寶典&#xff1a;Prompt 精通之路系列匯總 標簽&#xff1a; #Prompt指南 #AI學習資源 #速查手冊 #ChatGPT #系列總結 &#x1f680; Prompt 精通之路&#xff1a;系列文章導航 第一篇&#xff1a;AI 時代的新語言&#xff1a;到底什么是 Prompt&#xff1f;為什么…

P27:RNN實現阿爾茨海默病診斷

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 一、過程解讀 PyTorch 實戰&#xff1a;阿爾茨海默病數據預測模型 今天&#xff0c;我將帶大家一起探索一個基于 PyTorch 的深度學習小項目——利用 RNN 模…