請問C語言的read 函式,謝謝

2022-02-14 18:02:04 字數 3678 閱讀 8302

1樓:匿名使用者

有區別的

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作比較的

2樓:匿名使用者

你看看你的前面的一條語句少了一對括號啊。

linux下c語言程式設計read()函式的問題

3樓:匿名使用者

返回-1的時候,要根據錯誤碼來判斷原因,請看下面的函式說明:

表標頭檔案 #include

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

函式說明 read()會把引數fd 所指的檔案傳送count個位元組到buf指標所指的記憶體中。若引數count為0,則read()不會有作用並返回0。返回值為實際讀取到的位元組數,如果返回0,表示已到達檔案尾或是無可讀取的資料,此外檔案讀寫位置會隨讀取到的位元組移動。

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

錯誤** eintr 此呼叫被訊號所中斷。 eagain 當使用不可阻斷i/o 時(o_nonblock),若無資料可讀取則返回此值。 ebadf 引數fd 非有效的檔案描述詞,或該檔案已關閉。

4樓:匿名使用者

呼叫perror看原因

5樓:匿名使用者

原始碼貼出來。也好看看嘛,不然別人都沒辦法知道你什麼出錯了

6樓:匿名使用者

man read, 看看文件怎麼說阿

7樓:匿名使用者

read 什麼?

nonblock?

linux中用c語言程式設計,有個關於管道的read(x,y,z)的函式,第三個引數是什麼意思?

8樓:匿名使用者

#include

ssize_t read(int filedes, void *buff, size_t nbytes) ;

// 引數:

// filedes可以指定輸入源,

// buff為緩衝區首地址,

// nbytes為緩衝區的大小,即位元組數// 返回:讀到的位元組數<=nbytes,若已到檔案尾為 0,若出錯為 -1

9樓:

read(fd, *buff,length);

fd是檔案句並,buff是一個char指標,用來儲存你讀的資料的.length是你希望讀的長度

10樓:

man 2 read

沒有的話,安裝開發man包

c語言中read函式的詳細解說?

11樓:寶於唄嶯

read函式(fread)。 read函式負責從檔案控制代碼中讀取指定數量的位元組,並將這些位元組放在標量型變數中。讀者如果熟悉c的標準i/o函式fread的話,就會發現read函式也是以相同方式處理i/o緩衝的。

為了提高效率,read函式並不是一次讀取一個位元組,而是讀取一塊資料並儲存到臨時儲存區中。然後,c的fread函式與perl的read函式會從臨時緩衝區將資料一次一個位元組地傳送給程式。(sysread函式可用於模擬c的底層i/o函式read。

)該函式會返回讀取的位元組總數;或者在發生錯誤時,返回未定義的數字。如果碰到了eof(檔案結束符),則返回0。 print函式(而不是write函式)負責輸出read函式返回的實際位元組。

print函式類似於c中的fwrite函式。

c語言read函式

12樓:巽

read()函式是檔案操作函式

在c語言中很重要,

函式的返回值如下:

(1)如果成功,返回讀取的位元組數;

(2)如果出錯,返回-1並設定errno;

(3)如果在調read函式之前已是檔案末尾,則返回0

13樓:

read函式(fread)。

read函式負責從檔案控制代碼中讀取指定數量的位元組,並將這些位元組放在標量型變數中。讀者如果熟悉c的標準i/o函式fread的話,就會發現read函式也是以相同方式處理i/o緩衝的。為了提高效率,read函式並不是一次讀取一個位元組,而是讀取一塊資料並儲存到臨時儲存區中。

然後,c的fread函式與perl的read函式會從臨時緩衝區將資料一次一個位元組地傳送給程式。(sysread函式可用於模擬c的底層i/o函式read。)該函式會返回讀取的位元組總數;或者在發生錯誤時,返回未定義的數字。

如果碰到了eof(檔案結束符),則返回0。

print函式(而不是write函式)負責輸出read函式返回的實際位元組。print函式類似於c中的fwrite函式。

c語言 write()、read()函式原型

14樓:匿名使用者

把指定數量的資料寫入檔案,若成功則返回寫入的位元組數,否則返回-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);

從一個檔案讀取資料

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

這個例子中開啟檔案eof.c,每次讀取10個位元組,直到全部位元組被讀完為止,然後顯示檔案的長度:

void main( void )

while( !_eof( fh ) )

total += count;

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

_close( fh );}

15樓:竹竹風子

write: int write(int fd, char * buf, unsigned count);

read: int read(int fd, char * buf, unsigned count);

c語言socket程式設計read()函式問題 200

16樓:丶看我會發光

socket是有位元組傳輸上限的,就是一個資料包的資料量是有最大限度的你的txt肯定很小,**就大了,解決方案就是你分包傳送,就是一次發固定的位元組數,然後加標誌位判斷是否接受完成,將接受的資料放到快取,這樣就能完成你要的功能了

c語言pow函式,C語言pow函式

pow 函式用來求x的y次冪,x y及函式值都是double型 其原型為 double pow double x,double y 例項 如下 include include void main double x 2,y 10 printf f n pow x,y return 0 擴充套件資料 在...

c語言函式的定義問題,C語言函式的定義問題

void就是沒有返回值,不需要return 是否需要返回值是由你的需求決定的。陳恩點在此為你解答如有錯誤請見諒 不是沒有返回值 是void 不能有返回值 include int f int i int main 第一個void表示沒有該函式沒有需要帶回的資料 當你的函式當中需要呼叫了某個函式,但是你...

c語言swith函式,c語言 這個函式怎麼用switch語句來寫?

你用的工具報錯 在每段錯誤資訊後面都寫的很清楚 什麼錯誤 錯在哪 大哥,switch 是這樣寫的,不是 swith 沒看出來那少,是不是輸入法不對啊。你統一用英文輸入法把分號都改一遍試試。呵呵,學c語言得比女人還要小心啊,你用的什麼系統,關鍵字顏色都不一樣的,不清楚嗎 c語言中的switch是什麼意...