CMU15-213 学习之旅 Ⅰ-1
开始系统学习cmu15-213,打算一鼓作气学完,做完lab,看完书上相应的章节。所以想每天记录一下自己的学习内容和心得。我主要选取了几个我认为比较重要的章节进行学习。
UNIX IO 配套lab 会在第二节中展示 😃
看完了配套视频以及CSAPP第八章内容。
知识点小结:
- 主要学习了fork()函数的使用方法。
fork()函数传入为空,返回值是pid_t(进程id,定义在unistd.h头文件中,_t一般代表typedef的内容)。
fork()函数比较特殊的点在于调用一次,返回两次。两次返回分别是父进程(返回值对应于子进程的进程id)和子进程(返回值对应于0)。 - fork()套用时的判断。根据绘制进程前趋图,来辅助理解带有fork()嵌套的程序。
- 进程一般有三种状态:运行,停止(被阻塞),终止(exit,return,kill)。父进程会回收僵尸进程,孤儿进程可以被pid=1的init进程回收。
技巧小结:
1). 在调用需要判断合法性的函数时,可以使用同名函数(区分大小写)进行封装。这样可以减少主程序中的判断语句,降低程序的冗长度,提高可读性。
我的理解:
实际上这样的操作可以过滤非法返回值。
实例:fork()函数,可以封装在Fork函数中,传入形参与返回值和fork()保持一致。
2).