apue答案,APUE学习笔记(01)-UNIX基础知识

1、认识一些术语:内核(kernel) shell 系统调用(system call) 文件描述符(file descriptor) 等。
2、每远行一个新程序时,所有的shell都为其打开三个文件描述符:standard input、standard output、standard error。两个常量STDIN_FILENO和STDOUT_FILENO定义在中,其典型值分别是0和1。
3、出错处理:
当UNIX出错时,常常返回一个负值,而且整形变量errno通常被设置为含有附加信息的一个值,大约有15种不同的errno值。某些函数并不返回负值而是使用另一种约定(比如返回NULL指针)。
文件中定义了符号errno以及可以赋予它的各种常量,这些常量都以字符E开头。在Linux中,出错常量在errno(3)手册页中列出。
errno的定义:extern int errno;
在支持多线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程。在Linux中,将其定义为:
extern int *__errno_location(void);
#define errno (*__errno_location())
对于errno应当知道的两条规则:
(1) 如果没有出错,则其值不会被一个例程清除。因此,仅当函数的返回值指明出错时,才检验其值。
(2) 任一函数都不会将errno值设置为0,在中定义的所有常量都不为0。
1 #include
2 #include
3
4 int main(int argc, char **argv)
5 {
6 fprintf(stderr, "EACCES: %s\n", strerror(EACCES));
7 errno = ENOENT;
8 perror(argv[0]);
9 exit(0);
10 }
4、时间值:
UNIX系统一直使用两种不同的时间值:
(1) 日历时间:1970年1月1日00:00:00以来所经过的秒数累计值。用于记录文件最近一次的修改时间等。系统基本数据类型time_t用于保存这种时间值。
(2) 进程时间:也称为CPU时间,用以度量进程使用的中央处理机资源。进程时间以时钟滴答计算。系统基本数据类型clock_t用于保存这种时间值。
Tags:  笔记本基础知识 公安基础知识笔记 apue350 apue答案

延伸阅读

最新评论

发表评论