体系结构
Linux下体系结构从上到下可定义为:
1. 应用软件;
2. shell命令行解释器;
3. 系统调用/库函数;
4. 内核;
<apue.h>头文件, 包含很多的标准的系统头文件,定义了很多的系统常量以及函数原型。
输入输出
- 文件描述符(file descriptor)
用来标示一个特定进程正在访问的文件。通常是一个小的非负整数;
每个进程开始的时候,shell都会为其打开三个文件描述符:
1、标准输入(standard input); 0
2、标准输出(standard output); 1
3、标准错误(standard error); 2 - 不用缓冲的IO
read 、 write 、 open 、close 、 lseek 都不提供缓冲区;
直接使用文件描述符的都没有使用缓冲区;
<unistd.h>该头文件包含了很多的系统服务的函数原型; - 标准IO
标准IO提供一种对不用缓冲IO函数的带缓冲的接口;
进程、程序
- 程序
程序是存放在磁盘上面、处于某个目录下 的一个可执行文件。 - 进程
程序 执行的实例被称为 是 进程 ;
进程的唯一标识符则被称为是 进程ID (pid); - 进程控制
进程控制主要有三个函数:
1、fork ;
创建子进程;
2、exec ;
进程?;
3、waitpid;
等待子进程
线程
每个进程只有一个控制线程(主线程);
一个进程内的所有的线程都可以共享同一地址空间、文件描述符、栈、以及进程相关的属性。
线程也有唯一的标识符 tid;
出错处理
<errno.h>定义了errno以及可以赋予它的各种常量;
errno通常被设置为含有附加信息的一个值;
strerror(errno)可以映射出errno的一个错误信息字符串;
perror 函数是基于errno的值在标准错误上产生一条出错信息;
信号
通知进程发生某类的情况的一种技术;
进程对信号的处理有三种选择:
1、忽略该信号;
2、按系统默认的方式处理;
3、自定义处理函数;
时间值
Linux下提供两种的时间值:
- 日历时间;
该值表示的是自1970年1月1日00:00:00以来的国际标准时间(UTC)所经过的秒数
的累计值 。
系统基本类型time_t 用于保存这种时间; - 进程时间;
该值也被称为CPU时间;
系统基本类型clock_t用于保存这种时间;
B/R
晓东
2019-1-8