linux系统的io函数更加偏底层,更加建议使用C库的函数,效率较高(有缓冲区)
磁盘满了或者手动fflush或者关闭文件才会io一次,效率提高,但是linux没有缓冲区
主要通过file *fp指针操作文件,文件描述符是定位文件用的,是对文件的数据进行操作,缓冲区提高效率
file结构体组成
写/读的起始指针 起始位置 结束位置…… fileno是文件描述符
虚拟地址空间
虚拟地址空间不存在
程序就是代码只占用磁盘空间不占用内存空间,但是程序运行起来时,操作系统会为这个程序分配一些资源,加载到内存中去,对应创建进程
栈空间保存局部变量等等 从小到大
堆空间保存new的量 从高地址到低地址保存
文章来源地址https://uudwc.com/A/0k50e
文件描述符
文件描述符在内核区,在PCB进程控制块里面用数组存放文件描述符,一般默认大小为1024所以一个进程最大同时打开的文件为1024
一个文件可以被打开多次,但是每次的文件描述符是不一样的文章来源:https://uudwc.com/A/0k50e