首页 > 系统相关 >Linux系统编程-open,close,重载和变参

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

时间:2024-08-02 18:23:43浏览次数:15  
标签:文件 函数 变参 参数 Linux 重载 close open

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

相关文章

  • Linux 常见编辑器
    命令行编辑器VimLinux上最出名的编辑器当属Vim了。Vim由Vi发展而来,Vim的名字意指ViIMproved,表示Vi的升级版。Vim对于新手来说使用比较复杂,不过学会了之后会有效率上的提升,建议先学会使用Vim编辑并保存文件,之后在使用的过程中再逐渐学习高级用法。Vim是Ubuntu......
  • Win11不在C盘安装WSL2(Linux环境),安装Nvidia驱动和默认使用Win11的网络代理服务
    众所周知,WSL2为Windows用户提供了一个强大、高效且灵活的Linux环境,特别适合开发者使用。它结合了Windows和Linux的优点,为用户提供了更加全面和高效的工作环境。但缺点也很明显,那就是默认安装在本来空间就不富裕的C盘。本次我们在非C盘的盘符快速安装基于wsl2的linux开......
  • Linux
    在Linux系统中,主流的图形显示系统主要有以下几种:XWindowSystem(X11)简介XWindowSystem,通常简称为X或X11,是历史最悠久、最广泛使用的图形显示系统。提供与硬件无关的基本图形显示功能,并支持网络透明性。特点支持多种平台和硬件。具有丰富的窗口管理器和桌面环境......
  • Docker①_VMware下载和部署_Linux
    目录1.VMware下载和部署Linux虚拟机1.1VMWare正版安装部署1.2VMWare个人安装1.3网络类型设置为桥接模式1.3.1参考配置为桥接模式1.3.2三种模式区别1.3.3VMnet1和8的IP地址的主要用途1.4配置静态ip2.常见问题解决Xshell连接虚拟机(有前面部分步骤图)Centos7静......
  • 在Linux上创建一个.NET Core应用作为服务运行
    要在Linux上创建一个.NETCore应用作为服务运行,你可以使用systemd来管理你的服务。以下是创建服务的基本步骤和示例代码:确保你的.NETCore应用已经发布并且可以在Linux上运行。创建一个新的systemd服务文件。创建一个名为yourapp.service的文件,替换yourapp为你的应用......
  • crontab在linux中的语法规则
    总结:  分钟小时日月周数值范围 0~590~231~311~120~7(0和7都表示周日);MON~SUN每* 每分钟每小时每天每月 区间-a-b:从a分到b分a-b:从a点到b点a-b:从a号到b号a-b:从a月到b月a-b:从周a......
  • linux shell学习(上)
    第一个shell脚本打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell脚本,扩展名就用php好了。输入一些代码,第一行一般是这样:实例#!/bin/bashecho"HelloWorld!"#......
  • linux shell 写的一个小玩意(bash含99乘法表和计算器)
     esac.sh 主页面#!/bin/shwhile:do    echo"***********************************"    echo"*                *"    echo"*  输入你想要点的妹妹:1-3号 *"    echo"*    ......
  • Linux新建一个服务
    新建一个服务你可以创建一个Systemd服务单元,以便在系统启动时运行特定的脚本或程序。首先,创建一个.service文件,例如my_service.service,并将其放在/etc/systemd/system/目录下。在这个文件中,定义你的服务,包括启动方式、依赖性等。例如,my_service.service文件可能如下所示:[Unit]......
  • Linux多硬盘合并统一挂载
     文章目录一、问题描述二、基本概念三、操作流程1.查看磁盘2.创建PV3.查看PV信息4.创建VG5.查看卷组6.创建逻辑卷7.查看分区8.格式化分区9.挂载目录10.开机自动挂载一、问题描述书接上回Linux服务器挂载新硬盘,最开始我这台机器挂载了一块4T的硬盘,后来空间不够用了又加......