一.Linux第一个小程序-进度条
1.版本一:
1: process.c ? ? 2: process,h ? ?? 3: main.c ? ? ?? buffers 1 #include"process.h" "2 #include<string.h> 3 #include<unistd.h> 4 #define SIZE 100 5 #define MAX_RATE 100 6 #define STYLE '#' 7 #define STIME 1000*400 8 const char *str="|-\\"; 9 void process() 10 { 11 printf("hello process\n"); 12 //version 1 13 int rate =0; 14 char bar[SIZE]={0}; 15 memset(bar,'\0',sizeof(bar)); 16 int num =strlen(str); 17 while(rate<=MAX_RATE) 18 { 19 printf("[%-100s][%d%%][%c]\r",bar,rate,str[rate%num]); 20 fflush(stdout); 21 usleep(STIME); 22 bar[rate++]=STYLE; 23 } 24 printf("\n"); 25 26 }
~
~
~
2.版本二三:
头文件:
1 #pragma once "2 3 #include<stdio.h> 4 #include<string.h> 5 #include<unistd.h> 6 7 void process(); 8 #define SIZE 101 9 #define MAX_RATE 100 10 #define STYLE '#' 11 #define STIME 1000*40 12 13 #define STYLE_BODY '=' 14 #define STYLE_HEADER '>' 15 16 //typedef void (*callback_t)(int); 17 typedef void (*callback_t)(double); 18 19 void process_v1(); 20 void process_v2(int); 21 void process_v3(double);
~
process.c:
#include "process.h"2 #include <string.h>3 #include <unistd.h>4 5 #define SIZE 1016 #define MAX_RATE 1007 #define STYLE '#'8 #define STIME 1000*409 10 const char *str="|/-\\";11 12 void process_v1()13 {14 // version 115 int rate=0;16 printf("\n");17 }18 19 // 不能一次将进度条打印完毕,否则无法平滑的和场景结合20 // 该函数,应该根据rate,自动的打一次21 void process_v2(int rate)22 {23 // version 224 // TODO25 static char bar[SIZE]= {0}; 26 int num = strlen(str);27 if(rate <= MAX_RATE && rate >=0)28 {29 printf("[%-100s][%d%%][%c]\r", bar, rate, str[rate%num]);30 fflush(stdout);31 bar[rate] = STYLE;32 }33 if(rate == MAX_RATE) memset(bar, '\0', sizeof(bar)); 34 }35 36 void process_v3(double rate)37 {38 // version 2// version 239 // TODO40 static char bar[SIZE]= {0};41 static int cnt = 0;42 int num = strlen(str);43 if(rate <= MAX_RATE && rate >=0)44 {45 cnt++;46 cnt = (cnt >= num ? 0 : cnt); //cnt %= num;47 printf("加载中... [\033[31;44m%-100s\033[0m][%.1f%%][%c]\r", bar, rate, str[cnt]);48 fflush(stdout);49 if(rate < MAX_RATE)50 {51 bar[(int)rate] = STYLE_BODY; //'='52 bar[(int)rate+1] = STYLE_HEADER; //'>'53 }54 else55 {56 bar[(int)rate] = STYLE_BODY;57 }58 }59 //if(rate == MAX_RATE) memset(bar, '\0', sizeof(bar));60 }
mian.c
1 #include"process.h"2 #define TARGET_SIZE 1024*1024 // 1MB3 #define DSIZE 1024*1020 void download(callback_t cb)21 {22 int testcnt = 100;23 int target = TARGET_SIZE;24 int total = 0;25 26 while(total <= target)27 {28 usleep(STIME); // 用简单的休眠时间,模拟本轮下载花费的时间29 total += DSIZE;30 double rate = total*100.0/target;31 if(rate > 50.0 && testcnt) { 32 total = target/2;33 testcnt--;34 }35 cb(rate); // 回调函数36 }37 cb(MAX_RATE); // 回调函数38 printf("\n");39 }40 41 42 // 下载的软件43 int main()44 {45 process();46 download(process_v3);47 return 0;48 }
~
二.使用 git 命令行
1.安装 git
检查是否安装git
如若没有:
输入yum install git 进行安装
2.在 Github 创建项目
3.使用 Github 创建项目
4.注册账号
这个比较简单,参考着官网提示即可. 需要进行邮箱校验.
5.下载项目到本地
创建好一个放置代码的目录.
git clone [url]
这里的 url 就是刚刚建立好的 项目 的链接.
三板斧第一招: git add
将代码放到刚才下载好的目录中
git add[文件名]
将需要用 git 管理的文件告知 git
三板斧第二招: git commit
提交改动到本地
git commit
最后的 "." 表示当前目录 提交的时候应该注明提交日志, 描述改动的详细内容.
三板斧第三招: git push
同步到远端服务器上
git push
需要填入用户名密码. 同步成功后, 刷新 Github 页面就能看到代码改动了.
配置免密码提交
git本地免密码和账号pull、push_没有git账号怎么拉代码-CSDN博客