Unix环境高级编程读书笔记(一)

时间:2022-06-21 22:13:44

第一章:

操作系统为程序提供的服务和环境主要有:1.访问登陆权限 2.文件和目录资源 3.进程和内存管理 4.优先级 5.出错处理 6.系统调用 7.外设包括输入和输出 8.时间值 9.用户标识 10.ANSIC 11.信号

1.登录存储 登录过程 shell命令行解释器和命令脚步(shell表示就是一种解释性语言)  unix的魅力的体现之一

2.文件系统要和windows的文件系统有明显的区分和比较 文件系统和磁盘格式不一样 文件系统 文件名 目录名 工作目录 起始目录

7.文件描述符 标准输入 标准输出和标准出错 这三个竟然是shell提供的三个标准文件描述符 amazing!不用缓存的io read write可以复制任一文件 标准io

3.程序和exec 程序的执行实例即进程 进程id 进程控制 fork exec waitpid 在子进程中用execlp代替子进程中的执行程序 和父进程走不一样的路 这里有自己的感悟 进程就像是一个赶路的孩子 他前行的道路就是程序 而这个孩子的名字状态等和他在走路构成了一个程序执行实例。

10.void*作为返回值来解决指针强制类型转换的问题 以_t结尾的数据类型被称为原始系统数据类型.在一个头文件的typedef中定义 在不同的系统实现中 只需要修改头文件即可

5.出错处理 unix函数 整型变量errno strerror函数将errno映射为一个出错信息字符串 perror在标准出错上产生一条错误消息 基本不用这两个 用的是附录3中的出错函数

9.用户id 组id 用户可添加到多个组内

11.通知进程的一种技术 进程处理信号方式:1.忽略2.系统默认方式 3.提供一个处理函数 很多条件会产生信号 两种键盘方式 : 退出键 中断键 当我们是该进程的所有者时 我们可以通过另外一个进程对其发送kill()信号 signal函数很重要

8. unix timestamp 进程时间(时钟滴答数来记录 时钟时间 用户cpu时间 系统cpu时间:执行内核服务所花费的时间) 

6.提供多种系统内核服务的入口点 系统调用 不可更改的接口 unix通过在标准c库中设置一个具有相同名字的函数 用户可以通过标准c调用序列来实现系统调用 内存器分配函数均调用sbrk系统函数 :增加或减少指定字节数的进程地址空间