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

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

目录

前言:

进度条小程序:

先介绍几个背景知识

代码实现

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.kler.cn/a/355072.html

相关文章:

  • 细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV
  • InnoDB引擎的内存结构
  • [Android]按下扫描键时启动一个线程来执行某些操作
  • 什么是根服务器?有什么作用?
  • 62.基于SpringBoot + Vue实现的前后端分离-驾校预约学习系统(项目+论文)
  • linux中docker命令大全
  • 【MySQL】入门篇—基本数据类型:NULL值的概念
  • 利用mydumper从MySQL迁移数据到OceanBase数据库命令记录
  • PHP学习记录-编辑器推荐和本地环境的安装
  • 锁定云轴科技ZStack主题演讲,10月19日中国云计算基础架构开发者大会见
  • WHAT - Antd 定制主题之预设算法
  • 【论文笔记】Fine-tuned CLIP Models are Efficient Video Learners
  • 代替AD作为身份认证组件,深信服零信任aTrust与宁盾身份目录实现互操作
  • leetcode 刷题day43动态规划Part12(115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离)
  • 一键获取每日股票数据,自动更新,尽在掌握
  • Autosar软件组件概述
  • 数字图像处理:图像复原应用
  • java 调用 k8s 的 apiserver
  • 公开选拔!产业实践教授
  • RHCE--at,crontab例行性工作
  • 滚雪球学Redis[5.3讲]:Redis持久化优化深度解析:RDB与AOF的策略选择与实践
  • Unity3D 框架如何实现道路引导 UV 动画详解
  • 如何优化API以提高数据获取的准确性?
  • 从MySQL到OceanBase离线数据迁移的实践
  • 鸿蒙跨设备协同开发06——应用接续
  • SpringCloud Gateway 网关路由全自动实现方案