全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)
前面刚刚看完了一个函数和三个文件指针,一行代码懂了半行。但是继续分析我之前看到的代码还是遇到了困难,因为之前自己对于UNIX的一些基础知识了解不够清楚,因此很多函数怎么用一点也不知道。看起来,后续类似的问题还会有很多。
接下来,梳理一下函数isatty。
1. 首先,有了上一次的分析经验,因此从这个标注可以看得出来这个函数其实是一个库函数。因此,在这个函数的后面标注了一个数字3。
2. isatty,从函数的名称看就可以看出来这是一个判断对象属性的接口。而tty之前虽然没有查过,但是打交道的很多信息基本上意味着这个是一个终端的对等词。这个接口的返回值是1或者0,基本上可以理解为是一个布尔量。而unix的函数中,很多返回值似乎都是int类型。
3. 关于这个属性的信息,其实跟fileno是类似的。
4. 在符合的标准方面,这个符合的标准要比fileno要多一些。除了POSIX之外,还有一个SVr4以及BSD。而SVr4是一个什么内容我之前是没有什么接触的,继续往深了看下去会是一个无底洞,因此暂且先了解这么多。
这一页其实是没有什么值得看的信息的,这一个接口的文档内容还是比较少的。接下来,直接进入到测试环节。
为了测试这个函数的基本功能,增加上的测试代码。
这个是测试的效果,从这里看跟我前面看文档的时候分析的基本上是一样的。在打印辅助信息的时候,0多了一个负号,懒得去改完测试了。既然基本的猜测机理已经弄清楚了,这个暂且就可以结束了,后面只改一下代码。
这样,对照着文档信息,这里的半个函数其实是可以看懂了的。但是接下来的fgets又是一个无从分析的地方,看起来还得去查文档。既然是工作之余的兴趣学习,那么可以轻松自在一些,不去扩展那么多了,这个函数的学习留待下次。