标准C库IO函数
C库的IO函数时跨平台的,它是先通过例如fopen、fread这样的函数去调用对应系统内核例如windows、linux的write或者是read函数进而实现跨平台读写文件。
那么一般都是要获取一个FILE *fp的内存地址,这个实际上是一个结构体,包含三个部分。
在Linux中,IO是针对内存来说的。
在FILE *fp来说,文件描述符其实是由linux内核给出的。
C库IO的优点:存储效率很快,因为有一个缓冲区,读写都是先到缓冲区,然后再和物理内存进行交换数据(适用于普通读写)
linux内核IO的优点:每一次读写都是直接和硬件进行交换,适用于网络通信这样的比较快接收到交换信息的方式。
虚拟地址空间
是程序员构想出来的一个空间,是不存在的,程序运行结束了,虚拟空间就不存在了。他是为进程分配的一个资源,进程就是正在运行中的程序,占用的是内存的空间。与程序不同,程序占用的是硬盘的空间。