一.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 101
6 #define MAX_RATE 100
7 #define STYLE '#'
8 #define STIME 1000*40
9
10 const char *str="|/-\\";
11
12 void process_v1()
13 {
14 // version 1
15 int rate=0;
16 printf("\n");
17 }
18
19 // 不能一次将进度条打印完毕,否则无法平滑的和场景结合
20 // 该函数,应该根据rate,自动的打一次
21 void process_v2(int rate)
22 {
23 // version 2
24 // TODO
25 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 2
39 // TODO
40 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 else
55 {
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 // 1MB
3 #define DSIZE 1024*10
20 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账号怎么拉代码-****博客