通用文件I/O模型之open

news2024/10/10 18:46:22

前面介绍了linux系统一切皆文件的概念,系统使用一套系统调用函数open()、read()、write()、close()等可以对所有文件执行I/O操作。应用程序发起的I/O请求,内核会将其转化为相应的文件系统操作,或者设备驱动程序操作。接下来我们一起了解一下open()函数。

open()函数可以打开一个已有文件或创建并打开文件,同时返回文件描述符。函数原型如下:

pathname指定要打开的文件;

flags为打开文件的标志位,控制打开方式;

mode为可选参数,用于指定新创建文件的权限模式。

如果指定的文件不存在,则可以通过在flags中指定O_CREAT,然后open()即可创建。flags参数包含的标志及含义如下表,多个标志可用运算符“|”合并到一起。其中标志参数必须包含O_RDONLY、O_WRONLY、O_RDWR中的一种访问方式。

oflag必须指定下面其中一个:

下面是可选选项:

这些常量可分为三组:文件访问模式标记(可以通过fcntl的F_GETFL进行检索)、文件创建标记(不可以通过fcntl的F_GETFL进行检索或修改)、已打开文件的状态标记(可以通过fcntl的F_GETFL和F_SETFL进行检索和修改)若打开文件时发生错误,open()将返回-1,错误号errno标识错误原因,可能参的错误如下:

由open和openat函数返回的文件描述符一定是最小的未用的数值,常量_POSIX_NO_TRUNC决定是否要截断过长的文件名或路径名,还是返回一个错误。

出错时open返回-1,错误号errno标识错误原因:

代码示例:

若未指定O_CREAT标记,则可以省略mode参数,即创建文件,必须指定mode设置权限默认值,但是权限,不仅依赖于mode,还受到进程umask和父目录的默认访问控制列表影响:

代码示例:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gitee开源商城diygw-mall

DIYGW可视化开源商城系统。所的界面布局显示都通过低代码可视化开发工具生成源码实现。支持集成微信小程序支付。 DIYGW可视化开源商城系统是一款基于thinkphp8 framework、 element plus admin、uniapp开发而成的前后端分离系统。 开源商城项目源码地址:diygw商城…

funasr: 报错 CUDA error: invalid device ordinal

问题描述 使用案例中的代码加载模型的时候,会报错 CUDA error: invalid device ordinal 运行的代码是 model AutoModel(modelmodel_dir,vad_model"fsmn-vad",vad_kwargs{"max_single_segment_time": 30000},device"cuda:0", ) 解…

C语言预处理详解(下)(31)

文章目录 前言一、命令行定义二、条件编译三、文件包含头文件被包含的方式嵌套文件包含 总结 前言 再介绍几点吧! 一、命令行定义 许多C 的编译器提供了一种能力,允许在命令行中定义符号。用于启动编译过程 当我们根据同一个源文件要编译出不同的一个程序…

VScode连接远程服务器踩坑实战(新版离线vscode-server安装)

想要用VScode连接远程服务器,但远程服务器并没有连接外网,因此需要离线手动安装vscode-server但网上的方法都是旧版本的安装,没有新版本的配置。因此记录一下我都踩坑实战。 1、VScode扩展安装与配置 (1)vscode扩展安…

双十一买什么最划算?2024年双十一选购攻略汇总!

随着一年一度的双十一购物狂欢节日益临近,消费者们纷纷摩拳擦掌,准备在这个全球最大的购物盛宴中抢购心仪已久的商品。双十一不仅是一场购物的狂欢,更是商家们推出优惠、促销的绝佳时机。然而,面对琳琅满目的商品和纷繁复杂的优惠…

《数据密集型应用系统设计》笔记——第二部分 分布式数据系统(ch5-9)

第5章 数据复制 目的: 地理位置更近,降低延迟故障冗余提高读吞吐量 主节点与从节点(主从复制) 主从复制: 写请求发送给主节点,主节点将新数据写入本地存储;主节点将数据更改作为复制的日志发送…

医学图像处理入门:VS2019+DCMTK3.6.8编译及环境配置

1. 下载DCMTK的源文件包和支持库 首先下载dcmtk软件包,此处我们下载源码和支持库来进行自己编译。下载网址: https://dicom.offis.de/en/dcmtk/dcmtk-software-development/ 如图所示,选择合适的版本进行下载,此处采用VS2019进行…

AI生成视频

分享一个免费的根据文案脚本AI生成视频的网站: https://pictory.ai/?el2000&htrafficsourcepictorybloghttps://pictory.ai/?el2000&htrafficsourcepictoryblog 1、点击Get Started For Free登录 2、登录进入个人主页,可以选择不同的方式生成视…

快速理解OPTIONS请求

快速理解OPTIONS请求 简述实际遇到的问题 简述 OPTIONS请求常被用作一种“预检”请求,以检查实际请求(如POST或PUT)是否可以被服务器接受。 为什么要有OPTIONS请求? 比如当一个POST请求比较复杂时,传输一个POST请求比…

pdf怎么删除多余不想要的页面?删除pdf多余页面的多个方法

pdf怎么删除多余不想要的页面?在日常办公或学习中,我们经常会遇到需要处理PDF文件的情况。PDF文件因其格式稳定、不易被篡改的特点而广受青睐,但在编辑方面却相对不如Word等文档灵活。有时,在接收或创建的PDF文件中,可…

【含文档】基于Springboot+Android的校园论坛系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

Linux-sed和gawk

文本处理-sed编辑器 文本处理-gawk程序 文本处理-sed编辑器基础 文本处理-sed编辑器基础-使用地址 文本处理-sed编辑器基础-删除行 文本处理-sed编辑器基础-插入和附加文本 文本处理-sed编辑器基础-修改行/转换命令 文本处理-sed编辑器基础-回顾打印-打印行/打印行号/列出行 文…

如何用一套商业模式 整合本地商业 打造强有力的商家联盟!

大家好,我是吴军,来自一家专注于软件开发的公司。 近年来,一种新颖的商业模式异军突起,它不仅为消费者和零售商带来了实质性的利益,也为平台创造了可观的经济回报。 在当前经济环境下,消费者行为愈发理性&…

[SQL] 安装

一 Windows 1.1 下载 进入Mysql的官方网站,点击下载->找到社区版本 选择对应操作系统进行下载。 点击下载 选择直接下载即可 1.2 安装 选择Full安装: MySQL服务器、客户端程序和其他附加工具如果只需要服务端那就选择Server only即可 点击执行,等待组件下载完…

如何批量下载淘宝主图、详情图和SKU图?

如何批量下载淘宝主图、详情图和SKU图?在电商行业竞争日益激烈的今天,电商从业者面临着前所未有的挑战与机遇。为了提升商品竞争力,深入分析对手策略及优化自家产品展示成为日常工作的重中之重。其中,批量下载淘宝主图、详情图和S…

vue cli配置环境变量并使用

1.在根路径下创建.env文件 2.写.env文件内容 文件里存储的值的key要以 VUE_APP 开头 VUE_APP VUE_APP_PUBLIC_PATH/ VUE_APP_PUBLIC_PATH/helper/ 3.使用 publicPath: process.env.VUE_APP_PUBLIC_PATH, 4.配置package.json "serve:production": "vue-cli-s…

FreeRTOS-软件定时器

FreeRTOS-软件定时器 一、软件定时器简介1.1 软件定时器的状态和工作模式 二、软件定时器结构体成员和API函数三、软件定时器实验 一、软件定时器简介 定时器:指定时间开始,经过一个指定的时间,触发一个超时事件,用户可自定义定时…

ThinkPHP5bootstrapMySQL开发学习平台(包括后台管理功能、PC端网页、移动端网页)手把手运行源码

一、项目预览(全部源码链接在最下面) 功能及页面持续优化中...... 二、本地运行方式 1、下载源码包进行解压(源码在最下面) 2、下载phpstudy_pro,并运行Apache&

精华帖分享 | 判定策略失效的新方法——统计假设检验

本文来源于量化小论坛策略分享会板块精华帖,作者为元亨利贞,发布于2023年12月25日。 以下为精华帖正文: 1、起因 去年刚入门B圈,由于之前有做商品期货择时的经验,通常来讲,趋势跟随,并且回测结…

谁说电商选品找货源没有捷径,只要你用对工具!

最近跟很多同行聊,都在抱怨选品难的问题,都说7分靠选品,3分靠运营,对于选品来说,并没有捷径可走,但其实是有很多不同的角度的。 现在市面上大部分开发做的选品,“选品方法”或“产品分析方法”…