当前位置: 首页 > news >正文

ubuntu学习(六)----文件编程实现cp指令

1 思路

Linux要想复制一份文件通常指令为:

cp src.c des.c

 其中src.c为源文件,des.c为目标文件。

要想通过文件编程实现cp效果,思路如下

1 首先打开源文件 src.c

2 读src到buf

3 创建des.c

4 将buf写入到des.c

5 close两个文件 

 2 实现

vi demo.c

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>int main(int argc, char **argv)
{/*  0             1               2cp            src.c            des.c  3个参数 argc||              ||               ||argv[0]       argv[1]         argv[2]*/     int fdSrc;int fdDes;char *readBuf=NULL;if(argc != 3){printf("pararm error\n");exit(-1);}fdSrc = open(argv[1],O_RDWR);int size = lseek(fdSrc,0,SEEK_END);lseek(fdSrc,0,SEEK_SET);readBuf=(char *)malloc(sizeof(char)*size + 8);int n_read = read(fdSrc, readBuf, size);fdDes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);int n_write = write(fdDes,readBuf,strlen(readBuf));close(fdSrc);close(fdDes);return 0;
}

 gcc demo.c -o mycp

./mycp demo.c ./new.c

vi new.c

 

http://www.lryc.cn/news/143489.html

相关文章:

  • wireshark过滤器的使用
  • Zookeeper 脑裂问题
  • 计算机网络高频面试题解(一)
  • 从0-1的docker镜像服务构建
  • RabbitMQ、Kafka、RocketMQ:特点和适用场景对比
  • 【实战】十一、看板页面及任务组页面开发(四) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十六)
  • 解决docker无法执行定时任务问题
  • 【FreeRTOS】【STM32】中断详细介绍
  • stm32串口通信(PC--stm32;中断接收方式;附proteus电路图;开发方式:cubeMX)
  • 计算机毕设 基于机器学习与大数据的糖尿病预测
  • 【数据结构】——查找、散列表的相关习题
  • 提升Java开发效率:掌握HashMap的常见方法与基本原理
  • PostgreSQL系统概述
  • 掌握AI助手的魔法工具:解密Prompt(提示)在AIGC时代的应用「中篇」
  • git svn:使用 git 命令来管理 svn 仓库
  • 软考高级系统架构设计师系列论文九十一:论分布式数据库的设计与实现
  • GeoHash之存储篇
  • 后端项目开发:集成接口文档(swagger-ui)
  • 代码随想录训练营29天|●* 491.递增子序列 * 46.全排列 * 47.全排列 II
  • uniapp日期选择组件优化
  • AI驱动的大数据创新:探索软件开发中的机会和挑战
  • 国产化-银河麒麟V10系统及docker的安装
  • 计算机毕设 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉
  • Redis原理剖析
  • 【送书活动】AI时代,程序员需要焦虑吗?
  • 什么是 JSON:理解和运用 JSON 的基本概念
  • CSDN每日一练 |『异或和』『生命进化书』『熊孩子拜访』2023-08-27
  • 整数拆分乘积最大
  • 浅谈 Linux 下 vim 的使用
  • leetcode:只出现一次的数字Ⅲ(详解)