在linux中read、write函数
read函數(shù)從打開的設(shè)備或文件中讀取數(shù)據(jù)。
#include<</span>unistd.h>
ssize_t read(intfd,void*buf,size_t
count);
描述:參數(shù)count是請(qǐng)求讀取的字節(jié)數(shù),讀上來的數(shù)據(jù)保存在緩沖區(qū)buf中,同時(shí)文件的當(dāng)前讀寫位置向后移。(注意:這個(gè)讀寫位置和使用C標(biāo)準(zhǔn)I/O庫時(shí)的讀寫位置有可能不同,這個(gè)讀寫位置是記在內(nèi)核中的,而使用C標(biāo)準(zhǔn)I/O庫時(shí)的讀寫位置是用戶空間I/O緩沖區(qū)中的位置。)
返回值:若成功返回讀到的字節(jié)數(shù);若已到達(dá)文件結(jié)尾返回0;若出錯(cuò)返回-1;
注:有多種情況會(huì)出現(xiàn)實(shí)際讀到的字節(jié)數(shù)少于要求讀的字節(jié)數(shù)(count)。
●讀普通文件時(shí),在讀到要求的字節(jié)數(shù)(count)之前已到達(dá)了文件尾端。
●從終端設(shè)備讀,通常以行為單位,一次最多讀一行,讀到換行符就返回了。
●從網(wǎng)絡(luò)讀,根據(jù)不同的傳輸層協(xié)議和內(nèi)核緩存機(jī)制,網(wǎng)絡(luò)中的緩沖機(jī)構(gòu)可能造成返回值可能小于請(qǐng)求的字節(jié)數(shù)。
write函數(shù)向打開的設(shè)備或文件中寫數(shù)據(jù).
#include<</span>unistd.h>
ssize_t write(intfd,constvoid*buf,size_t
count);
寫常規(guī)文件時(shí),write的返回值通常等于請(qǐng)求寫的字節(jié)數(shù)count,而向終端設(shè)備或網(wǎng)絡(luò)寫則不一定。
返回值:若成功返回寫入到設(shè)備或文件中的字節(jié)數(shù);若失敗返回-1;
總結(jié)
以上是生活随笔為你收集整理的在linux中read、write函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无条件极值与条件极值
- 下一篇: 如何把SAP CRM WebClient