【Linux 基础 IO】文件系统

news/2024/10/18 12:30:12/

文章目录

      • 1.初步理解文件
      • 2.C语言环境下的文件操作
        • 2.1 C库中 fopen、fwrite 的讲解
        • 2.2 C文件操作的实例
      • 3.系统调用接口的讲解

1.初步理解文件

🐧① 打开文件: 本质是进程打开文件,只有程序运行起来文件才被打开;

🐧②文件没有被打开的时候在哪里呢? ----- 在磁盘中

🐧③进程可以打开很多个文件吗? ---- 可以的🙆‍

🐧④系统中可不可以存在很多个进程呢? ---- 可以存在

🐧⑤由第3、4点可以得知,在OS内部一定存在大量的被打开的文件(如何管理呢? 先描述,在组织


2.C语言环境下的文件操作

2.1 C库中 fopen、fwrite 的讲解

🐧①语法:
在这里插入图片描述


🐧②fopen () 的打开方式:

Ⅰ.✌ 以w 的方式打开: 如果该路径下没有该文件的话,则创建该文件,如果该文件存在的话,则在打开文件的时候,把文件的内容清空;

Ⅱ.✌a的方式打开: 直接在该文件的后面追加内容,不会清空文件;

  • 以下两个知识点是 Linux 中的概念:

Ⅲ.✌输出重定向>,实际上就是充当 w的作用;
在这里插入图片描述

Ⅳ.✌追加重定向>>,它实际充当的是 a的作用;
在这里插入图片描述



🐧② fprintf ( ) 的使用

在这里插入图片描述

将内容打印到 log.txt 这个文件中:
在这里插入图片描述



🐧③ C库函数 fwrite ( ) 的介绍
在这里插入图片描述


2.2 C文件操作的实例

对fopen, fread, fwrite, fseek, fclose等函数的使用;

使用代码打开当前路径下的“bite”文件(如果文件不存在在创建文件),向文件当中写入“linux so easy!”.

在从文件当中读出文件当中的内容, 打印到标准输出当中; 关闭文件流指针;

在这里插入图片描述

3.系统调用接口的讲解

  • 为什么要有系统调用呢?
    🐧Ⅰ.我们对文件进行读写操作,文件是存储在磁盘中的,而磁盘是硬件,我们作为一个用户,操作系统绝对不允许我们对硬件直接进行访问,所以操作系统为我们提供系统调用以便我们能够访问文件。

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

相关文章

Tqdm,一个让 Python 不再无聊的幕后英雄

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…

hadoop学习---基于Hive的教育平台数据仓库分析案例(二)

衔接第一部分,第一部分请点击:基于Hive的教育平台数据仓库分析案例(一) 意向用户模块(全量分析): 需求指标: 需求一: 计期内,新增意向客户(包含自己录入的意…

相机2:曝光三要素之ISO(感光度)

曝光是相机的感光元件与光线接触成像的过程,而曝光三要素分别指的是光圈大小,快门速度和感光度。这三个因素都可以控制曝光量,同时也分别有自己的特点。 什么是感光度? ISO又叫感光度,指的是相机感光元件(…

c语言之枚举

枚举是将一个变量的可能的值都列出来&#xff0c;但是对应的值只能是其中的一个。 枚举创建的方式 enum 枚举类型名&#xff08;值1&#xff0c;值2&#xff0c;值3&#xff0c;值n&#xff09; 如何定义枚举变量 enum 枚举类型 变量名 示例代码如下 #include<stdio.h…

对惰性提升快速降级FIFO(QD-LP-FIFO)的理解和简易代码实现

文章目录 欢迎做客泥烟の新站本文链接 对QD-LP-FIFO的理解和简易代码实现我的理解:简化的QD-LP-FIFO缓存算法实现(java版)输出从输出可以看出以下几点分析&#xff1a; 欢迎做客泥烟の新站 本文链接 &#x1f449;对QD-LP-FIFO的理解和简易代码实现 - 泥烟のMkdocs 对QD-LP-…

mac电脑如何安装python及环境搭建

&#xff08;1&#xff09;进入官网&#xff1a;Download Python | Python.org&#xff0c;根据自己电脑选择python (2)这里我选择的是mac,点击&#xff1a;macos&#xff0c;选择最近版本并点击进入 (3)选择mac版本&#xff1a; (4)点击就可以进入下载&#xff1a; (5)下载好之…

Linux 部署YUM仓库及NFS共享服务

目录 一.YUM仓库服务 YUM (Yellow dog Updater Modified) Linux系统各家厂商用的安装源 准备安装源 软件仓库的提供方式 RPM软件包的来源 构建Centos7软件仓库 在软件仓库中加入非官方RPM包组 为客户机指定YUM仓库位置 制作ftp源 服务端 (1)关闭防火墙 (2)下载vsftp…

C++多态有几种实现方式

1、重载&#xff1a;通过函数名相同但参数不同的多个函数实现不同行为。在编译时通过参数类型决定调用哪个函数。 2、重写&#xff1a;通过继承让派生类重新实现基类的虚函数。在运行时通过指针/引用的实际类型调用对应的函数。 3、编译时多态&#xff1a;通过模板和泛型实现…