linux环境下的程序设计与git操作

news2024/10/18 22:30:40

目录

前言:

进度条小程序:

先介绍几个背景知识

代码实现

Git操作

总结

其他指令


前言:

本文将重点介绍1. linux下的程序设计,并使用linux下的几个函数接口。实现一个简单的小程序

2.本着开源精神,进行git操作。

进度条小程序:

进度条的核心是倒计时的实现与进度条的打印。

先介绍几个背景知识

1.sleep函数

在unistd.h中

他的作用是让程序进行休眠,单位是秒。

2.usleep函数

让程序休眠,单位是微秒。1s = 1000毫秒 1毫秒 = 1000微秒

3.回车与换行

回车:\r 换行:\n

回车的作用是将光标定位到首字符位置,换行的作用是将光标定位到下一行

4.C语言的输出格式默认是从右到左输出,%-才是从左到右输出

5.想让字符串出现\,或者想打印%,需要进行转移,如%%用来打印%,\\用来在字符串中表示\

%-100s 表示输出100字符,从左到右输出

6.在Linux开发中,缓冲区的刷新默认以换行\n为刷新标准,回车\r并不能进行刷新。

因此为了及时刷新,需要fflush函数。

fflush(stdout)就是刷新屏幕。(linux下一切皆文件,显示器就是stdout文件)

代码实现

至于头文件,我们应该先保证#pragma once

void processbar(int speed)
{
    char bar[NUM];
    memset(bar, '\0', sizeof(bar));
    int len = strlen(lable);

    int cnt = 0;
    while(cnt <= TOP)
    {
        printf("[%-100s][%d%%][%c]\r", bar, cnt, lable[cnt%len]); // 没有\n,就没有立即刷新,因为显示器模式是行刷新
        fflush(stdout);
        bar[cnt++] = BODY;
        if(cnt < 100) bar[cnt] = RIGHT;
        usleep(speed); 
    }

    printf("\n");
}

在makefile中并不需要头文件。这是因为源文件包含了头文件,编译的时候,会将头文件展开(头文件与源文件的路径相同) 

Git操作

git主要用于代码的协作与开源工作。下面是gitee为例的git操作。

仓库创建

选择HTTPS协议

clone

将远程仓库拉取到本地

将文件移动到仓库中:mv指令不需要-r

testdir以外就是我们拉取下来的东西。

.gitignore文件内部就是需要过滤的文件

当然我们也可以用添加 *.pp 等方式增加过滤其他形式(如pp)的文件

add 

add操作将新增的文件、修改的文件添加到暂存区

commit

-m "说明" 的形式进行说明的补充(必须要有!)

转正:暂存区中的文件更改被正式记录为版本库中的一个提交(commit)。这意味着这些更改现在成为了项目历史的一部分,可以被引用、比较和回滚。

信息记录:在执行commit时,你通常会提供一个提交信息(commit message),这是一个对此次提交所做的更改的描述。这个信息对于其他开发者(或未来的你)理解提交的目的和内容至关重要。

push:推送到远端

进行push需要输入用户名和密码。

提交完成

总结

步骤:clone把远端仓库拉取-----将需要提交的代码复制到拉取到本地的这个仓库文件中 ----- add到暂存区-----commit转正、记录日志-----push到远端仓库 

其他指令

git status:查看目前的状态。在add、commit等指令之后可以git status查看状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2218060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OPENSSL-2023/11/10学习记录-C/C++对称分组加密DES

对称分组加密常用算法&#xff1a; DES 3DES AES 国密SM4 对称分组加密应用场景&#xff1a; 文件或者视频加密 加密比特币私钥 消息或者配置项加密 SSL通信加密 对称分组加密 使用异或实现一个简易的对称加密算法 A明文 B秘钥 AB密文AB (AB)B A 密码补全和初始化 数…

在Access中执行SQL语句

1.新建一个查询 2. 关闭弹出的窗口&#xff0c;创建一个空查询 3. 在“设计”页中点击“数据定义”进入输入SQL语句界面 4. “执行”后就能看到执行结果 5.如果想再次执行SQL&#xff0c;则可在MDI窗口标题栏右键&#xff0c;在弹出的菜单中选择“SQL 视图”即可

Vue向上滚动加载数据时防止内容闪动

目前的需求&#xff1a;当前组件向上滚动加载数据&#xff0c;dom加载完后&#xff0c;页面的元素位置不能发生变化 遇到的问题&#xff1a;加载完数据后&#xff0c;又把滚轮滚到之前记录的位置时&#xff0c;内容发生闪动 现在的方案&#xff1a; 加载数据之前记录整体滚动条…

Spring AI 整体介绍_关键组件快速入门_prompt_embedding等

Spring AI&#xff1a;Java开发者的AI集成新利器 在过去&#xff0c;Java开发者在构建AI应用时面临着缺乏统一框架的问题&#xff0c;导致不同AI服务的集成过程复杂且耗时。Spring AI应运而生&#xff0c;旨在为基于Java的应用程序提供一个标准化、高效且易于使用的AI开发平台…

51单片机的超声波视力保护仪【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器光照传感器超声波传感器按键、LED、蜂鸣器等模块构成。适用于视力保护仪、坐姿矫正器、超声波防近视等相似项目。 可实现功能: 1、LCD1602显示温度、光照、距离和学习时间 2、超声波传感器采集头部与探…

如何做好SQL 数据库安全

随着信息技术的迅猛发展&#xff0c;数据库在现代信息系统中的重要性日益凸显。无论是电子商务平台、金融系统还是社交媒体应用&#xff0c;数据库都是其核心组件之一。其中&#xff0c;SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;数据库…

效率飞跃 | SOLIDWORKS 2025:草图与装配体设计再升级!

一年一度的SOLIDWORKS新版本已经发布&#xff0c;快来看看SOLIDWORKS 2025这些让您眼前一亮的新功能&#xff0c;它们将为您的研发过程增添强大助力。 一、草图绘制 1、通过 XYZ 点生成的曲线可以选取坐标系统 新版本可选择曲线起点位置 2、转换实体作为构造几何体 转换实体…

Science Robotics 通过新材料打造FiBa软机器人 可实现四种形态进化

近几年由于材料科学的进步&#xff0c;软机器人相关技术近几年研究成果显著&#xff0c;与传统的刚性机器人相比&#xff0c;软机器人的设计灵感来源于自然界中的生物系统&#xff0c;如蠕虫、章鱼、壁虎和青蛙等。这些生物利用柔软、有弹性的材料&#xff0c;在复杂环境中展现…

微服务基础架构(图)

微服务基础架构是一种现代化的软件架构模式&#xff0c;旨在将大型复杂的应用程序拆分为多个小型、独立的服务。每个微服务专注于特定的业务功能&#xff0c;可独立开发、部署和扩展。 在微服务基础架构中&#xff0c;通常会使用轻量级的通信机制&#xff0c;如 RESTful API 或…

C++简易日志系统:打造高效、线程安全的日志记录工具

目录 引言&#xff1a; 1.日志的基本概念 1.1.什么是日志&#xff1f; 1.2.我们为什么需要日志&#xff1f; 2.自己实现一个简易日志 2.1.日志的等级 2.2日志的格式 2.3.获取时间的方法 2.4.日志的主体实现 参数&#xff1a; 代码解析&#xff1a; 问题&#xff1a…

C++新手入门指南:从基础概念到实践之路

C 继承了 C 语言的高效性和灵活性&#xff0c;同时新增了面向对象编程的特点。这使得 C 既可以进行底层系统编程&#xff0c;又能进行面向对象的软件设计。在面向对象编程方面&#xff0c;C 支持封装、继承和多态三大特性。 &#x1f4af;C 初印象 语言的发展就像是练功打怪…

用Java爬虫API,轻松获取电商商品SKU信息

在电子商务的精细化运营时代&#xff0c;SKU信息的重要性不言而喻。SKU&#xff08;Stock Keeping Unit&#xff09;信息不仅包含了商品的规格、价格、库存等关键数据&#xff0c;还直接影响到库存管理、价格策略和市场分析等多个方面。如何高效、准确地获取这些信息&#xff0…

STM32—SPI通信外设

1.SPI外设简介 STM32内部集成了硬件SPI收发电路&#xff0c;可以由硬件自动执行时钟生成、数据收发等功能&#xff0c;减轻CPU的负担可配置8位/16位数据帧、高位先行/低位先行时钟频率&#xff1a;fpclk/(2,4,8,16,32,64,128,256)支持多主机模型、主或从操作可精简为半双工/单…

【GESP】C++一级练习BCQM3049,细胞分裂

GESP一级知识点整形int和for循环练习。 题目题解详见&#xff1a;【GESP】C一级练习BCQM3049&#xff0c;细胞分裂 | OneCoder 【GESP】C一级练习BCQM3049&#xff0c;细胞分裂 | OneCoderGESP一级知识点整形int和for循环练习。https://www.coderli.com/gesp-1-bcqm3049/ C …

微服务--Ribbon负载均衡器

Nacos 本身里面就内置了Rabbion&#xff0c; 所以 不需要额外添加 添加LoadBalanced注解&#xff1a; Rabbion 内置的有好几种 负载均衡器 可以根据业务去选择&#xff0c;我们一般不会额外配置 都是默认的轮询&#xff0c;因为我们是基于docker发布的 大家的资源都是平等的 若…

Vue.js + Element UI 实现多方式登录功能(账号/手机号验证码登录)

引言 在现代Web应用中&#xff0c;提供多种登录方式已成为一种标准做法&#xff0c;这不仅能提升用户体验&#xff0c;还能满足不同用户的需求。本文将详细介绍如何使用Vue.js框架结合Element UI组件库&#xff0c;实现一个包含账号登录和手机号验证码登录两种方式的登录页面。…

Leetcode 单词规律

即判断给定的模式字符串&#xff08;pattern&#xff09;和单词字符串&#xff08;s&#xff09;是否遵循相同的对应规则。具体来说&#xff0c;就是要判断 pattern 中的字符与 s 中的单词是否存在一一对应的关系&#xff0c;即双射&#xff08;bijection&#xff09;。 算法思…

ant design vue TimePicker时间选择器不点击确认也可以设置值

文章目录 前言一、背景二、操作步骤1.复现前的准备工作&#xff08;1&#xff09;vue版本和ant design vue 版本&#xff08;2&#xff09;任意ant design vue TimePicker的demo 2.解决问题&#xff08;1&#xff09;使用change时间&#xff08;无效&#xff09;&#xff08;2&…

【学习】word保存图片

word中有想保存的照片 直接右键另存为的话&#xff0c;文件总是不清晰&#xff0c;截屏的话&#xff0c;好像也欠妥。 怎么办? 可以另存为 网页 .html 可以得到&#xff1a; 原图就放到了文件夹里面

在线白板:为远程课堂注入活力的协作工具

在线白板作为一种协作平台&#xff0c;极大地丰富了远程教学的互动性和创造性。在即时白板的帮助下&#xff0c;教师能够与学生共同在虚拟空间中创作和交流&#xff0c;实现知识的共享与思维的碰撞。 https://js.design/?sourcecsdn&planjh1018 首先&#xff0c;在线白板…