APUE讀書筆記 程序通訊

2021-09-30 03:46:54 字數 729 閱讀 4932

程序通訊

1, 管道(pipe)

在理解管道時需要注意的地方:

.管道是半雙工的,不能假設它是全雙工的。

.它只能用在有公共祖先的程序之間。比如shell幾個命令之間用管道連線,但父程序都是終端程序。

1.1 管道的建立

#include

int pipe(int filedes[2]);

管道一般用在有共同祖先的程序間進行協同工作。典型的應用是shell的各命令間用管道相連線,形成乙個流水線作業,還可以利用管道實現乙個令牌環狀的結構,後面會有例子給出。  

乙個簡單的父子程序配合的例子(**於手冊): 

/** 說明:來自於手冊上的例子

**  父程序通過管道寫,子程序通過管道讀資料的簡單示例。**/

#include

#include

#include

#include

#include

#include

intmain(int argc, char *ar**)

cpid = fork();

if (cpid == -1)

if (cpid == 0) else }

[code]

#include

[/code]

APUE讀書筆記 高階程序通訊(管道)

假設我們要將乙個檔案的資料,通過more程式來顯示 但不希望建立臨時檔案,即先複製整個檔案,再用more來展示 我們可以把檔案的資料塞入乙個管道,more程式 由子程序excel啟動 讀這些資料,並顯示在螢幕上 和直接more乙個檔案有啥區別?include apue.h include defin...

APUE讀書筆記 14 程序關係 下

一 會話 會話是乙個或者多個程序組的集合,如下圖中乙個會話有三個程序組 會話中的程序組通常是由shell中的管道 進行連線的,比如上圖的安排可能是有如下命令形成的 p1 p2 p3 p4 p5,程序呼叫setsid函式可以建立乙個新會話。如果呼叫這個函式的程序不是乙個程序組的組長,那麼將會發生以下三...

APUE讀書筆記(2)

chapter4 file directory struct stat 檔案型別 用提供的巨集來判斷,如if s isdir buf.st mode uid和gid 檔案將其所有者的使用者id和組id記錄在stat結構的st uid和st gid 實際使用者id和實際組id用於標識使用者究竟是誰。這...