APUE 第1-2章笔记

第1章 UNIX基础知识

每当运行一个新程序,所有的shell都为其打开3个文件描述符,stdin,stdout,stderr。如果不做特殊处理,这3个描述符都链接到终端。可以通过重定向到其他文件。

signal

用于通知进程发生了某种情况。3种处理方式:
- 忽略
- 系统默认
- 指定函数处理

进程时间

系统为进程维护了3个进程时间:
- real,进程运行的时间总量
- user,用户CPU时间,执行用户指令的时间
- sys, 系统CPU时间,执行系统调用的时间

系统调用和库函数

库函数可以替代但系统调用通常不可替代。很多库函数会调用一个或多个系统调用。
系统调用以c函数的形式给出,但其实是为每个系统调用在标准C库中设置一个具有同样名字的函数,这些函数会用系统所要求的技术调用内核服务。

第2章 UNIX标准及实现

ISO C包含于POSIX,POSIX包含于Single UNIX Specification

限制

  • 编译时限制,可在头文件中定义。
  • 运行时限制,调用一个函数来获取,利用sysconf(),pathconf(),fpathconf()。前缀SC用作标识sysconf参数,PC用于表示另两个

ISO C限制

定义于limits.h中,在一个给定的系统是不会改变的

Linux中,pathconf和fpathconf在C函数库中实现,这俩函数返回的配置限制依赖于底层的文件系统类型,如果你的文件系统不被C库数值,函数则返回一个猜测值。

对于PC_PATH_MAX,pathconf返回基于工作目录的相对路径名的最大长度,而工作目录就是其第一个参数。

不确定的值表示该限制值不确定,没有限制,但不代表是无限的。调用函数返回-1但不改变errno,则表示不确定的值。

头文件sys/types.h定义了某些与实现相关的数据类型,称为,基本系统数据类型(primitive system data type),其他头文件也有定义。用C的typedef定义的,以_t结尾。例如,size_t。

你可能感兴趣的:(学习笔记)