Linux系统编程-open,close,重载和变参

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来表示文件关闭是否出错。

  • 21
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值