Linux系统编程--IO

news/2024/10/17 12:28:07/

文章目录

  • 一、系统调用
    • 1.open()
      • 1.1 所需基础知识
      • 1.2. open() 详解
      • 1.3 示例代码
  • 二、标准IO
  • 三、高级IO

一、系统调用

1.open()

1.1 所需基础知识

Linux遵循一切皆是文件的理念,因此,很多的交互工作都是通过读取和写入文件来完成。
文件必须被打开才能被访问。文件可以以只读方式或者只写方式打开,或者两者兼有。一个打开的文件通过唯一的文件描述符进行引用,该描述符是打开文件的元数据至其本身的映射在Linux内核中,这个描述符,用一个整数表示 (int) ,简写为fd。文件描述符在用户空间中共享,允许用户程序用文件描述符直接访问文件。

1.2. open() 详解

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>int open (const char* name, int flags);
int open (const char* name, int flags, mode_t mode);

flags参数必须是一下之一:

参数含义
O_RDONLY只读
O_WRONLY只写
O_RDWR读写模式

flags参数可以和以下一个或多个值进行按位或运算,用以修改打开文件请求的行为。

参数含义
O_APPEND追加模式打开,文件位置指针将被置于文件末尾
O_ASYNC当指定文件可写或者可读时产生一个信号(默认SIGIO)
O_CREAT当指定的name文件不存在时,将由内核来创建
O_DIRECT打开文件用于直接I/O
O_DIRECTORY如果name不是目录,open()调用将会失败,这个标志用于opendir()内部使用
O_EXCL和O_CREAT一起给出的时候,如果name给定的文件已经存在,则open()调用失败,用来防止文件创建时出现竞争
O_LARGEFILE给定文件打开时使用64位偏移量,这样大于2G的文件也能被打开

1.3 示例代码

代码示例


二、标准IO

三、高级IO


http://www.ppmy.cn/news/1095896.html

相关文章

Kubernetes入门 十四、存储管理

目录 临时存储hostPathEmptyDir NFS 挂载安装NFS配置文件 PV和PVC概述PV 的回收策略PV 的访问模式PV 的状态使用PV和PVC生命周期 动态供应StorageClass动态供应流程NFS 动态供应案例 临时存储 Kubernetes 支持很多类型的卷。 Pod可以同时使用任意数目的卷类型。 临时卷类型的…

【LeetCode-中等题】17. 电话号码的字母组合

文章目录 题目方法一&#xff1a;递归回溯 题目 方法一&#xff1a;递归回溯 参考讲解&#xff1a;还得用回溯算法&#xff01;| LeetCode&#xff1a;17.电话号码的字母组合 首先可以画出树图&#xff1a; 先将数字对应的字符集合 加入到一个map集合 这里需要一个index来控…

Chrome 108版(64-bit 108.0.5359.125)网盘下载

还在用Selenium的朋友们注意了&#xff0c;目前Chrome的最新版是116&#xff0c;而官方的Chromedriver只支持到115版。 可惜Google不提供旧版Chrome的下载方式&#xff0c;需要旧版的很难回去了。如果真的想要旧版的Chrome&#xff0c;只能民间自救。 我在2022年12月备份了C盘…

ClickHouse 存算分离改造:小红书自研云原生数据仓库实践

ClickHouse 作为业界性能最强大的 OLAP 系统&#xff0c;在小红书内部被广泛应用于广告、社区、直播和电商等多个业务领域。然而&#xff0c;原生 ClickHouse 的 MPP 架构在运维成本、弹性扩展和故障恢复方面存在较大局限性。为应对挑战&#xff0c;小红书数据流团队基于开源 C…

matlab求解方程组-求解过程中限制解的取值范围

文章目录 问题背景代码my_fun.mmain.m 结果展示:不加入F(4)加入F(4) 问题背景 求解方程组的时候&#xff0c;对某些未知数的求解结果的取值范围有要求。例如在某些物理问题求解中&#xff0c;要求待求解量大于0。 代码 一共两个文件: my_fun.m main.mmy_fun.m function Fm…

concrt140.dll怎么下载,concrt140.dll修复工具(修复精灵下载)一键修复问题

今天&#xff0c;我将为大家介绍一个非常常见的问题&#xff1a;由于找不到concrt140.dll,无法继续执行代码怎么办。这个问题可能会让很多网友感到头疼&#xff0c;但是别担心&#xff0c;我会为大家提供5种最全详细的恢复方法。在接下来我将详细介绍这些问题及其解决方法。希望…

未来之路:数字孪生在车联网中的关键作用

随着车联网技术的快速发展&#xff0c;共享车辆出现在城市各个角落&#xff0c;数字孪生作为一种虚拟仿真技术&#xff0c;正在物联网行业内迅速崭露头角。数字孪生不仅提供了对车辆的实时监测&#xff0c;还为汽车制造商和车主带来了多方面的优势和应用&#xff0c;下面简单从…

高通DSP架构和HVX指令介绍

1. Qualcomm Snapdragon™处理器 Qualcomm Snapdragon™是高通的移动平台处理器,是一种系统级芯片(SoC),包含了CPU、GPU、DSP、调制解调器、无线电、摄像头处理器、安全处理器等多种功能。Snapdragon处理器广泛应用于智能手机、平板电脑、智能手表、智能音箱等移动设备中。…