从一个文件中分离出一个新文件

该C语言程序打开两个文件,一个原始文件和一个新文件。它接收命令行参数,包括偏移量和长度,然后从原始文件的指定偏移位置读取特定长度的内容,并将其写入新文件。使用fseek和fread函数进行文件操作,最后关闭文件。
摘要由CSDN通过智能技术生成
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<errno.h>
 
int main(int argc, char **argv)
{
	printf("Original file %s\n",argv[1]);//原始文件名。从原文件中特点偏移截取一定长度。
	printf("new file %s\n",argv[2]);//新文件名
	printf("offset %d\n",atoi(argv[3]));//偏移
	printf("longth %d\n",atoi(argv[4]));//长度
	
	FILE* Original_file = fopen(argv[1], "rb");
	FILE* new_file = fopen(argv[2], "wb+");
	int file_offset=atoi(argv[3]);
	int file_len=atoi(argv[4]);
	//printf("---start----\n");
	unsigned char file_buf[512*1024]={0};
	if (Original_file == NULL)
	{
		printf("%s\n", strerror(errno));
		return 0;
	}
	//开始多次读取
	//定位指针:比如要读取从头开始向后偏移 0x40000 个单位的一个字符
	fseek(Original_file, file_offset, SEEK_SET);
	fread(file_buf, 1, file_len, Original_file);//读取512*1024
	fwrite(file_buf, 1, file_len, new_file);
	
	
	printf("---end----\n");
 
	fclose(Original_file);
	fclose(new_file);
	Original_file = NULL;
	new_file=NULL;
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值