read[函式]

read[函式]
read[函式]
更多義項 ▼ 收起列表 ▲

read是一個計算機函式,可以用來從檔案中讀取內容。read()會把參數fd 所指的檔案傳送count個位元組到buf指針所指的記憶體中。

函式名

函式名: read

功 能: 從檔案中讀

用 法: int read(int handle, void *buf, int nbyte);

程式例:

#include

#include

#include

#include

#include

#include

int main(void)

{

void *buf;

int handle, bytes;

buf = malloc(10);

/*

Looks for a file in the current directory named TEST.$$$ and attempts

to read 10 bytes from it. To

*/

if ((bytes = read(handle, buf, 10)) == -1) {

printf("Read Failed.\n");

exit(1);

}

else {

printf("Read: %d bytes read.\n", bytes);

}

return 0;

函式

函式聲明:istream& read( char *buffer, streamsize number );

參數說明:

buffer:指向緩衝區的字元指針

number:要讀多少個位元組,不能大於buffer指向的緩衝區

函式讀到檔案尾或讀夠number個符,函式終止。

示例:

/*********************************************

*讀取windows系統下的win.ini檔案,並顯示*

**********************************************/

#include <iostream>

#include <fstream>//read函式所有的頭檔案

#include <Windows.h>

#include <string>

int main()

{

char buffer[100];

char winFilePath[MAX_PATH];

GetWindowsDirectoryA(winFilePath,MAX_PATH);

strcat(winFilePath,win_ini檔案名稱); //得到win.ini檔案絕對路徑

std::ifstream win_ini(winFilePath,std::ios::in|std::ios::binary);//構造時關聯檔案

if(!win_ini 。is_open())

{

std::clog<<"打開檔案失敗"<<std::endl;

exit(0);

}

while(!win_ini.eof())

{

win_ini.read(buffer,99);

buffer[win_ini.gcount()]="\0";//read函式不會在讀入的位元組中加入

std::cout<<buffer;

}

std::cout<<std::endl;

win_ini.close();

return 1;

}

LinuxC函式

read(由已打開的檔案讀取數據)

相關函式

readdir,write,fcntl,close,lseek,readlink,fread

表頭檔案

#include<unistd.h>

定義函式

ssize_t read(int fd,void * buf ,size_t count);

函式說明

read()會把參數fd 所指的檔案傳送count個位元組到buf指針所指的記憶體中。若參數count為0,則read為實際讀取到的位元組數,如果返回0,表示已到達檔案尾或是無可讀取的數據,此外檔案讀寫位置會隨讀取到的位元組移動。

附加說明

如果順利read()會返回實際讀到的位元組數,最好能將返回值與參數count 作比較,若返回的位元組數比要求讀取的位元組數少,則有可能讀到了檔案尾、從管道(pipe)或終端機讀取,或者是read()被信號中斷了讀取動作。當有錯誤發生時則返回-1,錯誤代碼存入errno中,而檔案讀寫位置則無法預期。

錯誤代碼

EINTR 此調用被信號所中斷。

EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK == 非阻塞),若無數據可讀取則返回此值。

EBADF 參數fd 非有效的檔案描述詞,或該檔案已關閉。

相關詞條

相關搜尋

熱門詞條

聯絡我們