read()函數(shù)用于從文件描述符中讀取數(shù)據(jù)。函數(shù)原型如下:
fd為文件描述符,用于指定要讀取的文件;
buf存儲(chǔ)讀取數(shù)據(jù)的緩沖區(qū);
count指定最多能讀取到的字節(jié)數(shù),為無(wú)符號(hào)整數(shù)類型,數(shù)據(jù)緩沖區(qū)至少應(yīng)有count個(gè)字節(jié);
有多種情況可能導(dǎo)致實(shí)際讀到的字節(jié)數(shù)小于要求讀的字節(jié)數(shù):
一、普通文件:讀到要求的字節(jié)數(shù)前到達(dá)文件尾;
二、從終端設(shè)備讀?。和ǔR淮沃荒茏x一行;
三、從網(wǎng)絡(luò)讀?。壕W(wǎng)絡(luò)的緩沖機(jī)制可能造成返回值小于要求讀的;
四、從管道或FIFO讀?。喝艄艿腊淖止?jié)小于要求讀的;
五、當(dāng)一個(gè)信號(hào)造成中斷,而已經(jīng)讀了部分?jǐn)?shù)據(jù)量時(shí);
代碼示例: