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是什麼意...