真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言編程read函數(shù) c語言中read的用法

C語言中的read和write怎么用?

1、read和write是UNIX或者一些類UNIX系統(tǒng),比如LINUX系統(tǒng)中使用的,稱為LINUX系統(tǒng)函數(shù)。這種函數(shù)只能在特定的操作系統(tǒng)下使用,可移植性差。fread和fwrite是C庫函數(shù)。這種函數(shù)基本在任何操作系統(tǒng)都能使用,可移植性高。

莆田網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),莆田網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為莆田1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的莆田做網(wǎng)站的公司定做!

2、基礎(chǔ)知識(shí)介紹只介紹LINUX系統(tǒng)函數(shù),常用的有creat,open,close,read,write,lseek,access,一般用于文件編程

3、如何使用談到如何使用就必須說到另一個(gè)知識(shí),文件描述符(file

description),是一個(gè)非負(fù)數(shù)。

函數(shù)原型:int

read(int

fd,

const

void

*buf,

size_t

length)

功能:

從文件描述符fd所指向的文件中讀取length個(gè)字節(jié)到buf所指向的緩存區(qū)中,返回值為實(shí)際讀取的字節(jié)數(shù)

int

write(int

fd,

const

void

*buf,

size_t

length)

功能:

把length個(gè)字節(jié)從buf所指向的緩存區(qū)中寫到件描述符fd所指向的文件中,返回值為實(shí)際寫入的字節(jié)數(shù)

例子:

#define

LENGTH

1024

#define

BUFFES_SIZE

1024

int

n1,

n2;

int

fd1,

fd2;

int

buffer[BUFFES_SIZE];fd1

=

open(

"HEllo1.txt",

O_RDWR

|

O_CREAT,

O_IRUSE

|

O_IWUSR);

fd2

=

open(

"HEllo2.txt",

O_RDWR

|

O_CREAT,

O_IRUSE

|

O_IWUSR);

n1

=

read(

fd1,

buffer,

LENGTH);

n2

=

write(

fd2,

buffer,

n1);

C語言read函數(shù)

read內(nèi)部是調(diào)_read, _read的返回值在msdn中有這樣的描述

_read returns the number of bytes read, which might be less than count if there are fewer than count bytes left in the file or if the file was opened in text mode, in which case each carriage return–line feed (CR-LF) pair is replaced with a single linefeed character. Only the single linefeed character is counted in the return value. The replacement does not affect the file pointer.

注意這一段: in which case each carriage return–line feed (CR-LF) pair is replaced with a single linefeed character

就是說如果用text模式打開的話, 文件換行時(shí)可能在文本中有2個(gè)字符----換行和縮進(jìn)(CR-LF), 而在return的時(shí)候系統(tǒng)是把它作為1個(gè)回車符號(hào)('\n')所返回的. 所以會(huì)導(dǎo)致這個(gè)情況

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

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

表頭文件 #includeunistd.h

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

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

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

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


當(dāng)前名稱:c語言編程read函數(shù) c語言中read的用法
網(wǎng)頁地址:http://weahome.cn/article/ddoejis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部