5. 文件属性中的三个时间
上面我们讲到了文件的修改时间,在这里我们详细介绍一下文件的“三个时间”。
使用stat指令,我们可以看到文件的详细信息,其中就包括了文件的创建时间,修改时间与最后一次访问时间
对于modify和change的时间是容易理解的,但是access的时间改变规则有些不一样
因为对一个文件的访问,是很频繁的,如果每一次的访问,都要修改access时间的话,会导致系统的负荷太大,所以新的Linux内核就对access时间的修改规则做了修正,变成了根据一段时间内访问频率再去更新。
6. Linux下第一个小程序——进度条
6.1 前置知识1:缓冲区
对于这个测试,执行之后的结果是在屏幕上正常的打印hello world,然后停留一秒钟之后再提示输入下一个指令,但是我们将printf中的‘\n’去掉,然后再编译,执行得到的可执行,会发现屏幕中没有立刻显示hello world,而是再一秒钟后再显示的,这是因为每一行的内容会先放在缓冲区中,当执行回车换行也就是‘\n’之后,才会显示,否则就需要等当前进程结束之后再显示,所以为了让上述程序在没有‘\n’也能正常执行,我们需要使用fflush刷新缓冲区,即:
然后我们发现该程序可以正常执行输出然后再停顿了。
6.2前置知识2:回车换行
在刚刚,我们提到了回车换行的概念,但是,回车和换行是两个概念,回车表示的是回到当前行的开头位置,用\r表示,换行表示光标换到下一行的同一位置,但是到这里就会有疑问,我们键盘上的enter键,一般不就是叫做回车键嘛?我们注意一下早期的键盘上,回车键是什么样子的
用了一个向下和向左的箭头表示着这个键的作用是让光标去到下一行的开头。
那么如果不换行,只回车的话,会出现什么情况呢?
答案是会将屏幕上当前行的内容覆盖掉。
那么,利用这种特性,我们能够写出一个简易的倒计时程序
运行的结果是这样的:
这就是我们利用缓冲区和回车换行的特性写出来的简易倒计时。
6.3进度条的实现
有了上述的两个前置知识,我们就可以利用已知的知识写出进度条啦
接下来我们尝试一下多文件编程,首先定义一下头文件和主要的实现源文件,还有主函数文件,分别命名为process.h,process.c,main.c,然后对于一整个项目,我们要写一下makefile文件所以一共要创建四个文件
$ touch makefile process.c process.h main.c
各个部分代码如上,然后使用make编译,产生可执行文件ProcessOn,运行效果如下
7 Linux下git的”三板斧“
由于Linux是没有图形化界面的,所以我们在Windows下使用的“小乌龟”在这里就不能用了,所以我们要学一下git的命令行使用方式
1. git clone
首先,我们需要将已有的仓库拷贝到本地,所以就有了git clone指令,该指令后面跟我们需要拷贝的仓库的链接
2. git add
我们在本地写的代码需要添加到本地仓库,所以需要使用git add指令添加,git add指令后跟文件名,这里我们经常使用的是git add .表示将所有新增文件全部添加
3. git commit
对标Windows下使用小乌龟的过程,我们同样需要commit,我们在commit的同时,还需要附带本次上传的说明,git commit -m "说明文字"
4. git push
上传到本地仓库之后,我们还需要上传到线上的仓库,对标”小乌龟“,我们需要push,所以使用git push指令
注:默认每次上传的时候都要输入用户名和密码,这里可以配置成不需要输入,但是还是建议每次都手动输入点我配置免密码提交
5. git log
我们的每次上传都会被记录下来,成为日志,使用git log就可以查看提交日志
本节完。。。









