1.read函数:从打开的文件中读取数据
#include<unistd.h>
ssize_t read(int fd,void *buf,size_t count);
返回值:读到的字节数,若已到文件尾返回0,若出错为-1.
fd 表示要进行读操作的文件的描述符
buf 指向缓冲区的指针,存放将要读取到的终端的数据
count 本次操作将要读取的字节数
2.write函数
#include<inistd.h>
ssize_t write(int fd,void *buf,size_t count);
返回值:若成功则返回已写的字节数,出错返回-1;
函数返回值通常与count的值相同,否则表示出错;
(write出错的一个常见原因就是磁盘已经写满,或者超过了长度限制)
write函数例子:
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define FILENAME "/home/swxc/txt.txt"//要操作的文件名
#define SIZE 80 //定义缓冲区大小
#define FLAGS O_RDWR|O_APPEND//定义参数flags,向文件添加内容时从文件尾开始写
int main(void)
{
int count;
int fd;//文件描述符
char write_buf[SIZE];//写缓冲区
const char *pathname=FILENAME;//文件路径名
if((fd=open(patjname,FLAGS))==-1)
{
printf("error,open file failed!\n");
exit(1);//出错退出
}
printf("OK,open file successful!\n");
printf("Begin write:\n");
gets(write_buf);
count=strlen(write_buf);//要写入的字节数
if(write(fd,write_buf,count)==-1)
{
printf("error,write file failed!\n");
exit(1);
}
printf("OK,write %d strings to file!\n",count);
return 0;
}