初学APUE-book-1重点摘入

一.UNIX体系结构

     操作系统定义为一种软件,它控制计算机硬件资源,提供进程运行环境。通常叫这种软件为内核。 内核的接口被称为系统调用,公用库函数建立在系统调用接口。shell是一个特殊的应用程序,为运行其他引用程序提供了一个接口。

二.文件和目录

1.文件系统
     UNIX文件系统是目录和文件的一种层次结构,所有东西的起点称为根(root)的目录,这个目录的名称是一个字符"/"。
     目录是一个包含目录项的文件。在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息,文件属性是指文件类型、文件大小、文件所有者、文件权限以及文件最后的修改时间等。
2.文件名
    目录中的各个名字称为文件名。只有斜线和空白符这两个字符不能出现在文件名中。斜线是用来分割构成路径名的各文件名,空白符是用来终止一个路径名。创建文件最好注意一下命名的方式:字母、数字、句点、短横线、和下划线。
注:创建新目录时会自动创建两个文件名:.和..指向当前目录,..指向父目录。在最高层次的根目录中..和.相同。
3.路径名
    有斜线分隔的一个或多个文件名组成的序列构成路径名,以斜线开头的路径名称成为绝对路径,否则称为相对路径名。相对路径名相当于当前目录的文件。文件系统根的名字是一个特殊的绝对路径名,它不包括文件名。
4.工作目录
    每个进程都有一个工作目录,有时称其为当前工作目录。所有相对路径名都是从工作目录开始解释的。进程可以用chdir函数更改其工作目录。
5.起始目录
    登陆时,工作目录设置为起始目录,该起始目录从口令文件开始中相应用户的登陆项中取得。

三.出错处理

     当UNIX系统函数出错时,通常会返回一个负值,而且整形变量errno通常被设置为具有特定信息的值。 例如: open函数如果成功执行则返回一个非负文件描述符,如出错则返回-1。在出错时,有大约15种不同的errno值。而有些函数对于出错则使用另一种约定而不是返回值。 例如: 大多数返回指向对象指针的函数,在出错时返回一个null指针。
     文件<errno.h>中定义了errno以及可以赋与它的各种常量。这些常量都以字符E开头。在LINUX中可以使用man手册来查看errno的使用方法

四.时间值

     历史上,UNIX系统使用过两种不同的时间值。
     (1)日历时间。该值是1970.1.1 00:00:00这个特定时间以来所经过的秒数累计值。这些时间值可用于记录文件最近一次的修改时间等。系统基本数据类型time_t用于保存这种时间值。
    (2)进程时间。也被称为CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴答计算。系统基本数据类型clock_t保存这种时间值。

五.系统调用和库函数

     所有操作系统都提供多种服务的入口点,由此程序向内核请求服务。各种版本的UNIX实现都提供了良好定义、数量有限、直接进入内核的入口点,这些入口点被称为系统调用函数。
    系统调用接口总是在《UNIX程序员手册》的第2部分中说明,是用第2部分中说明,是用C语言定义的,与具体系统如何调用一个系统调用的实现技术无关。
    《UNIX程序员手册》的第三部分定义了程序员可以使用的通用库函数。虽然这些函数可能会调用一个或多个内核的系统调用,但是他们并不是内核的入口点。
    一个可说明系统调用和库函数之间的差别例子是,UNIX系统提供的判断当前时间和日期的接口。
注:应用程序既可以调用系统调用也可以调用库函数。
    系统调用和库函数之间的另外一个差别是:系统调用通常提供一种最小接口,而库函数通常提供复杂的功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值