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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 应对ddos攻击_网络安全主动攻击

    应对ddos攻击_网络安全主动攻击主要讲解Ddos攻击原理和实践操作

    2022年10月7日
    0
  • vscode安装java运行环境_vscode eclipse对比

    vscode安装java运行环境_vscode eclipse对比vscode中怎么搭建Java开发环境?下面本篇文章给大家介绍一下VSCode配置Java开发环境的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。配置Java开发环境主要参考官方教程:https://code.visualstudio.com/docs/java/java-tutorial1.先安装JDKJDK下载地址:https://www.oracle.com/java…

    2022年9月1日
    1
  • 提取pfx证书密钥对

    提取pfx证书密钥对两个测试证书test.pfx和test.cer.其中pfx证书包含RSA的公钥和密钥;cer证书用于提取pfx证书中密钥时允许当前电脑进行合法操作提取步骤如下:点击test.cer,安装cer证书2.从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足)(1)提取密钥对opensslpkcs12-intest.pfx-nocerts-nodes-outtest.key//如果pfx证书已加密,会提示输入密码。如果cer证书没有安装

    2022年5月31日
    54
  • MacPorts 安装与使用

    MacPorts 安装与使用MacPorts安装与使用安装修改安装源MacPorts使用MacPorts像brew一样,可以快速安装软件。安装在安装macports之前注意要保证当前系统已安装xcode且保持最新版本。https://www.macports.org/install.php官网地址查找对应的系统版本。找到对应版本的dmg安装包,下载后安装。在安装的过程中,会卡在运行软件包步骤。切记断网安装,不进行软件包的安装更新。如果卡在此安装步骤无法退出,可进行如下操作:1.在活动监视器找到对应的安装程序强制退

    2022年9月21日
    0
  • 管理系统源码下载_资产管理系统源码

    管理系统源码下载_资产管理系统源码spring源码mybatis源码hibernate源码struts源码下载spring源码下载地址:http://www.maixiaogang.commybatis源码下载地址:https://github.com/mybatis/mybatis-3/releaseshibernate源码下载地址:http://hibernate.org/orm/downloads/strut…

    2022年9月23日
    0
  • 编译原理实验一词法分析器_编译原理词法错误举例

    编译原理实验一词法分析器_编译原理词法错误举例编写一个词法分析程序

    2022年9月28日
    0

发表回复

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

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