在程式中寫入和讀取檔案

2021-10-06 13:22:10 字數 2743 閱讀 1144

read 函式

#include

ssize_t read

(int fd,

void

*buf, size_t count)

;

read 函式中fd 是檔案標誌符,是open函式的返回值,第二個是無整型數的位址,第三個是讀取的個數。

write函式

#include

ssize_t write

(int fd,

const

void

*buf, size_t count)

;

write 函式中fd 是檔案標誌符,是open函式的返回值,第二個是無整型數的位址,第三個是寫入的個數。

1 #include 

2 #include

3 #include

4 #include

5 #include

6 #include

7int

main()

8;12 fd =

open

("./file1"

,o_rdwr);13

if(fd ==-1

)17printf

("file creat\n");

18printf

("fd = %d\n"

,fd);19

20int n_write =

write

(fd,buf,

strlen

(buf));

21printf

("n_write = %d"

,n_write);22

close

(fd)

;23 fd =

open

("./file1"

,o_rdwr|o_creat,

0600);

24int n_read =

read

(fd,readbuf,n_write);25

printf

("n_read = %d,readbuf:%s\n"

,n_read,readbuf);26

close

(fd);27

return0;

28}~~

~

在21行和22行中關閉和再次開啟檔案的操作是因為寫入完以後,游標已經在檔案末尾了,關閉和開啟 可以讓游標在前面,好讓讀取的操作進行,沒有這個操作,將讀不到任何東西,但是這個操作有點傻。後面會使用游標移動,直接將游標移到前面,更加快捷。

lseek函式的標頭檔案,以及引數

#include

#include

off_t lseek

(int fd, off_t offset,

int whence)

;

引數:

fd 表示要操作的檔案描述符

offset是相對於whence(基準)的偏移量

whence 可以是seek_set(檔案指標開始),seek_cur(檔案指標當前位置) ,seek_end為檔案指標尾。基於我們上一部分的游標移動,我們就可以將游標移動到開頭,就不用關閉和重新開啟檔案。

1 #include 

2 #include

3 #include

4 #include

5 #include

6 #include

7int

main()

8;12 fd =

open

("./file1"

,o_rdwr);13

if(fd ==-1

)17printf

("file creat\n");

18printf

("fd = %d\n"

,fd);19

20int n_write =

write

(fd,buf,

strlen

(buf));

21printf

("n_write = %d"

,n_write);22

//off_t lseek(int fd, off_t offset, int whence);

23int n_lseek =

lseek

(fd,0,

seek_set);

24int n_read =

read

(fd,readbuf,n_write);25

printf

("n_read = %d,readbuf:%s\n"

,n_read,readbuf);26

close

(fd);27

return0;

28}~

close

(fd)

; fd =

open

("./file1"

,o_rdwr|o_creat,

0600

);

這兩行**替換成

int n_lseek =

lseek

(fd,0,

seek_set

);

就能達到游標到檔案面前的目的。

完畢

檔案讀取和寫入

open 返回乙個檔案物件,open filename,mode f open workfile w 第乙個引數是包含檔名的字串,第二個引數可以是包含一些字元的字串 r 僅讀取檔案,w 僅寫入檔案,a 開啟檔案以進行新增的模式 r 開啟檔案進行讀取和寫入,模式引數是可選的。r 如果省略,將被假定。b...

檔案寫入和讀取

最近在提高自己程式設計能力,拿一些現實的小指令碼練下。該指令碼為python語言,主要涉及模組os。功能 將控制台輸入文字逐行儲存,和讀取。輸入逐行儲存 import os filename input please enter file name file open filename,w whil...

讀取和寫入plist檔案

plist檔案是標準的xml檔案,在cocoa中可以很簡單地使用。這裡介紹一下使用方法 以下 在mac和iphone中均適用。寫入plist檔案 nsmutabledictionary dict nsmutabledictionary alloc initwithcontentsoffile sam...