APUE阅读过程

  本过程与2015全年计划的读书计划相匹配,旨在督促自我,并且记录一下自己学习的过程~

  先谈谈阅读此神书的原因,之前一直在一家公司做嵌入式研发,感觉底层能力特差,动手能力不强,但是自己又想在linux这块做下去,寻求各方资料,研究方向,发现linux网络工程师是个吸引我的方向,所以,一不做二不休,开动~

 

  UNIX环境高级编程,全称Advanced Programming in the UNIX Environment,就是我们所说的apue。此神书,现在已经出了第三版,但是第三版还没有中文版,而英文版阅读起来难度略大,所以熊二还是选择第二版来学习,希望通过APUE,我可以flymoon!学习之前,还是先来个预习,预先学习一下APUE这本书的目录。

第一章  UNIX基础知识

  本章从程序设计人员角度快速浏览UNIX。所有操作系统都需要向他们运行的程序提供各种服务。包括执行新程序打开文件读文件分配存储区以及获得当前时间等。严格意义上,可以将操作系统定义为一种软件,它控制计算机的硬件资源,提供程序运行环境。这种软件,我们称为内核,它相对较小,位于环境中心。内核的接口被称为系统调用shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口。广义上,操作系统包含了内核和一些其他软件,这些软件使得计算机能够发挥作用,并给予计算机以独有的特性。这些软件包括系统实用软件(system utilities)(具体概念可以查看以下网站,全英文慎入,我的译文)、应用软件shell以及公用函数库等。

APUE阅读过程

在/etc/passwd目录查看登陆名等信息。

shell,命令行解释器,用户可以向shell程序键入命令。

文件系统,UNIX文件系统是目录和文件组成的一种层次结构,目录的起点是根(root),名字是字符/。目录是一个包含许多目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息。文件属性是指文件类型(是普通文件还是目录)、文件大小、文件所有者、文件权限、文件最后修改时间。

 可使用stat和lstat函数来查看文件的状态。

linux的文件名不能包含斜线(/)和空格(windows表示无压力)。斜线用来分隔构成路径名的各文件名,空操作符则用来终止一个路径名。好的习惯是只使用印刷字符的一个子集作为文件名字符。因为如果文件名中使用了某些shell特殊字符,则必须使用shell的引号机制来引用文件名,这会带来很多麻烦。

路径名,一个或多个以斜线分隔的文件名序列构成路径名,以斜线开头的绝对路径,否则称为相对路径。

工作目录,每个进程都有一个工作目录,也称为当前工作目录。所有相对路径名都从工作目录开始解释。进程可以使用chdir函数来更改其工作目录。

起始目录,登陆时,工作目录设置为其实目录,该起始目录从口令文件中相应的登陆项中取得。

 

文件描述符,file descriptor通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件。当内核打开一个已有文件或创建的新文件时,返回一个问文件描述符。在读写文件时可以使用它。

 

标准输入、标准输出、标准出错

按照惯例,每当运行一个新程序时,所有的shell都为其打开三个文件描述符:标准输入、标准输出、标准出错。简单命令这个三个描述符一般都链向终端。大多数shell都提供一种方法,使其中任何一个都能重定向到某个文件。

不用缓冲的I/O

函数open、read、write、lseek以及close提供不用缓冲的I/O。这些函数都使用文件描述符。

 

标准I/O

标准I/O函数提供一种对不用缓冲I/O函数的带缓冲的接口。使用标准I/O函数可以无需担心如何选取最佳的缓冲区大小。

 

程序(program)是存放在磁盘上,处于某个目录中的可执行文件。使用6个exec函数中的一个由内核将程序读入存储器,并使其执行。

进程和进程ID

程序的执行实例被称为进程(process)。某些系统使用任务(task)表示正在被执行的进程。

每个进程有一个唯一的数字标识符,称为进程ID(process ID)。

进程控制

三个用于控制进程的主要函数:fork、exec和waitpid。

线程和线程ID

在一个进程内的所有线程共享同一地址空间、文件描述符、栈以及与进程有关的属性。因为它们可以访问同一存储区,所以各线程在访问共享数据时需要采用同步措施来避免不一致。

与进程相同,线程也有ID。但线程的ID只在它所属的进程内起作用。

 出错处理

 

第二章  UNIX标准化及实现

第三章  文件I/O

第四章  文件和目录

第五章  标准I/O库

第六章  系统数据文件和信息

第七章  进程环境

第八章  进程控制  

第九章  进程关系

第十章  信号

第十一章  线程

第十二章  线程控制

第十三章  守护进程

第十四章  高级I/O

第十五章  进程间通信

第十六章  网络IPC:套接字

第十七章  高级进程间通信

第十八章  终端I/O

第十九章  伪终端

第二十章  数据库函数库

第二十一章  与网络打印机通信

总计715页,熊二准备弄死apue。。大家觉得可以么~

你可能感兴趣的:(过程)