2.1.文件读写权限
(1)linux中文件有读写权限,我们在open打开文件时也可以附带一定的权限说明(譬如O_RDONLY就表示以只读方式打开,O_WRONLY表示以只写方式打开,O_RDWR表示以可读可写方式打开);当我们在open文件时附带了某种权限后,打开的文件就只能按照该权限来操作。
2.2.更改文件内容
(1)当我们open已经存在并且内部有内容的文件会出现4种情况(原来的内容消失了(使用O_TRUNC标志);新内容添加在原内容后面(使用O_APPEND标志);新内容添加在原内容前面;不读写该文件时原来该文件的内容不变(默认不使用O_APPEND和O_TRUNC标志));如果O_APPEND和O_TRUNC同时出现,经代码验证O_TRUNC标志起作用,O_APPEND标志作用被屏蔽了。
2.3.退出进程或程序
(1)当程序(进程)在前面的操作执行失败导致后面的操作都不可能进行下去时,我们应在前面的错误监测程序中结束整个程序(进程),不应该让程序(进程)继续运行下去。
(2)在main函数中使用return关键字,一般原则是程序正常终止return 0,程序异常终止return -1,不常用。
(3)正式终止进程(程序)应使用exit或_exit或_Exit之一,一般原则是进程正常终止exit(0),程序异常终止exit(-1),经常使用。
2.4.打开不存在的文件
(1)当我们open某文件时针对该文件是否存在会出现2种情况(创建并且打开并不存在的文件,若该文件存在则该文件会被修改重置(使用O_CREAT标志);创建并且打开并不存在的文件,若该文件存在则会报错,不会创建修改该文件(同时使用O_EXCL标志和O_CREAT标志)) 。
(2)open函数在使用O_CREAT标志去创建文件时,可以使用第3个参数mode来指定要创建的文件的权限;mode使用4个数字来指定权限,其中后面3个很重要,对应我们要创建的目标文件的权限标志;譬如创建1个可读可写不可执行的文件就用0666。
2.5.阻塞与非阻塞
(1)如果某个函数是阻塞式的,则我们调用该函数时当前进程有可能被阻塞住(实质是该函数内部要完成的事情条件不具备&