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

Linux系统编程——实现cp指令(应用)

cp指令格式

cp [原文件] [目标文件]

cp 1.c 2.c

功能是将原文件1.c复制后并改名成2.c(内容相同,实现拷贝)

这里需要引入main函数的参数解读

我们在定义函数时许多都带有参数,输入参数后便可进行定义函数内的功能执行,而main函数也不例外,其函数定义和参数格式如下:

int main(int argc,char **argv)
argc输入参数的个数
argv输入参数的字符串,字符串个数由输入参数个数决定,同时agrv[0]指向第一个字符串
#include <stdio.h>int main(int argc,char **argv)
{printf("total params is %d\n",argc);printf("No.0 params is %s\n",argv[0]);printf("No.1 params is %s\n",argv[1]);printf("No.2 params is %s\n",argv[2]);return 0;
}

由编译结果可知,总共有三个输入参数,同时输出每个参数字符串内容

cp 1.c 2.c→cp为第一个参数,1.c为第二个参数,2.c为第三个参数

Linux环境下指令详解

运用文件编程知识在Linux对cp指令操作进行拆分并实现最终结果,操作如下:

1.打开原文件1.c

2.将原文件1.c内容读取到buf中

3.打开/创建目标文件2.c

4.把buf中的内容写入到目标文件2.c中

5.关闭原文件1.c和目标文件2.c

代码展示

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main(int argc,char **argv)
{int fdSrc;int fdDes;char *readBuf = NULL;if(argc != 3){printf("insert error\n");exit(-1);//若参数不等于3则终止运行程序}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);//给readBuf开辟内存空间,此处多分配8个,防止空间溢出int n_read = read(fdSrc,readBuf,size);//将从fdSrc中读取的内容存放到readBuf,长度为1024个字节之内fdDes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);//打开目标文件,若没有目标文件则创建一个并打开,若目标文件存在且其中有其他数据,则会清楚数据方便后续写入int n_write = write(fdDes,readBuf,strlen(readBuf));	//将readBuf中的数据写入fdDes中close(fdSrc);close(fdDes);return 0;
}

可见,通过cp指令可以拷贝一个内容与7.c一样但名字不同的new.c

相关文章:

Linux系统编程——实现cp指令(应用)

cp指令格式 cp [原文件] [目标文件] cp 1.c 2.c 功能是将原文件1.c复制后并改名成2.c(内容相同&#xff0c;实现拷贝) 这里需要引入main函数的参数解读&#xff1a; 我们在定义函数时许多都带有参数&#xff0c;输入参数后便可进行定义函数内的功能执行&#xff0c;而main…...

20231112_DNS详解

DNS是实现域名与IP地址的映射。 1.映射图2.DNS查找顺序图3.DNS分类和地址4.如何清除缓存 1.映射图 图片来源于http://egonlin.com/。林海峰老师课件 2.DNS查找顺序图 3.DNS分类和地址 4.如何清除缓存...

使用ssh上传数据到阿里云ESC云服务上

在这之前需要安装 ssh2-sftp-client 直接在终端输入&#xff1a;npm i ssh2-sftp-client 直接上代码&#xff1a; const path require(path); const Client require(ssh2-sftp-client);// 配置连接参数 const config {host: your-server-ip, // 云服务器的IP地址port: 22, …...

【408】计算机学科专业基础 - 数据结构

数据结构知识 绪论 数据结构在学什么 如何用程序代码把现实世界的问题信息化 如何用计算机高效地处理这些信息从而创造价值 数据结构的基本概念 什么是数据&#xff1a; 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序…...

SpringSpringBoot自动装配

文章目录 spring自动装配的好处Spring框架提供了三种自动装配的方式&#xff1a;Springboot自动装配Springboot自动装配的原理 spring自动装配的好处 Spring的自动装配&#xff08;Autoscan or Autowiring&#xff09;在开发中带来了多方面的好处&#xff0c;使得应用程序更加…...

k8s 部署mqtt —— 筑梦之路

mqtt是干嘛的&#xff0c;网上有很多资料&#xff0c;这里就不再赘述。 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: mqttname: mqttnamespace: default spec:replicas: 1selector:matchLabels:app: mqttstrategy:rollingUpdate:maxSurge: 25%maxUnavaila…...

模型部署:量化中的Post-Training-Quantization(PTQ)和Quantization-Aware-Training(QAT)

模型部署&#xff1a;量化中的Post-Training-Quantization&#xff08;PTQ&#xff09;和Quantization-Aware-Training&#xff08;QAT&#xff09; 前言量化Post-Training-Quantization&#xff08;PTQ&#xff09;Quantization-Aware-Training&#xff08;QAT&#xff09; 参…...

C++模板元模板(异类词典与policy模板)- - - 题目答案

目录 一、书中第一题 二、书中第三题 三、书中第五题 四、书中第六题 五、书中第七题 六、书中十一题 七、书中十二题 八、 书中十三题 总结 一、书中第一题 #include <iostream>template <typename T, size_t N> struct NSVarTypeDict {static void Cre…...

二十三种设计模式全面解析-组合模式与迭代器模式的结合应用:构建灵活可扩展的对象结构

在前文中&#xff0c;我们介绍了组合模式的基本原理和应用&#xff0c;以及它在构建对象结构中的价值和潜力。然而&#xff0c;组合模式的魅力远不止于此。在本文中&#xff0c;我们将继续探索组合模式的进阶应用&#xff0c;并展示它与其他设计模式的结合使用&#xff0c;以构…...

postgresql|数据库|提升查询性能的物化视图解析

前言&#xff1a; 我们一般认为数字的世界是一个虚拟的世界&#xff0c;OK&#xff0c;但我们其实有些需求是和现实世界一模一样的&#xff0c;比如&#xff0c;数据库尤其是关系型数据库&#xff0c;希望在使用的数据库能够更快&#xff08;查询速度&#xff09;&#xff0c;…...

Unity中Shader雾效的原理

文章目录 前言一、我们先看一下现实中的雾二、雾效的混合公式最终的颜色 lerp(雾效颜色&#xff0c;物体颜色&#xff0c;雾效混合因子) 三、雾效的衰减1、FOG_LINEAR&#xff08;线性雾衰减&#xff09;2、FOG_EXP(指数雾衰减1)3、FOG_EXP(指数雾衰减2) 前言 Unity中Shader雾…...

chatgpt辅助论文优化表达

chatgpt辅助论文优化表达 写在最前面最终版什么是好的论文整体上&#xff1a;逻辑/连贯性细节上一些具体的修改例子 一些建议&#xff0c;包括具体的提问范例1. **明确你的需求**2. **提供上下文信息**3. **明确问题类型**4. **测试不同建议**5. **请求详细解释**综合提问范例&…...

Vue3 源码解读系列(二)——初始化应用实例

初始化应用实例 创建 Vue 实例对象 createApp 中做了两件事&#xff1a; 创建 app 对象保存并重写 mount /*** 创建 Vue 实例对象*/ const createApp ((...args) > {// 1、创建 app 对象&#xff0c;延时创建渲染器&#xff0c;优点是当用户只依赖响应式包的时候&#xff0…...

网络原理-UDP/TCP详解

一. UDP协议 UDP协议端格式 由上图可以看出&#xff0c;一个UDP报文最大长度就是65535. • 16位长度&#xff0c;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的最大长度&#xff08;注意&#xff0c;这里的16位UDP长度只是一个标识这个数据报长度的字段&#xff0…...

C#多线程入门概念及技巧

C#多线程入门概念及技巧 一、什么是线程1.1线程的概念1.2为什么要多线程1.3线程池1.4线程安全1.4.1同步机制1.4.2原子操作 1.5线程安全示例1.5.1示例一1.5.2示例二 1.6C#一些自带的方法实现并行1.6.1 Parallel——For、ForEach、Invoke1.6.1 PLINQ——AsParallel、AsSequential…...

c primer plus_chapter_four——字符串和格式化输入/输出

1、strlen&#xff08;&#xff09;&#xff1b;const&#xff1b;字符串&#xff1b;用c预处理指令#define和ANSIC的const修饰符创建符号常量&#xff1b; 2、c语言没有专门储存字符串的变量类型&#xff0c;字符串被储存在char类型的数组中&#xff1b;\0标记字符串的结束&a…...

Python Fastapi+Vue+JWT实现注册、登录、状态续签【登录保持】

文章目录 一、实现流程1.注册2.登录3.登录保持【状态续签】二、实现方法1.注册2.登录+登陆状态保持* 后端部分* 前端部分一、实现流程 1.注册 Created with Raphal 2.3.0...

oracle-sql语句解析类型

语句执行过程&#xff1a;1. 解析(将sql解析成执行计划) 2.执行 3.获取数据(fetch) 1. shared pool的组成。 share pool是一块内存池。 主要分成3块空间。free&#xff0c; library(库缓存&#xff0c;缓存sql以及执行计划)&#xff0c;row cache(字典缓存) select * from v…...

2023 年最新企业微信官方会话机器人开发详细教程(更新中)

目标是开发一个简易机器人&#xff0c;能接收消息并作出回复。 获取企业 ID 企业信息页面链接地址&#xff1a;https://work.weixin.qq.com/wework_admin/frame#profile 自建企业微信机器人 配置机器人应用详情 功能配置 接收消息服务器配置 配置消息服务器配置 配置环境变量…...

3、FFmpeg基础

1、FFmpeg 介绍 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库。 2、FFmpeg 组成 - libavformat:用于各种音视频[封装…...

基于Arm Cortex-M7内核GD32H7

基于Arm Cortex-M7内核&#xff0c;主频高达750MHz&#xff0c;并配备了高速大容量内存架构&#xff0c;旨在以“超高算力”与“实时通信”能力&#xff0c;为伺服控制、数字电源、智能家居&#xff08;885478&#xff09;等下一代智能装备提供核心硬件基础。 性能铁三角&#…...

[具身智能-318]:分词 (Tokenization)原理和代码示例

分词&#xff08;Tokenization&#xff09;是大语言模型&#xff08;LLM&#xff09;的“第一公里”&#xff0c;它的核心任务是将人类可读的自然语言文本&#xff0c;转换为模型能够理解和处理的数字序列。简单来说&#xff0c;分词器&#xff08;Tokenizer&#xff09;就是一…...

深入理解Kubernetes网络模型:摆脱“配置工程师”噩梦

在云原生测试领域&#xff0c;Kubernetes已成为基础设施的核心载体。然而&#xff0c;网络配置的复杂性常使测试人员陷入“反复调参-验证失败”的循环。本文从测试视角解析Kubernetes网络模型&#xff0c;提供可落地的验证方法论&#xff0c;帮助测试工程师突破网络瓶颈&#x…...

【技术精讲】从理论到实践:手把手教你完成DFA最小化

1. 什么是DFA最小化&#xff1f;为什么需要它&#xff1f; 想象一下你正在整理一个杂乱无章的衣柜。有些衣服你从来不穿&#xff08;死状态&#xff09;&#xff0c;有些衣服功能重复&#xff08;等价状态&#xff09;。DFA最小化就像给衣柜做断舍离&#xff0c;保留所有必要的…...

外卖霸王餐API接口架构设计思路分析

外卖霸王餐API接口架构设计思路分析 对于开发者而言&#xff0c;构建一套高并发、高可用的外卖霸王餐API接口架构&#xff0c;是实现流量主与外卖平台&#xff08;美团、饿了么&#xff09;数据互通的关键。本文将基于俱美开放平台(http://www.baodanbao.com.cn)的技术实践&am…...

2026年AI Agent客服问答助手知识难题破局

一、前言 许多企业上线的智能问答系统效果不佳&#xff0c;准确率不足70%&#xff0c;问题不在于技术不行&#xff0c;而在于用错了方法。当前系统普遍存在“知识看不懂、上下文记不住、回答靠碰运气”的问题&#xff0c;导致体验差、难落地。 2026年&#xff0c;真正有效的智能…...

为什么83%的PHP项目AI检测失败:深度拆解Tokenization偏差、框架上下文缺失与Composer依赖盲区

第一章&#xff1a;PHP AI代码检测的现状与核心挑战当前&#xff0c;PHP作为全球广泛部署的Web后端语言&#xff0c;其生态中存在大量历史遗留代码、动态类型特性及弱类型隐式转换机制&#xff0c;为AI驱动的静态/动态代码检测带来了独特复杂性。主流工具链&#xff08;如PHPSt…...

BAAI/bge-m3环境配置全攻略:WebUI集成与语义分析服务搭建

BAAI/bge-m3环境配置全攻略&#xff1a;WebUI集成与语义分析服务搭建 1. 环境准备与快速部署 1.1 系统要求与依赖安装 BAAI/bge-m3作为当前最强大的开源语义嵌入模型之一&#xff0c;对运行环境有特定要求。以下是推荐的配置方案&#xff1a; 操作系统&#xff1a;Linux (U…...

如何用Dism++终极优化你的Windows系统:免费开源工具的完整指南

如何用Dism终极优化你的Windows系统&#xff1a;免费开源工具的完整指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism是一款强大的Windows系统优化和维护…...

别让AI代码,变成明天的技术债沾

如果有多个供应商&#xff0c;你也可以使用 [[CC-Switch]] 来可视化管理这些API key&#xff0c;以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...