c语言,拷贝文件,分5个文件进行存储、盗墓者是个丑奴儿

2024-01-12 03:59

本文主要是介绍c语言,拷贝文件,分5个文件进行存储、盗墓者是个丑奴儿,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//盗墓者是个丑奴儿,原

//博主个人网站 :https://daomu.kaige123.com

//打完一波小广告,进入正题

 

//头文件引入

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

 

//解决思路:先读取了总内容,存储入数组,在通过下标控制每一份写入每个文件之中。

//这里更好的做法是使用偏移量lseek,去读取不同地的字节。想要简便,就使用了简单的做法

 

//变量,做a1.txt,a2.txt,a3.txt,数字自增变量

int ind=1;

 

//save_file()函数作用:将读取内容分n份存储

//参数:number,要分为的份数,size文件总大小,info文件内容

//这里分5分存储,总大小size/份数number等于前4份分出要存储的字节,最后一份第5份需要额外处理。并不能保证字节刚好分5份存储

void save_file(int number,int size,char * info){
                char ar[8]={'.','/','a','n','.','t','x','t'};

                int sizer=size/number;
                char arr[sizer];
                for(int i=0;i<number;i++){
                        memset(arr,'0',sizeof(arr));
                        arr[sizeof(arr)]='\0';
                        if(i==number-1){
                                memcpy(arr,&info[i*sizer],size-(sizer*i));
                        }else{
                                memcpy(arr,&info[i*sizer],sizer);
                        }
                        ar[3]=(ind++)+48;
                        int ffd=open(ar,O_RDWR | O_CREAT | O_EXCL,0666);
                        write(ffd,arr,strlen(arr));
                        close(ffd);
                }

}

 

//main测试,open打开文件,read读取所有字节内容,传递给save_file,分份数存储

int main(void){

        int fd=open("./stu.java",O_RDWR);
        char arr[100]={0};
        read(fd,arr,sizeof(arr));

        int off=lseek(fd,0,SEEK_END);

        save_file(5,off,arr);

        close(fd);

        return 0;

}
 

运行结果:ls查看目录,运行后多出5个文件,将stu.java分5份存储

这篇关于c语言,拷贝文件,分5个文件进行存储、盗墓者是个丑奴儿的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596735

相关文章

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编