一、程序間通訊本質
父子程序共用核心,中間需要一塊buf的區域連線來通訊。
二、管道
1.只作用於有血緣關係的程序之間
2.pipe函式建立管道,mkfifo 命令也可以建立管道
3.管道為雙向半雙工通訊
4.實現原理:核心借助環形佇列機制,使用核心緩衝區實現
①它是偽檔案 ②管道中資料只能一次讀取 ③資料在管道中單向流動 ④資料不可反覆讀 ⑤自己寫,不能自己讀
5.pipe函式
①建立並開啟管道
②int pipe(int fd[2]) fd[0]:讀端 fd[1]:寫端
返回值: 成功:0 失敗:-1
6.管道的讀寫行為
①讀管道
a.管道有資料:read返回實際讀到的值
b.管道無資料:i.無寫端:read返回0(just like 讀到檔案尾)
ii。有寫端:read阻塞等待
②寫管道
a.無讀端:異常終止:sigpipe訊號導致
b.有讀端:i.管道已滿:阻塞等待 ii:管道未滿:返回寫出的位元組個數
6.管道緩衝區
①大小:預設1024
liyiheng@liyiheng-pc:
~/learngit/teamb/liyiheng/linuxc$ ulimit -a
core file size (blocks,
-c)0
data seg size (kbytes,
-d) unlimited
scheduling priority (
-e)0
file size (blocks,
-f) unlimited
pending signals (
-i)30863
max locked memory (kbytes,
-l)64
max memory size (kbytes,
-m) unlimited
open files (
-n)1024
pipe size (
512 bytes,
-p)8
posix message queues (bytes,
-q)819200
real-time priority (
-r)0
stack size (kbytes,
-s)8192
cpu time (seconds,
-t) unlimited
max user processes (
-u)30863
virtual memory (kbytes,
-v) unlimited
file locks (
-x) unlimited
php程序間通訊 yoc PHP程序間通訊
php是用c編寫的,因此它對系統底層api的操作與c很像,同大多數語言一樣,php程序間通訊的方式有以下幾種 訊息佇列,管道,共享記憶體,socket和訊號。本文是對這幾種通訊方式對整理 管道通訊pipe 管道用於承載簡稱之間的通訊資料。為了方便理解,可以將管道比作檔案,程序a將資料寫到管道p中,然...
程序間通訊
實現程序間資料共享除了常用的記憶體檔案對映外,對於一些非檔案的資料共享可以直接使用wm copydata。如果需要在程序a傳遞資料到程序b,簡單的實現如下 在程序a中 cstring strdatatosend t hello 需要傳遞的資料 hwnd hwndreceived 程序b的接收資料視窗...
程序間通訊
最近做專案遇到奇怪的問題,我在主線程中建立乙個工作執行緒。在工作執行緒中用sendmessage向主線程傳送訊息,通知主線程操作office 物件。getactiveobject時提示 hr 0x8001010d 因為應用程式正在傳送乙個輸入同步呼叫,所以無法執行傳出的呼叫。我把sendmessag...