一、read——讀操作
1.原函數
表頭文件
#include "unistd.h"
定義函數
ssize_t read(int fd,void *buf, size_t count);
函數説明 read()會把參數fd 所指的文件傳送count個字節到buf指針所指的內存中
fd——文件的描述詞
buf——欲讀數據緩衝區
count——欲讀字節數
返回值——讀取成功返回讀取的字節數。出錯返回-1,錯誤代碼存入errno,如果在調read之前光標已到達文件末尾,則這次read返回0
2.示例
最後例程演示
二、write——寫操作
1.原函數
表頭文件
#include "unistd.h"
定義函數
ssize_t write(int fd, const void *buf, size_t count);
函數説明 write()會把參數buf所指的內存寫入count個字節到參數fd所指的文件內,注意:從光標位置開始寫入
fd——文件的描述詞
buf——欲寫入數據緩衝區
count——欲寫入字節數
返回值寫入成功返回寫入的字節數。錯誤返回-1,錯誤代碼存入errno中
2.示例
最後例程演示
文件例程演示
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fd = open("filef", O_RDWR | O_CREAT,0600);//打開filef文件
char *arg="Hello World";
int wri=write(fd,arg,strlen(arg));//從arg裏拿strlen(arg)個字節寫入fd對應的文件
printf("wirte succeed,wri=%d\n",wri);//輸出寫入的字節數
lseek(fd,0,SEEK_SET);//把光標移動到文件首,方便下一步的讀取操作
char data[30]={'\0'};
int len=read(fd,data,30);//從fd對應的文件讀30個字節到data數組
printf("read succeed,len=%d,data=%s\n",len,data);//輸出讀取字節數和讀取的內容
close(fd);//關閉文件
return 0;
}
運行結果:wirte succeed,wri=11
read succeed,len=12,data=Hello World