文件的读写

来源:互联网 发布:java图形界面时间控件 编辑:程序博客网 时间:2024/04/30 13:44

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;

}

0 0
原创粉丝点击