【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;
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
- 【Linux】使用read、write、lseek函数实现文件读写操作
- Linux C编程学习笔记(3):read、write、lseek函数及文件读写和文件读写指针的移动操作
- 【文件】Linux文件函数——read、write、lseek
- Linux基础编程-文件操作open,lseek,read,write,close
- Linux基础编程-文件操作open,lseek,read,write,close
- Linux基础编程-文件操作open,lseek,read,write,close
- linux文件操作open close read write lseek
- Linux 文件操作 open,lseek,read,write,close
- Linux 文件IO函数(open/close/read/write/lseek)
- 文件操作编程一(open、close、read、write、lseek函数的使用)
- read,write和lseek函数使用实例
- Linux C flie操作: open write read lseek close函数分析
- 文件I/O函数(open,read,write,lseek,close)
- linux文件操作函数(open、write、read、close)可用于串口读写
- linux下的open()read()write()close()lseek()函数
- Linux&C open creat read write lseek 函数用法总结
- Linux 文件系统调用函数open close read write lseek perror
- linux文件I/O编程 (open、read、write、lseek、close)
- 《linux 内核完全剖析》 include/asm/io.h
- Android Studio Beat版发布!
- 从前有座灵剑山--理想以及狂热(6)
- Android学习记录 之 字体
- 【原创】20大最活跃的敢死队营业部排名
- 【Linux】使用read、write、lseek函数实现文件读写操作
- android中minLines和maxLines的区别
- socket 发送与接收
- 一个TextView多种字体颜色,加超链接
- QT——自定义字符串格式
- ATS插件开发中内存泄露问题的解决方法探讨
- ant安装、环境变量配置及验证
- Android中Cursor类的概念和用法
- Leetcode: Simplify Path