8月8日复习内容(基础的文件IO操作)

news2024/9/22 23:39:52

man手册

主要分为以下几个章节

  1. User Commands(用户命令):这一章节包含了普通用户(非root用户)可以执行的命令。这些命令通常用于日常的文件管理、文本编辑、程序执行等任务。

  2. System Calls(系统调用):此章节描述了内核提供的服务接口,即操作系统提供的所有系统调用。系统调用是操作系统提供给用户程序调用的一组“特殊”接口,用户程序通过这组“特殊”接口可以获得操作系统内核的服务。例如,open、write等都属于系统调用。

  3. C Library Functions(C函数库调用):这一章节主要介绍了C语言标准库中的函数,这些函数是C语言编程中常用的库函数,如printf、fread等。它们提供了对输入输出、字符串处理、数学计算等功能的支持。

  4. Devices and Special Files(设备文件和特殊文件):此章节描述了Linux中的设备文件和特殊文件。设备文件通常位于/dev目录下,用于表示硬件设备或特殊设备。特殊文件则具有特殊的行为或用途,如管道(pipe)和套接字(socket)。

  5. File Formats and Conventions(配置文件及格式):这一章节介绍了Linux中各种配置文件的格式和约定。这些配置文件通常用于存储系统设置、用户配置等信息,如passwd文件用于存储用户密码信息。

  6. Games and Toys(游戏和娱乐):此章节包含了一些与游戏和娱乐相关的命令或程序。这些命令或程序通常不是系统管理的核心部分,但可以为用户提供娱乐或休闲的功能。

  7. Miscellanea(杂项):这一章节包含了一些不属于上述任何分类的命令、程序或信息。这些内容可能涵盖了各种主题,但通常与Linux系统的核心功能关系不大。

  8. System Administration tools and Deamons(管理类命令):此章节描述了系统管理员用于管理系统的命令和工具。这些命令通常只能由root用户执行,用于执行系统维护、配置管理、性能监控等任务。

需要注意的是,不同版本的Linux发行版可能会在自己的man手册中新增一些内容或调整章节的划分。因此,在实际使用中,最好参考具体Linux发行版的官方文档或手册来获取最准确的信息。

此外,man手册的章节号在命令的man页面中会有显示,通常位于页面顶部的标题中。例如,man ls命令的man页面顶部标题可能为“LS(1)”,其中“(1)”表示该命令位于User Commands章节。通过指定章节号来查询man手册中的命令或程序也是一种常用的方法,如man 2 open可以查询open系统调用的man页面。

Linux文件七种类型

在Linux系统中,文件被分为七种类型,每种类型都有其特定的用途和英文缩写。以下是这七种文件类型及其英文缩写的详细介绍:

  1. 普通文件(Regular Files)
    • 英文缩写:无特定缩写,但通常用"-"表示(在文件属性列表中)。
    • 描述:这是最常见的文件类型,用于存储普通数据,如文本文件、二进制文件、图像、视频等。
  2. 目录文件(Directory)
    • 英文缩写:d
    • 描述:目录是包含其他文件或目录的文件,用于组织文件系统的结构。
  3. 字符设备文件(Character Device Files)
    • 英文缩写:c
    • 描述:字符设备文件是访问字符设备的接口,如键盘、鼠标等。这些设备以字符流的形式进行数据传输。
  4. 块设备文件(Block Device Files)
    • 英文缩写:b
    • 描述:块设备文件是访问块设备的接口,如硬盘、光盘等。这些设备以数据块的形式进行数据传输,通常用于存储大量数据。
  5. 符号链接文件(Symbolic Link Files)
    • 英文缩写:l(在文件属性列表中)
    • 描述:符号链接文件是指向另一个文件的引用,类似于Windows中的快捷方式。通过符号链接,可以间接访问目标文件。
  6. 套接字文件(Socket Files)
    • 英文缩写:s
    • 描述:套接字文件用于网络间通信,它允许不同计算机上的应用程序之间进行数据交换。在Linux中,套接字也被视为一种特殊类型的文件。
  7. 管道文件(Pipe Files)
    • 英文缩写:p(在文件属性列表中)
    • 描述:管道文件是一种用于进程间通信的特殊文件,它允许一个进程的输出直接作为另一个进程的输入。管道文件在命令行操作中非常常见,如使用管道符“|”。

请注意,虽然普通文件在文件属性列表中通常用"-"表示,但它并没有特定的英文缩写来代表其类型。而其他六种文件类型则各有其特定的英文缩写,用于在文件属性列表中标识其类型。

此外,还有一种类型的文件在Linux中非常特殊,即特殊文件(Special Files),但这类文件并不属于上述七种之一。特殊文件通常用于特殊目的,如/dev/null,它是一个特殊的设备文件,所有写入它的数据都会被丢弃。这类文件在Linux系统中扮演着重要的角色,但它们的数量相对较少,且用途特定。

 

OPEN函数

在C语言中,open 函数用于打开或创建一个文件,并返回一个文件描述符(file descriptor)。这个文件描述符是一个非负整数,用于后续的读、写、定位等操作。文件描述符是系统用来标识和管理文件的一个索引。

关于为什么文件描述符通常从3开始(或者看起来像是从3开始),这实际上与UNIX和类UNIX系统(如Linux)的底层设计和标准输入输出(stdin, stdout, stderr)的处理方式有关。

在UNIX和类UNIX系统中,文件描述符0、1、2被系统保留用于标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)。这些特殊的文件描述符是程序在启动时自动打开的,无需程序员显式调用open函数。

  • 文件描述符0(stdin):标准输入,通常是键盘。
  • 文件描述符1(stdout):标准输出,通常是屏幕。
  • 文件描述符2(stderr):标准错误输出,也是屏幕,但用于错误消息的输出,与stdout分开处理以便于重定向。

因此,当你使用open函数打开文件时,返回的文件描述符会从最小的未使用的非负整数开始。由于0、1、2已经被系统预留用于上述特殊用途,所以open函数返回的文件描述符通常从3开始。当然,如果程序之前通过其他方式(如多次调用open)打开了其他文件,并关闭了其中的一些(使用close函数),那么新打开的文件可能会获得这些被关闭的文件描述符中的某一个。

这种设计允许程序员在程序中灵活地处理多个文件输入和输出,同时保留对标准输入输出的访问。

Close函数 

read/write函数 

内存分 

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

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

相关文章

【JavaEE初阶】常见的锁策略及synchronized实现原理

目录 🌳 常见的锁策略 🚩 乐观锁 vs 悲观锁 🚩 重量级锁 vs 轻量级锁 🚩 自旋锁 vs 挂起等待锁 🚩 可重入锁 vs 不可重入锁 🚩 公平锁 vs 非公平锁 🚩 互斥锁 vs 读写锁 🎄 …

2024年8月8日(python基础)

一、检查并配置python环境(python2内置) 1、检测是否安装 [rootlocalhost ~]# yum list installed| grep python [rootlocalhost ~]# yum -y install epel-release 2、安装python3 [rootlocalhost ~]# yum -y install python3 最新版3.12可以使用源码安…

数据结构.

1:基本大纲 数据结构、算法线性表:顺序表、链表、栈、队列树:二叉树、遍历、创建查询方法、排序方式 2:数据结构(逻辑结构,存储结构,操作(数据的运算)) 2.1:数据&#xf…

RabbitMQ面试题汇总

RabbitMQ面试题 一、RabbitMQ基础1. 什么是RabbitMQ,它的基本架构是怎样的?2. RabbitMQ支持哪些协议?3. 说一下AMQP协议?4. 为什么要使用RabbitMQ?5. MQ的应用场景有哪些?6. 解耦、异步、削峰是什么&#x…

【Linux之·工程构建·Cmake】

系列文章目录 文章目录 前言一、概述二、CMake的基本概念2.1 CMake的工作原理和基本组成部分2.2 CMakeLists.txt文件的结构和语法2.2.1 变量操作2.2.2 注释2.2.3 日志2.2.4 宏定义 2.3 CMakeLists.txt文件的作用 三、CMake的常用命令和变量3.1 常用的CMake命令和变量3.1.1 字符…

多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09

小罗碎碎念 这一期推文分享的文献是2022年发表于 Journal of Translational Medicine 的一篇文章,目前IF6.1。 这篇文章值得刚入门病理AI领域的老师/同学仔细研读,因为思路清晰,该讲到的流程基本都涉及了,详细讲述了病理图像的各种…

PyTorch基于深度神经网络的语音情绪识别

【图书推荐】《PyTorch语音识别实战》-CSDN博客 《PyTorch语音识别实战(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 (jd.com) 情绪数据的获取与标签的说明 首先是语音情绪数据集的下载,在这里使用瑞尔森情感语音和歌曲视听数…

动态规划求解最小斯坦纳树(证了一天两夜)

最小斯坦纳树 给定点的“最小生成树”问题。 背景 给定无向连通图 G ( V , E ) G(V,E) G(V,E),给出包含 k k k 个结点的点集 S S S,包含点集 S S S 的连通图被称作 斯坦纳树。但我们关注的是如何求出包含点集 S S S 的最小连通图 G ′ ( V ′ ,…

One-hot编码和Multiple-hot编码

在推荐系统和机器学习中,我们通常会遇到两种类型的编码方式:One-hot 编码和 Multiple-hot 编码(有时也称为 Multi-hot 编码)。这两种编码方式用于将分类数据转换为数值表示,以便机器学习模型能够处理这些数据。 1、On…

国产开源大模型都有哪些?

随着ChatGPT引领的大模型热潮,国内的公司开始相继投入研发自己的人工智能大模型,截止到2023年10月,国产公司的大模型有近百个,包括一些通用大模型,比如百度的文心一言,也有特定领域的专用大模型&#xff0c…

电力时代的液冷-EAK水冷电阻器的来源

当电气设备出现故障时,我们经常会表述成“这个东西烧了”。为什么用“烧”而不是“破”了或“坏”了呢?因为在电气产品中,一部分的电能会在使用的过程中通过电阻和电感的作用转化为热,如果因为设计或故障原因,产生的热没有被有效…

python自动化笔记:os模块和异常处理

目录 一、os模块1.1、常用方法1.2、其他方法(了解即可) 二、异常处理 try except2.1、语法格式1:2.2、语法格式2:指定异常类别,捕获异常2.3、语法格式3:try-finally 语句无论是否发生异常都将执行最后的代码…

〖基础篇1〗ROS2 Foxy Ubuntu 20.04 (Focal Fossa)安装教程

目录 一、linux Ubuntu 20.04 (Focal Fossa)安装二、linux VPN安装三、linux anaconda安装(可选)四、linux ROS2 foxy安装1. 设置语言环境2. 设置DEB软件源3. 安装开发工具和依赖4. 安装ROS2 foxy桌面版本5. 运行示例 一、linux Ubuntu 20.04 (Focal Fos…

常见框架漏洞详解③!!

Apache Apache 是世界使⽤排名第⼀的 Web 服务器软件。它可以运⾏在⼏乎所有⼴泛使⽤的计算 机平台上,由于其跨平台和安全性被⼴泛使⽤,是最流⾏的 Web 服务器端软件之⼀。 apache⽬录结构: bin:存放常⽤命令⼯具,如h…

颠倒字符串中的单词(LeetCode)

题目 给你一个字符串 ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 中可能会存在前导空格、尾随…

CSDN机器人与僵shi粉测试(真人看看)

​哈哈哈一起玩个游戏 发现老是莫名其妙有很多关注点赞与收藏&#xff0c;关注的几百个人应该都是机器人 此博文用于检测平台机器人阅读量 —>如果是真人请务必随便留言<— 可以根据阅读量与评论判断机器人数量 不用点赞收藏有机器人就行 机器人统一特征是在2019年左右…

【C++ 面试 - 基础题】每日 3 题(七)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

ImportError: DLL load failed while importing _rust: 找不到指定的程序的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

网络协议四 物理层,数据链路层

从这一节开始学习 五层模型。学习方法是从最底层物理层开始学习 七层模型 五层模型 各个层用的协议&#xff0c;以及加上协议后的称谓 各个层的作用 应用层&#xff1a;可以认为是原始数据&#xff0c;该数据称为 报文&#xff0c;用户数据。 运输层&#xff1a;也叫传输层&am…

【Linux】1w字详解自定义Shell管道 | 构建简易进程池

目录 续&#xff1a;通信 4 种情况 应用场景 1. 自定义 shell 管道 1. 包含头文件 2. 解析命令函数 详细步骤 3. 执行命令函数 4. 主函数 总结 2. 使用管道实现一个简易版本的进程池 代码结构 代码实现 channel.hpp tasks.hpp main.cc 子进程读取任务&#xff…