UNIX網路程式設計 fork exec函式

2021-10-01 09:41:16 字數 656 閱讀 3246

exec

資料型別

說明標頭檔案

pid_t

一般為int,見這裡

fork(包括各種變體)是unix中派生新程序的唯一方法。

父程序呼叫fork之前開啟的所有描述符(fd)在fork之後由子程序共享。網路伺服器利用了這個特性:父程序呼叫accept後呼叫fork,所接受的已連線套接字隨後就在父程序與子程序之間共享;通常,子程序繼續讀寫該已連線套接字,父程序則關閉該已連線套接字(套接字描述符引用計數-1)

放在硬碟上的可執行程式檔案能被unix執行的唯一方法:由乙個現有程序呼叫六個exec函式中的某乙個。exec將當前程序映像替換為新的程式檔案,而且該新程式通常從main函式開始執行,該程序id不變。(呼叫exec的程序被稱為呼叫程序;新執行的程式被稱為新程式。)

待執行的程式檔案是由檔名(file)還是路徑名(pathname)指定;

新程式的引數是一一列出還是由乙個指標陣列來引用;

把呼叫程序的環境傳遞給新程序還是給新程式指定環境。

返回值:

程序在呼叫exec之前開啟的描述符通常跨exec繼續保持開啟。但是該預設行為可以通過fcntl設定fd_cloexec。

UNIX網路程式設計

在unix network programming 的 3.7 inet pton and inet ntop functions 中提到中有如下兩個巨集定義 define inet addrstrlen 16 for ipv4 dotted decimal define inet6 addrstr...

unix網路程式設計

任何tcp的實現都需要為msl選擇乙個合適的值,rfc的建議值是2分鐘。分組可能出現迷途,若迷途分組在msl中找到路,造成重複,tcp必須修復 time wait存在的理由 可靠的實現全雙工的連線和終止 考慮最終ack丟失的情況,允許老的重複分組在網路中消逝 tcp的化生身現象,因為time wai...

unix 網路程式設計 UDP

udp user datagram protocol 程式傳送資料給 udp socket,資料先被封裝成 udp資料報,然後又被封裝成ip資料報,然後被傳送到目標方。資料是否被正確傳輸無任何保證 是否到達目標方,是否按正確順序到達,是否目標方只收到乙份資料 每個udp資料報都有長度,這個長度包含在...