Android C++系列:Linux文件IO操作(一)

时间:2024-07-17 19:09:16

1.1 C标准函数与系统函数的区别

![[Android C++系列:Linux文件IO操作(一).png]]

1.1.1 I/O缓冲区

每一个FILE文件流都有一个缓冲区buffer,默认大小8192Byte。

1.1.2 效率

1.1.3 程序的跨平台性

事实上Unbuffered I/O这个名词是有些误导的,虽然write系统调用位于C标准库I/O缓 冲区的底层,但在write的底层也可以分配一个内核I/O缓冲区,所以write也不一定是直接 写到文件的,也可能写到内核I/O缓冲区中,至于究竟写到了文件中还是内核缓冲区中对于 进程来说是没有差别的,如果进程A和进程B打开同一文件,进程A写到内核I/O缓冲区中的数 据从进程B也能读到,而C标准库的I/O缓冲区则不具有这一特性(想一想为什么)。

1.2 PCB概念

1.2.1 task_struct结构体

    /usr/src/linux-headers/include/linux/sched.h

1.2.2 files_struct结构体

1.3 open/close