我們經常使用的讀寫函式是read()和write(),但是每次讀寫只能讀入或者寫入到乙個緩衝區,今天介紹另一種讀寫函式,可以一次呼叫,讀寫多個非連續緩衝區。
#include ssize_t readv(int fd,const struct iovec*iov,int iovcnt);
ssize_t writev(int fd,const struct iovec*iov,int iovcnt);
/* 引數說明:
fd:操作的檔案描述符
iov:操作的緩衝區陣列首位址
iov的結構體內容 :
struct iovec
iovcnt:表示iov結構體的數目。
返回值:成功則返回已讀或者已寫的位元組數,若出錯,則返回-1 */
眾所周知,(1)一次read的返回值可能少於所要求的資料長度,即使沒有到達檔案尾,這不是乙個錯誤,可能是因為訊號中斷,或者其他原因,此時我們應該繼續訪問檔案。(2)一次write的返回值可能少於所要求的資料長度,可能因為核心緩衝區滿等原因,這也不是乙個錯誤,我們也應該繼續訪問檔案。
而函式readn和writen將按照你所要求的資料長度不斷讀寫,直到達到你的要求(訊號中斷也可能導致返回值不是要求長度)。函式宣告如下:
Unix 環境變數
linux 下處理環境變數常見的幾個操作 env 顯示當前所有的環境變數 set 顯示當前bash下使用者自定義的變數和環境變數 export 把自定義的變數轉換成環境變數 環境表 unix 下的每乙個程式都會有一張環境表,其實我們可以想象,main函式使如下這種形式 int main int ar...
Unix環境變數 執行緒基礎
標頭檔案 include 返回值 若相等則返回非0值,否則返回0值 作用 判斷兩個執行緒id是否相等 pthread t pthread self void 標頭檔案 include 返回值 呼叫執行緒自身的執行緒id intpthread create pthread t tidp,const p...
《unix高階環境程式設計》程序環境 環境變數
環境字串一般表示如下 cpp view plain copy name value 環境變數名,環境變數值 以下根據對環境變數不同的操作得到不同的結果,包括獲取環境變數當前值,新增環境變數,修改環境變數和刪除環境變數 相對應的函式分別為getenv putenv setenv和unsetenv函式,...