【Linux】使用read、write、lseek函数实现文件读写操作

来源:互联网 发布:淘宝规格怎么填写 编辑:程序博客网 时间:2024/06/05 02:10

本文章主要讲述Linux环境下文件的读写操作,使用到的函数有open、read、write、lseek。
open:用于打开或者创建文件。
read:从文件中读指定字节的数据到内存中。
write:讲内存中数据写入到文件中。
lseek:可以改变当前文件偏移量。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>

int main()
{
char read_file[] = "/home/imx/shares/open/read.bmp";
char write_file[] = "/home/imx/shares/open/write.bmp";
int file_len = 0;
int file_total = 0;
int read_len = 0;
char buf[1024] = {0};
int read_fd = open(read_file,O_RDWR);
int write_fd = open(write_file,O_RDWR|O_TRUNC |O_CREAT,00777);
if(read_fd < 0 || write_fd < 0 )
{
printf("file open error\n");
return 1;
}
file_len = (int)lseek(read_fd,0,SEEK_END);//get file total size
file_total = file_len;
printf("file_total:%d\n",file_total);
lseek(read_fd,0,SEEK_SET);
printf("read start\n");
while(read_len = read(read_fd,buf,1024))//file read
{
write(write_fd,buf,read_len);//file write
file_len = file_len - read_len;
memset(buf,0,1024);
}
printf("read and write end\n");
if(file_len != 0)//check file read write
{
close(read_fd);
close(write_fd);
printf("error:read!=write\n");
return 1;
}
close(read_fd);
close(write_fd);
return 0;

}


0 0