檔案的讀寫
**
#include
#include
#include
#include
#include
#include
#include
#define buffsize 512
#define msg "hhhh9999"
intmain
(int main,
char
* ar**)
printf
("open file return :%d\n"
,fd)
; rv =
write
(fd, buf,
strlen
(msg));
if(rv<0)
printf
("write file %d bytes\n"
,rv)
;//memset(buf, 0, sizeof(buf)); //記憶體清零
lseek
(fd,0,
seek_set);
rv =
read
(fd, buf,
sizeof
(buf));
if(rv<0)
printf
("read file %d bytes :%s\n"
, rv, buf)
;cleanup:
close
(fd)
;return0;
}
執行結果:
tianyujie@icloud-
1st:
~$ gcc cp.c
tianyujie@icloud-
1st:
~$ .
/a.out
open file return:3
write file 8 bytes
read file 8 bytes :hhhh9999
tianyujie@icloud-
1st:
~$
我犯的錯誤:
忘記在write時把msg傳給buf,導致text.txt裡全是亂碼。
prerror()與strerror(errno) 作用一樣,都是返回錯誤。但是strerror(errno)能返回具體錯誤原因,好用一點。
open()函式可以建立或開啟乙個檔案。
int fd =-1
;fd =
open
("test.txt"
, o_rdwr | o_trunc | o_creat,0666
);
第乙個引數:檔案的絕對路徑
第二個引數:函式的具體作用
oflag
作用o_wronly
只寫o_rdwr
讀寫o_rdonly
只寫o_creat 如果檔案不存在,則建立該檔案
o_trunc 如果此檔案存在,而且為 只寫 或 讀-寫 成功開啟,則將其長度截斷為0
第三個引數:給檔案許可權(也可省略)
open的返回值為最小未用檔案描述符
write()系統呼叫,
第乙個引數是文集描述符fd,第二個引數是要寫的內容,第三個引數是要寫的位元組數;
此函式是將 buf 裡的內容傳給 fd 。
read()系統呼叫,
第乙個引數是文集描述符fd,第二個引數是要讀的內容,第三個引數是要讀的位元組數;
此函式是將 fd 的內容傳給 buf 。
如果read成功,返回獨到的位元組數。如果讀到檔案的尾端,返回 0。
若在到達文件尾端之前有30位元組,而要求讀100位元組,則read返回 30 。下次呼叫read時,返回 0 。
Linux下C語言的檔案操作
檔案的讀寫 include include include include include include include define buffsize 512 define msg hhhh9999 intmain int main,char ar printf open file return...
Linux下C語言程式設計 檔案的操作
linux下c語言程式設計 檔案的操作 linux下c語言程式設計 執行緒操作 2001 05 08 11 43 15 linux下c語言程式設計 程序通訊 訊息管理 2001 05 08 11 38 03 linux下c語言程式設計 訊號處理函式 2001 05 08 11 35 28 linux...
linux下c語言 讀取檔案
linux讀取檔案要用到stdio.h檔案,在 usr include下包含大部分的c標頭檔案,sys types.h也位於其中,usr src linu 版本號 存放有你的核心源 在linux下讀檔案也是fopen 檔名 方式 方式有r,w等,下面為一段讀檔案的 cat 7 3.c 1 inclu...