首页 > 系统相关 >Linux开发:通过sendfile高效的拷贝文件数据

Linux开发:通过sendfile高效的拷贝文件数据

时间:2024-03-17 18:00:13浏览次数:25  
标签:sendfile const string ret filename iReadFile Linux 拷贝 include

如果想要将一个文件的内容拷贝到另一个文件中,常规的做法是读取源文件,然后再把内容写入到目的文件中:

#include <fstream>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

vector<string> readFile(const string& filename)
{
    vector<string> ret;
    ifstream iReadFile(filename);
    if(iReadFile)
    {
        string tmpStr;
        while(getline(iReadFile, tmpStr))
        {
            ret.emplace_back(tmpStr);
        }
    }
    return ret;
}

void writeFile(const string& filename, const vector<string>& fileContent)
{
    ofstream iWriteFile(filename);
    if(iWriteFile)
    {
        for(const auto& s : fileContent)
        {
            iWriteFile<<s<<"\n";
        }
    }
}

int main()
{
    auto&& fileContent = readFile("./src_file.txt");
    writeFile("./des_file.txt",fileContent);
}

 创建一个测试用的src_file.txt

标签:sendfile,const,string,ret,filename,iReadFile,Linux,拷贝,include
From: https://blog.csdn.net/jiemashizhen/article/details/136691515

相关文章

  • 通过Wine实现在mac和linux上实现masm编程
    原文链接:UsingMASMonMacorLinuxviaWine抄这个文档是因为它的确有用,mac下也能很好的学习windowsapi。而且我怕老外的文档无法访问。Wine是啥来百度百科一下:Wine(“WineIsNotanEmulator”的缩写)是一个能够在多种POSIX-compliant操作系统(诸如Linux,macOS及BSD......
  • Linux 解压指令
    zip/unzip常见格式-ddir:指定解压缩后的目标目录-l:列出zip文件中的内容,但不解压缩(List)-q:安静模式,不显示解压缩过程(Quiet)-o:覆盖已存在的文件而不询问(Overwrite)-n:不覆盖已存在的文件(Neveroverwrite)-x:排除某一文件(eXclude)查看内容unzip-lroot.zip #列出压缩包......
  • Linux - /dev/tcp/<HOSTNAME>/<PORT>
    Linux中存在一个特殊的设备文件/dev/tcp/<HOSTNAME>/<PORT>,该文件可以直接和目标建立TCP通信,利用这一特性可以进行端口检测。 zzh@ZZHPC:/dev$lh|greptcpzzh@ZZHPC:/dev$echo>/dev/tcp/192.168.1.16/21zzh@ZZHPC:/dev$echo>/dev/tcp/192.168.1.16/22bash:conne......
  • Linux高级命令
    目录Linux命令1.软件安装1.1离线安装----dpkg1.2在线安装----apt-get2.压缩与归档2.1压缩与解压缩2.2归档(打包)和解归档3.查看文件内容3.1cat命令3.2head命令3.3tail命令3.4more命令3.5less命令3.6od命令4.统计文件内容命令5.检索文件内容命令6.查找文件命令7.文件内容截取命令8.......
  • 今日头条Linux 运维工程师面试真题
    今日头条Linux运维工程师面试真题首先我们来看下今日头条Linux运维工程师招聘岗位要求:【岗位定义】系统运维工程师【岗位薪资】10K-24K【基本要求】北京/经验3-5年/本科及以上/全职【职位描述】1、负责业务系统日常运行维护,线上故障紧急处理;2、监控平台的搭建......
  • Linux 运维工程师面试真题-2-Linux 命令及文件操作
    Linux运维工程师面试真题-2-Linux命令及文件操作1.在/tmp/目录下创建test.txt文件,内容为:Hello,World!,用一个命令写出来。2.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。3.用vi命令编辑test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一......
  • Linux 运维工程师面试真题-1-必会Linux 操作系统知识
    Linux运维工程师面试真题-1-必会Linux操作系统知识运维的整个面试流程其实是非常繁杂的,为了方便大家准备,我们特地在这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题。首先我们看看《Linux操作......
  • Linux 运维工程师面试真题-4-Linux 服务配置及管理
    Linux运维工程师面试真题-4-Linux服务配置及管理**1.请写出apache2.X版本的两种工作模式,以及各自工作原理。如何查看apache当前所支持的模块,并且查看是工作在哪种模式下?2.Linux下nfs在客户端无法挂载,请写出排查步骤?3.Linux下已经部署了dhcp服务器,客户端无法获取的......
  • Linux 运维工程师面试真题-3-Linux 磁盘及软件管理操作
    Linux运维工程师面试真题-3-Linux磁盘及软件管理操作1.如何添加一块新的50G硬盘到linux服务器系统作为单独的分区,并正在使用?需要哪些操作步骤?2.有个金士顿U盘,需要往服务器/var/www/html/目录下上传一个index.html文件,如何操作并完成。3.有一块移动硬盘,上面有300G......
  • Linux 运维工程师面试真题-5-常考题目汇总
    Linux运维工程师面试真题-5-常考题目汇总1.解释下什么是GPL,GNU,自由软件?GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分......