`
haoningabc
  • 浏览: 1465924 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cp文件和mkstemp

c 
阅读更多
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
char _tmp_path[1024];
char _config_dirpath[1024];
char _so_path[1024];
char _config_filepath[1024];
int main(){
    snprintf(_config_dirpath, sizeof(_config_dirpath), 
             "/data/c/file");
    snprintf(_so_path, sizeof(_so_path),                                                                                                                         
             "%s/libprocess.so", _config_dirpath);
    snprintf(_tmp_path, sizeof(_tmp_path),
            "%s/libprocess.XXXXXX", _config_dirpath);
    int ret = mkstemp(_tmp_path);
    if (ret == -1)
    {
        printf("create tmp so file %s fail, error:%s",
                _tmp_path, strerror(errno));
        return 1;
    }

    /* copy file to tmpfile */
    if(!copy_file(_so_path, _tmp_path))
    {
        printf("copy %s to %s so fail",
                _so_path, _tmp_path);
        return 1;
    }
    return 0; 
}
int copy_file(const char* source, const char* dst){
    int rfd = open(source, O_RDONLY);
    if (rfd == -1)
    {
        printf("%s so file open fail,error:%s", source, strerror(errno));
        return 1;
    }

    int wfd = open(dst, O_WRONLY|O_CREAT|O_APPEND);
    if (wfd == -1)
    {
        printf("%s so file open fail,error:%s", dst, strerror(errno));
        return 1;
    }
    char buf[1024];
    int rcount;
    int wcount;
    while ((rcount = read(rfd, buf, sizeof(buf))) != 0)
    {
        if (rcount == -1)
        {
            printf("read %s so file fail,error:%s", source, strerror(errno));
            return 1;
        }

        wcount = write(wfd, buf, rcount);
        if (wcount != rcount)
        {
            printf("write %s so file fail", dst);
            return 1;
        }
    }

    close(rfd);
    close(wfd);
    return 0;
}
分享到:
评论

相关推荐

    CP1542-5-PROFIBUS通信GSD文件V3.0版本.zip

    总之,"CP1542-5-PROFIBUS通信GSD文件V3.0版本.zip" 是一个关键的资源,对于拥有西门子CP1542-5模块的用户来说,它能够帮助建立和优化PROFIBUS DP网络,提高系统的稳定性和效率。正确使用和更新GSD文件对于实现有效...

    CP343-1_GSD文件_V2.1_20061214.zip

    1. GSDML_002A_CP3431_LEAN_V20.bmp和GSDML_002A_CP3431_LEAN_V10.bmp:这两个文件可能是GSD文件的图形表示,用于可视化展示CP343-1的配置和连接情况。"LEAN"可能指的是该处理器的精简版或者高效版本,"V20"和"V10...

    CP343-1_GSD文件_V2.2_20080919.zip

    总结来说,"CP343-1_GSD文件_V2.2_20080919.zip"是一个包含CP343-1模块详细配置信息的压缩包,其中的GSDML文件和图形化表示为用户提供了模块的全面描述,以便于设备集成、编程和故障排查。这个版本的GSD文件反映了该...

    CP343-1(EX30)的GSD文件(V2.1和V2.2版本).rar

    V2.1和V2.2版本的GSD文件代表了CP343-1(EX30)模块的不同固件版本。每个新版本通常会带来性能提升、功能增强或错误修复。例如,V2.2版本可能比V2.1增加了对新协议的支持,提高了通信稳定性,或者解决了某些已知问题...

    lanms-neo-1.0.2-cp39的whl文件

    标题中的"lanms-neo-1.0.2-cp39的whl文件"指的是一个特定版本的Python软件包,名为"lanms-neo",版本号为1.0.2,它针对的是Python 3.9版本的运行环境。"whl"是Python的 Wheel 文件格式,它是预编译的Python库,用于...

    TA-Lib-0.4.26-cp*-cp*m-win*.whl TA-Lib库 windows离线安装文件 打包下载

    文件包含以下内容,一次打包下载 TA_Lib-0.4.26-cp37-cp37m-win_amd64.whl TA_Lib-0.4.26-cp37-cp37m-win32.whl TA_Lib-0.4.26-cp38-cp38-win_amd64.whl TA_Lib-0.4.26-cp38-cp38-win32.whl TA_Lib-0.4.26-cp39-cp39...

    CP2104串口驱动文件 x86 x64

    总的来说,CP2104串口驱动文件是连接和控制CP2104 USB到UART转换器的关键,它使得开发者能够在各种项目中充分利用串口通信的便利性。无论是进行嵌入式开发还是硬件调试,这个驱动都是必不可少的工具。通过正确安装和...

    python3.11 dlib轮子文件//dlib-19.24.1-cp311-cp311-win-amd64.whl

    标题中提到的"python3.11 dlib轮子文件//dlib-19.24.1-cp311-cp311-win-amd64.whl"是一个特定于Python 3.11的二进制分发包,称为“轮子”(wheel)文件。轮子文件是Python的安装包格式,用于简化软件的安装过程,相比...

    dlib库的whl文件——dlib-19.7.0-cp36-cp36m-win_amd64.rar

    标题中提到的“dlib-19.7.0-cp36-cp36m-win_amd64.rar”文件就是一个专门为Windows操作系统64位版本的Python 3.6编译好的dlib库的whl文件。这里的“cp36”表示Python的版本,“cp36m”指的是匹配的ABI(应用二进制...

    GDAL-3.8.4-cp39-cp39-win_amd64.whl.zip

    这个“GDAL-3.8.4-cp39-cp39-win_amd64.whl.zip”文件是一个针对Python 3.9版本的GDAL库的预编译二进制包,适用于64位Windows操作系统。 在Python环境中,`.whl`文件是Python Wheel格式的安装包,它是一种预编译的...

    CP343-1_6GK7343-1EX30-0XE0_V3.0_GSD文件.rar

    压缩包内的文件"CP343-1_6GK7343-1EX30-0XE0_V3.0_GSD文件"应该是CP343-1模块的GSD文件,用户可以将这个文件导入到西门子的Step 7编程软件或SIMATIC Net配置工具中,以便在系统配置时识别和设置CP343-1模块的通信...

    GDAL-3.6.4-cp311-cp311-win_amd64.whl.zip

    总的来说,GDAL-3.6.4-cp311-cp311-win_amd64.whl.zip是一个针对Python 3.11和64位Windows系统的GDAL库的安装包,包含了一个whl文件和使用说明,用于简化和加速GDAL在相应环境下的安装和使用。正确安装后,用户可以...

    蓝天ec (神舟ZX8cp5s1)原版副ec文件

    在这款电脑的维护和升级过程中,EC(Embedded Controller)文件扮演着至关重要的角色。 EC,全称为嵌入式控制器,是电脑主板上的一个微控制器,负责监控和管理系统的低级功能,如电源管理、键盘输入、系统温度监控...

    minepy-1.2.6-cp39-cp39-win_amd64.zip

    本文将围绕标题中的"minepy-1.2.6-cp39-cp39-win_amd64.zip"这一离线安装包,以及其包含的"minepy-1.2.6-cp39-cp39-win_amd64.whl"文件,深入探讨Python的离线安装机制和minepy库的使用。 首先,让我们了解一下`whl...

    立创专业版工程文件 USB转串口_CP2102N.zip

    《立创专业版工程文件USB转串口_CP2102N详解》 在电子设计领域,USB转串口技术是一种常见的接口转换方法,它使得计算机可以通过USB接口与使用串行通信的设备进行数据交互。这里我们将深入探讨的是基于CP2102N芯片的...

    dlib-19.24.2-cp312-cp312-win-amd64.zip

    5. **安装步骤**:对于这样的 `.whl` 文件,用户需要先将其解压缩,然后在命令行中使用 `pip install` 命令指向解压后的文件路径进行安装,例如 `pip install path\to\dlib-19.24.2-cp312-cp312-win_amd64.whl`。...

    SciPy-1.11.4-cp310-cp310-win_amd64.whl.zip

    在压缩包子文件的文件名称列表中,有两个文件:“使用说明.txt”和“SciPy-1.11.4-cp310-cp310-win_amd64.whl”。前者很可能是提供安装和使用SciPy的详细指南,包括可能的系统要求、安装步骤、常见问题解答等信息,...

    GDAL-3.6.2-cp38-cp38-win_amd64.whl.zip

    GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据处理库,它支持多种地理空间文件格式的读取、写入和处理。这个压缩包文件“GDAL-3.6.2-cp38-cp38-win_amd64.whl.zip”包含了GDAL的一个特定...

    西门子CP341 modbus相关文件

    本资料包涉及到的是CP341与Modbus通信的相关文件,下面将详细介绍每个文件及其用途。 1. **setup_ptp_v5114.exe**:这是西门子CP341的组态软件安装程序,版本为V5.1.14。该软件用于配置CP341模块的通信参数,包括...

Global site tag (gtag.js) - Google Analytics