#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;
}
从一个文件中分离出一个新文件
最新推荐文章于 2024-05-15 18:57:59 发布
该C语言程序打开两个文件,一个原始文件和一个新文件。它接收命令行参数,包括偏移量和长度,然后从原始文件的指定偏移位置读取特定长度的内容,并将其写入新文件。使用fseek和fread函数进行文件操作,最后关闭文件。
摘要由CSDN通过智能技术生成