文件描述符与 inode 相关背景知识
出自《The Linux Programming Interface》
多线程
有上面的背景知识可知,多线程情况下写同一文件用的是同一个【文件偏移量】,因此只要单条写日志操作是原子操作,就不会出现日志混乱的情况。
系统 I/O
系统 I/O write() 不带应用层缓冲(进程级别缓冲),因此只要保证单条日志操作之调用一次 write() 就可以保证多线程是安全的。
标准 I/O
As an example, the POSIX standard requires that C stdio FILE* operations are atomic.(https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_concurrency.html)
待确认:多个线程是否用同一缓冲区?
先假设是(个人认为是,缓