要将内容写到文件的尾端
如果open函数没有使用O_APPEND选项,则要分两步
1.lseek定位到文件的尾端
2.写内容
单进程写文件时是没有问题的,若是两个进程同时执行此操作,可能出现
都定位到文件的尾端,进程a写了内容后,进程b再写,则b会覆盖掉a所写的内容。
而O_APPEND选项则把上述两步合成一个原子操作,即不会出现问题,确保写的内容都是在文件尾端。
要判断文件是否存在,不存在则创建该文件
1.打开文件,如果失败,则表示文件不存在。
2.创建文件
如果两个进程都执行上述操作,则在进程a准备创建文件时,进程b已经创建文件,并写了内容。
则进程a再创建文件时会把进程b所写的内容清空掉。
而O_CREAT则把上述操作合并成原子操作,即不会出现问题。确保文件不存在则创建新文件。