- read函数:
- 功能:从
文件fd
中读取count个字节
,存放进指针buf
; - 具体内容:
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
/*
参数:
fd: 文件描述符
buf: 用来存储读取内从的缓冲区的首地址
count: 想要读取的字节数
返回值:
成功 实际读取的字节数,且读到文件结尾会返回0
失败 -1 重置错误码
*/
- write函数:
- 功能:把
指针buf
中的内容,写count个字节
到文件fd
中; - 具体内容:
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
/*
参数:
fd: 文件描述符
buf: 要写入的数据的首地址
count: 想要写入的字节数
返回值:
成功 实际写入的字节数 (如果返回0,则表示没有写入内容)
失败 -1 重置错误码
*/
- 示例代码:
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, const char *argv[]){
if(3 != argc){
printf("Usage : %s src_file dest_file\n",argv[0]);
return -1;
}
int fd1 = open(argv[1],O_RDONLY);
if(-1 == fd1)
{
perror("open error");
return -1;
}
int fd2 = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0666);
if(-1 == fd2)
{
perror("open error");
return -1;
}
int ret = 0;
char buff[128] = {0};
while(0 < (ret = read(fd1,buff,sizeof(buff)))){
write(fd2,buff,ret);
}
close(fd1);
close(fd2);
return 0;
}
文章来源地址https://www.toymoban.com/news/detail-732321.html
文章来源:https://www.toymoban.com/news/detail-732321.html
到了这里,关于IO学习系列之使用read和write复制文件内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!