这里写目录标题
第一章 Unix系统编程概述
1.FILE是一个什么类型?
流文件
FILE是一个适合存储文件流信息的对象类型.
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。
呈现在用户面前的文件结构叫做文件的逻辑结构,逻辑结构分为两种:一种是记录式文件,另一种为流式文件。
- 记录文件:由若干逻辑记录组成,每条逻辑纪录又有相同的数据项组成。
流文件
就是没有结构的文件!(文件中的数据是一串字符没有结构)
文件指针的一般形式为: FILE* 指针变量标识符;
- 其中FILE应为大写,它实际上是由系统定义的一个结构, 该结构中含有文件名、文件状态和文件当前位置等信息。 在编写源程序时不必关心FILE结构的细节。例如:FILE *fp; 表示
fp
是指向FILE结构的指针变量,通过fp 即可找存放某个文件信息的结构变量
,然后按结构变量提供的信息找到该文件, 实施对文件的操作。
2.第18页的printf("\033[7m more? \033[m");是什么作用呢?
------解决方案--------------------
\033
是8进制,它就是unix下终端转义符ESC
(16进制1A,10进制27)ESC[xm
是unix下改变终端输出颜色的命令
printf("\033[7m more?\033[m"); 会显示一个白底黒字的 more
\033[7m:
是反显
VT100简介:VT100是一个终端类型定义,VT100控制码是用来在终端扩展显示的代码。比如终端上任意坐标用不同的颜色显示字符。
所有的控制符是\033
或\e
打头(即 ESC
的 ASCII 码)用输出字符语句来输出。可以在命令行用 echo
命令,或者在 C 程序中用 printf
来输出 VT100 的控制字符。
VT100 控制码
\033[0m // 关闭所有属性
\033[1m // 设置为高亮
\033[4m // 下划线
\033[5m // 闪烁
\033[7m // 反显
\033[8m // 消隐
\033[nA // 光标上移 n 行
\033[nB // 光标下移 n 行
\033[nC // 光标右移 n 行
\033[nD // 光标左移 n 行
\033[y;xH // 设置光标位置
\033[2J // 清屏
\033[K // 清除从光标到行尾的内容
\033[s // 保存光标位置
\033[u // 恢复光标位置
\033[?25l // 隐藏光标
\033[?25h // 显示光标
\033[30m – \033[37m 为设置前景色
30: 黑色
31: 红色
32: 绿色
33: 黄色
34: 蓝色
35: 紫色
36: 青色
37: 白色
\033[40m – \033[47m 为设置背景色
40: 黑色
41: 红色
42: 绿色
43: 黄色
44: 蓝色
45: 紫色
46: 青色
47: 白色