cp文件和mkstemp
编程技术  /  houtizong 发布于 3年前   100
#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;}
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接