open函数
open的用法
第一个参数是待打开的文件名,第二个参数是位图。
flags(位图)必须包含以下三项:只读,只写,读写。
0个或多个文件的创建选项和文件的状态选项,可以以按位或的方式放到文件中去。
第一个为只读。
第二个为读写。
第三个为只写,并且文件不存在的话要创建,而且文件存在的话要截断。
第四个为读写,而且有则清空,无则创建。
返回值
打开成功返回文件描述符,失败返回-1。
重载和变参
open函数有两个原型,一个是两参的实现,一个是三参的实现。
如果flags中有create,则要用三参的形式,否则用两参的形式。
函数名相同,参数的个数或类型不同,叫做函数重载。但是C中不存在重载。所以open函数是用变参实现的。(printf函数叫变参函数)
如果给这样两个函数,不知道是在C还是C++中,那么如何判断这个函数是由函数重载实现的还是由变参函数实现的?
这里open最多传三个参数,那么我们传多个参数,比如4个:
- 一编译如果报的是语法错误,说明格式错了,是定参(由重载实现)。
- 一编译如果没有报错,那么是由变参实现的,因为这个函数也不知道一共有多少个参数。
比如对于printf("%d%d%d",a,b,c,d);这个编译器也只是报警告,而不是错误。因为printf函数是变参函数。
close函数
close的用法
close是用来关闭一个文件描述符,参数也是一个文件描述符。
返回值
一般用0和-1来表示文件关闭是否出错。
标签:文件,函数,变参,参数,Linux,重载,close,open From: https://blog.csdn.net/m0_63690570/article/details/140876618