linux下的文件io编程实现文件的拷贝[通俗易懂]

linux下的文件io编程实现文件的拷贝[通俗易懂]/*copy_file.c*/#include#include#include#include#include#include#define BUFFER_SIZE 1024 /*每次读写缓存大小,影响运行效率*/#defineSRC_FILE_NAME “src_file” /*源文件名*/#defineDEST_FILE_NAME “dest_

大家好,又见面了,我是你们的朋友全栈君。

/* copy_file.c */

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>

#define	BUFFER_SIZE	1024		/* 每次读写缓存大小,影响运行效率*/
#define SRC_FILE_NAME	"src_file"	/* 源文件名 */
#define DEST_FILE_NAME	"dest_file"	/* 目标文件名文件名 */
#define OFFSET		10240		/* 拷贝的数据大小 */
 	
int main()
{
	int src_file, dest_file;
	unsigned char buff[BUFFER_SIZE];
	int real_read_len;
	
	/* 以只读方式打开源文件 */
	src_file = open(SRC_FILE_NAME, O_RDONLY);
	
	/* 以只写方式打开目标文件,若此文件不存在则创建, 访问权限值为644 */
	dest_file = open(DEST_FILE_NAME, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
	
	if (src_file < 0 || dest_file < 0)
	{
		printf("Open file error\n");
		exit(1);
	}
	
	/* 将源文件的读写指针移到最后10KB的起始位置*/
	lseek(src_file, -OFFSET, SEEK_END);
	
	/* 读取源文件的最后10KB数据并写到目标文件中,每次读写1KB */
	while ((real_read_len = read(src_file, buff, sizeof(buff))) >
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136264.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月4日 下午1:40
下一篇 2022年5月4日 下午2:00


相关推荐

  • Claude Code+GLM 5 安装配置与10个快速上手技巧!

    Claude Code+GLM 5 安装配置与10个快速上手技巧!

    2026年3月12日
    3
  • 图文详解mina框架

    图文详解mina框架ApacheMinaSe 是一个网络通信应用框架 也就是说 它主要是对基于 TCP IP UDP IP 协议栈的通信框架 当然 也可以提供 JAVA 对象的序列化服务 虚拟机管道通信服务等 Mina 可以帮助我们快速开发高性能 高扩展性的网络通信应用 Mina 提供了事件驱动 异步 Mina 的异步 IO 默认使用的是 JAVANIO 作为底层支持 操作的编程模型 Mina 主要有 1 x 和

    2026年3月19日
    3
  • server2003怎么进入安全模式_windows2003server

    server2003怎么进入安全模式_windows2003serverWINDOWS SERVER 2003 上出现 超过响应缓冲区限制 错误,如何解决?Response 对象 错误 ASP 0251 : 80004005超过响应缓冲区限制/py11g/list.asp,行 0此 ASP 页的执行造成响应缓冲区超过其配置限制。我要RESPONSE.WRITE 的数据量的确非常大,但是必须回写的,如何更改设置或者程序 ———————–

    2022年8月31日
    7
  • 京东云发起OpenClaw免费安装活动,现场送出实体小龙虾

    京东云发起OpenClaw免费安装活动,现场送出实体小龙虾

    2026年3月14日
    2
  • 最简单的纯js实现点击展开二级菜单功能

    最简单的纯js实现点击展开二级菜单功能虽然,jQuery已经非常好用了,但是实际的开发项目中,还是有很多限制,比如项目组奇葩的要求,不能使用任何插件,当然,也是考虑插件占用资源,毕竟100+KB对与小型项目来说还是非常大的。我最近就遇到做个点击展开二级菜单的要求,当然只能用原生的JS去写来实现,我借鉴了网上的一个案例,补充一下,分享一下:如果,默认打开页面进来时二级菜单是隐藏的,需要点击才能展现二级菜单,再点击就是隐藏二级菜单。这

    2022年5月11日
    53
  • (一)JMeter性能测试,完整入门篇:性能测试操作步骤

    (一)JMeter性能测试,完整入门篇:性能测试操作步骤原文转自 https blog csdn net lovesoo article details Jmeter 简介 ApacheJMeter 是一款纯 java 编写负载功能测试和性能测试开源工具软件 相比 Loadrunner 而言 JMeter 小巧轻便且免费 逐渐成为了主流的性能测试工具 是每个测试人员都必须要掌握的工具之一 本文为 JMeter 性能测试完整入门篇 从 Jmeter 下载安装到编写一个完整性能测试脚本 最终执行性能测试并分析性能测试结果 运行环境为 Windows

    2026年3月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号