基础知识
- 登录相关知识
口令就是指密码;口令文件通常是指/etc/passwd,里面存储了用户的所有信息,口令文件中的每一行(登录项)展示着由冒号分隔的7个字段,
依次是:登录名:加密口令:数字用户ID:数字用户组ID:注释字段:起始目录:shell程序。
目前,所有系统都将加密口令移到了另一个文件中。 - 文件路径
以’/'开头的是绝对路径,如/etc/passwd
;其他的是相对路径,如假设当下在根目录下,则有cd etc/passwd
。
cd .. 回到上一级目录
- 程序与进程与线程
3.1 正在执行的程序就是进程,每个进程由一个IP唯一表示,称为PID(process ID)
getpid函数可以得到当前进程的PID。
3.2 用于进程控制的有3个函数
分别为fork,exec,waitpid函数,其中exec函数有七种变体,统称为exec函数
3.3 线程
一个进程中的所有线程共享同一地址空间 - 时间值
UNIX系统中有两种时间值,日历时间与进程时间(CPU时间)。进程时间以时钟滴答为单位,1s常取50,60,100个时钟滴答
另外,度量一个进程的执行时间时,系统为一个进程维护了以下3个进程时间值:- 时钟时间
- 用户CPU时间
- 系统CPU时间
用户CPU时间指shell执行用户指令所需要的时间;系统CPU时间指一个进程中内核执行该程序时所需要的时间。
详细解释见《APUE》
课后习题
-
在第一次执行./a.out命令后,立即有两个进程占用了两个PID;所以第二次执行该命令时,PID+2
- strerror没必要用const,因为是赋值传递,所以不会影响原来参数的值,而perror使用的是指针,如果不加const限制,则在使用该指针时若修改其值,会影响指针所指对象的值;加了const,一般只读取指针所指的内容,而不进行修改操作。那为何不直接赋值传递???