Chapter 1 Unix基础知识

以下仅列出相对比较重要的内容

1.文件和目录

1).文件系统

    Unix文件系统是目录和文件组成的一种层次结构。目录是一个包含许多目录项的文件,而逻辑上,可以认为每个目录项都包含着文件名。文件属性是指文件类型(是普通文件还是目录)、文件的大小、文件的所有者、文件权限以及文件的修改时间等等。如获取相应信息可以用stat和fstat函数

2).文件名

3).路径名

    由斜线和文件名组成的序列构成路径名,以斜线开头的路径名称为绝对路径名,否则为相对路径名。注:文件根系统的名字(/)是个特殊的绝对路径,不含文件名

4).工作目录

    每一个进程都有一个工作目录(又称当前工作目录),所有绝对路径名都从工作目录开始

 

2.输入和输出

1).文件描述符

文件描述符通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件

2).标准输入、标准输出和标准标准出错

当运行一个新程序,所有shell都为其打开三个文件描述符标准输入、标准输出和标准标准出错

 

3.程序与进程

1).进程控制

对于进程控制,一般由三个主要函数:fork,exec和waitpid(其中exec有六种变体)。

2).线程ID和线程

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

在一个进程内的所有线程共享同一地址空间、文件描述符、栈以及与进程相关的属性,因为各个线程会访问同一资源,所以要进行线程同步。

 

4.出错处理

当Unix出错时,常常返回一个负值,而且整型变量errorn通常被设置为含有附加信息的一个值,注:在多线程环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errorn以避免一个线程干扰另一个线程

C标准有两个函数可以打印出errorn信息

 

#include <string.h>

char *strerror(int errnum);
//返回指向错误信息字符串的指针
#include <stdio.h>

void perror(const char *msg);
//在标准输出上产生一条错误信息

 

5.用户标识

1).用户ID 

2).组ID

3).附加组ID(一个用户可以属于多个组中)

 

6.信号

  用来通知进程有情况发生的一种技术。进程收到信号后有三种选择1).忽略   2).默认处理方法   3).提供一个函数当信号发生时调用(信号捕捉)。

 

7.时间值

Unix有两种不同的时间值

1).日历时间  用数据类型time_t ,记录着最近一次的修改时间

2).进程时间  用数据类型clock_t,度量进程使用的中央处理机资源

 

度量一个进程的时间,Unix使用三个进程时间值:

1).时钟时间 (墙上时钟时间)    它是进程运行时间的总量,值与系统同时运行的进程数有关

2).用户CPU时间    执行用户指令的时间

3).系统CPU时间    该进程实行内核程序所经历的时间

 

8.系统调用和库函数

  系统调用是在内核空间中运行。库函数封装了系统调用,运行在用户空间。

posted on 2012-08-01 14:19  as_  阅读(615)  评论(0编辑  收藏  举报

导航