C語言read函數(shù)源碼 c++read函數(shù)

linux下c語言編程read()函數(shù)的問題

返回-1的時候,要根據(jù)錯誤碼來判斷原因,請看下面的函數(shù)說明:

成都創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設計,網(wǎng)站制作、成都網(wǎng)站建設,網(wǎng)站設計,企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務,680元做網(wǎng)站,已為上1000+服務,成都創(chuàng)新互聯(lián)公司網(wǎng)站建設將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設、網(wǎng)絡營銷推廣服務!

表頭文件 #includeunistd.h

定義函數(shù) ssize_t read(int fd,void * buf ,size_t count);

函數(shù)說明 read()會把參數(shù)fd 所指的文件傳送count個字節(jié)到buf指針所指的內(nèi)存中。若參數(shù)count為0,則read()不會有作用并返回0。返回值為實際讀取到的字節(jié)數(shù),如果返回0,表示已到達文件尾或是無可讀取的數(shù)據(jù),此外文件讀寫位置會隨讀取到的字節(jié)移動。

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

錯誤代碼 EINTR 此調(diào)用被信號所中斷。 EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK),若無數(shù)據(jù)可讀取則返回此值。 EBADF 參數(shù)fd 非有效的文件描述詞,或該文件已關閉。

求編一個read的C語言函數(shù)

#includestdio.h

#includestring.h

int main()

{

char s[100];

int i;

FILE *fp;

fp = fopen("1.txt", "r");

printf("**********顯示學生信息************\n");

printf("學號 姓名 性別 年齡 C分數(shù) 數(shù)學分數(shù) 英語分數(shù)\n");

while(fscanf(fp, "%s", s) != EOF)

{

for(i = 0; i strlen(s); i++)

if(s[i]!='#') putchar(s[i]);

else printf(" ");

putchar('\n');

}

}

請問C語言的read()函數(shù),謝謝

有區(qū)別的

if(fd=open("tem.txt",O_RDWR)==-1)

這里的話是先運行open("tem.txt",O_RDWR)==-1這個的,這個的值是0或者1的‘

那么FD的值就不是文件的頭指針了

而下面的是先運行fd=open("tem.txt",O_RDWR

然后再將FD和-1作比較的

求標準C語言讀寫文件的源代碼

C語言讀寫文件 都是三個步驟

1.獲取文件描述符

2.對文件讀寫

3.關閉文件

對文件讀操作

//獲取文件指針

FILE?*pFile?=?fopen("1.txt","w");?//?文件打開方式?如果原來有內(nèi)容也會銷毀//向文件寫數(shù)據(jù)

fwrite?("hello",?//要輸入的文字

1,//文字每一項的大小?以為這里是字符型的?就設置為1?如果是漢字就設置為4

strlog("hello"),?//單元個數(shù)?我們也可以直接寫5

pFile?//我們剛剛獲得到的地址

);

//fclose(pFile);?//告訴系統(tǒng)我們文件寫完了數(shù)據(jù)更新,但是我們要要重新打開才能在寫

fflush(pFile);?//數(shù)據(jù)刷新?數(shù)據(jù)立即更新

對文件寫操作

FILE?*pFile=fopen("1.txt","r");?//獲取文件的指針

char?*pBuf;??//定義文件指針

fseek(pFile,0,SEEK_END);?//把指針移動到文件的結(jié)尾?,獲取文件長度

int?len=ftell(pFile);?//獲取文件長度

pBuf=new?char[len+1];?//定義數(shù)組長度

rewind(pFile);?//把指針移動到文件開頭?因為我們一開始把指針移動到結(jié)尾,如果不移動回來?會出錯

fread(pBuf,1,len,pFile);?//讀文件

pBuf[len]=0;?//把讀到的文件最后一位?寫為0?要不然系統(tǒng)會一直尋找到0后才結(jié)束

MessageBox(pBuf);??//顯示讀到的數(shù)據(jù)

fclose(pFile);?//?關閉文件

c語言 write()、read()函數(shù)原型

把指定數(shù)量的數(shù)據(jù)寫入文件,若成功則返回寫入的字節(jié)數(shù),否則返回-1

int _write( int handle, const void *buffer, unsigned int count );

這個例子中把字符串“hello”寫入文件sample.txt中:

int Handle; char String[ ]="hello";

Handle = _open("sample.txt",_O_RDWR|_O_CREAT);

_write(Handle,String,sizeof(String));

_close(Handle);

從一個文件讀取數(shù)據(jù)

int _read( int handle, void *buffer, unsigned int count );

這個例子中打開文件eof.c,每次讀取10個字節(jié),直到全部字節(jié)被讀完為止,然后顯示文件的長度:

void main( void ) {

int fh, count, total = 0;

char buf[10];

if( (fh = _open( "eof.c", _O_RDONLY )) == - 1 ) {

perror( "Open failed");

exit( 1 );

}

while( !_eof( fh ) ) {

if( (count = _read( fh, buf, 10 )) == -1 ) {

perror( "Read error" );

break;

}

total += count;

}

printf( "Number of bytes read = %d\n", total );

_close( fh );

}

C中read()的用法?

read()函數(shù)的原型是int read(int fd,void *buf,int count);。它的功能是“從文件說明符fd相關聯(lián)的文件中讀取count個字符,并把這些字符存儲到buf所指的緩沖區(qū)中。返回值是操作成功時所讀到的字節(jié)數(shù),在文件結(jié)束時可能少于count個字節(jié);若返回值為-1則說明出錯了,返回0則表示到達文件尾端。例:從文件ABC.txt中讀取前100個字節(jié)存入數(shù)組buffer中——

#include "stdin.h"

#include "io.h"

#include "fcnt1.h"

int main(void){

int fd;

char buffer[100];

if((fd=open("ABC.txt",O_RDONLY))==-1){

printf("Can't open file.\n");

exit(-1);

}

if(read(fd,buffer,100)!=100)

printf("Possible read error!\n");

}

本文標題:C語言read函數(shù)源碼 c++read函數(shù)
標題來源:http://muchs.cn/article0/docosoo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、移動網(wǎng)站建設全網(wǎng)營銷推廣、面包屑導航、營銷型網(wǎng)站建設微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司