并发编程 - CS:APP 第十二章
本章主要内容:
- 实现并发程序的三种方法:
- fork() 进程
- I/O 多路复用
- 使用线程
- 使用信号量同步线程
- 线程安全问题
Linux 所有的IO设备都被模型化为文件,所有的输入输出都被抽象成文件的读写。这种将设备映射成文件的方式,允许内核提供一些低级的函数接口还读写,被称为Unix IO。
在Linux中,较高级的IO函数(C标准库IO)是由内核提供的系统级Unix IO来实现的。
定义:一个应用程序要通过内核打开文件,内核返回一个非负小整数,叫做文件描述符,应用程序要操作文件,只需要知道文件描述符即可。
Linux Shell 创建的进程会打开三个文件:
0:标准输入;也可以使用定义在unistd.h 中的STDIN_FILENO 来显示表述
1:标准输出;STDOUT_FILENO
2:标准错误;STDERR_FILENO
EOF:如果一个字节数为m的文件,一个读操作,读到k字节处。如果k >= m,则触发一个End of file条件,应用程序可以检测这个条件,但文件末尾并不是真的有EOF符号。
2022/9/1 配置了Ubuntu,用来学习《CSAPP》上面需要实践的代码。这篇博客是为了记住我究竟配置了什么,也为了方便下次在其他设备上配置Ubuntu。
下载的方法见官网,配置C/C++的方法网上的博客也很好搜到
Linux系统VsCode 配置C/C++环境_ZERO_pan的博客-CSDN博客_linuxvscode配置c++环境