文件IO(一)

文件IO(一)

  • 文件IO
    • 文件的分类
    • 在文件IO下,文件分类
      • 按存储的内容分
      • 按照操作分
    • 标准IO和文件IO的区别
    • 系统调用和库函数的区别

文件IO

  • 把程序暂存在内存的数据,存储到本地外存上

文件的分类

在Linux系统下,文件共分为7类
- 普通文件
d 目录文件
p 管道文件
l 链接文件
b 块设备文件
c 字符设备文件
s 套接字(Socket)文件 跨主机之间的通信

在文件IO下,文件分类

按存储的内容分

文本文件:存储的是数据的阿斯克码(0~127),EOF(end of file,-1)
二进制文件:存储的是数据在内存上的原样存储
文本文件,在存储的时候,需要数据和阿斯玛转换,一般存储数据量比较大的数据,最终结果
二进制文件,一般存储中间变量

在这里插入图片描述
在这里插入图片描述

按照操作分

带缓冲区操作的文件:标准IO,内存上的缓冲区,库函数
不带缓冲区操作的文件:文件IO

在这里插入图片描述
在这里插入图片描述

标准IO和文件IO的区别

标准IO
1.标准IO由ANSI C标准定义, 库函数提供的
2.跨平台性,移植性较好
3.有缓冲区的操作,标准IO的效率比文件IO的效率高
4.一般以文件流指针作为操作依据
文件IO
1.由POSIX定义,操作系统提供的系统调用提供的
2.移植性差
3.效率较低
4.一般以文件描述符作为操作依据

在这里插入图片描述

系统调用和库函数的区别

  1. 提供者:
  • 系统调用:由操作系统内核提供。它们是内核暴露给应用程序的接口,用于请求内核执行某些操作,如
    文件操作、进程管理、内存管理等。
  • 库函数:由标准库或第三方库提供。这些函数通常是对系统调用的封装,也可能包含其他功能,如数学
    运算、字符串处理等。
  1. 运行时间:
  • 系统调用:属于机器时间,执行时通常涉及用户态到内核态的切换,这通常比用户态内的操作更耗时。
  • 库函数:属于用户时间,在用户态执行,不涉及上下文切换,因此通常更快。
  1. 运行空间:
  • 系统调用:在内核空间执行,这是操作系统保护的区域,用于执行特权操作。
  • 库函数:在用户空间执行,这是应用程序运行的地方。
  1. 效率:
  • 系统调用:由于涉及上下文切换和内核态执行,通常比库函数调用更耗时。
  • 库函数:在用户态执行,没有上下文切换的开销,因此通常更高效。
  1. 移植性:
  • 系统调用:依赖于特定的操作系统和内核,因此通常不易移植到其他操作系统。
  • 库函数:如果遵循标准库规范,通常可以在多种操作系统上运行,具有较好的移植性。
  1. 返回值:
  • 系统调用:通常返回特定的错误码或状态信息,用于指示调用是否成功以及可能的错误原因。
  • 库函数:返回值取决于具体的函数,可能返回计算结果、指针、状态码等。
  1. 功能的复杂程度:
  • 系统调用:通常执行底层的、原子性的操作,如打开文件、创建进程等。
  • 库函数:可能执行更复杂的任务,这些任务可能涉及多个系统调用或其他库函数的组合。
  1. 功能能否重写:
  • 系统调用:作为操作系统的一部分,通常不能由用户重写。
  • -库函数:用户可以根据自己的需要重写库函数,或者使用不同的库实现相同的功能。
    总的来说,系统调用提供了与操作系统内核交互的接口,而库函数则为用户提供了更高级、更易于使用的功能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 RNNs 对 IMDB 电影评论进行情感分类

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

效果炸裂!使用 GPT-4o 快速实现LLM OS

使用 GPT-4o 快速实现LLM OS 什么是 LLM OS?LLM OS 主要有以下5个部分组成: LLM OS 开源实现运行 LLM OS 开源实现 什么是 LLM OS? 关于 LLM OS 的最初构想源自karpathy 在2023年11月11日发布的一条Twitter 动态,这是 LLM OS 概念…

git工作流程

以财务开发为例子: 1. 新建分支 1.1. upstream新建分支:finance-feature 1.2. origin新建对应分支:finance-feature 1.3 新建本地分支 git branch finance-feature 注: 同步远程分支:git fetch upstream feature…

YonBuilder移动开发基础教程——云修复

1 使用场景 在项目开发中,我们经常会遇到一种场景,对于一些已经上架应用市场对外发布的应用,我们需要修改其中部分页面的部分内容样式或功能逻辑,通常的做法是我们修改后,重新编译一个新的版本,然后提交应…

【NumPy】使用NumPy计算相关系数:详解numpy.corrcoef函数及应用

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

Linux--构建进程池

目录 1.进程池 1.1.我们先完成第一步,创建子进程和信道 1.2. 通过channel控制,发送任务 1.3回收管道和子进程 1.4进行测试 1.5完整代码 1.进程池 进程池其产生原因主要是为了优化大量任务需要多进程完成时频繁创建和删除进程所带来的资源消耗&#…

数码论坛|基于SprinBoot+vue的数码论坛系统(源码+数据库+文档)

数码论坛系统 目录 基于SprinBootvue的数码论坛系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2 管理员功能模块 3 用户后台管理模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&am…

【Python编程】给电脑安装最新的 Python3.12.3

笔者最近更换了新的Win11系统,安装最新的Python版本(3.12.3)尝尝鲜。据说这个版本存在一些漏洞,笔者将后续更新编程过程中的相关问题(如果有)。Python3.12.3的安装过程比较简单,在此进行说明。 …

现在AI发展迅猛的情况下,应届生选择Java还是C++?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「Java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!AI迅猛发展的情况下&#xf…

巅峰对决:OpenAI与Google如何用大模型开创未来

2024年,人工智能领域正引领着一场波澜壮阔的全球技术革命。 5月14日,OpenAI揭开了其新一代多模态人工智能大模型GPT4系列的神秘面纱,其中GPT-4o不仅拥有流畅迷人的嗓音,还展现出幽默、机智和深刻的洞察力……紧接着,在…

Vulnhub靶机 whowantsobeking :1 打靶 渗透详细过程(萌新)

Vulnhub靶机搭建配置 先搭建vulnhub靶机:https://www.vulnhub.com/entry/who-wants-to-be-king-1,610/ 下载镜像之后whowantsobeking.ova后,用VMware Workstation Pro打开依次点击文件-打开,选择我们刚才下载的ova文件打开,修改…

数字化转型瓶颈,无代码轻松破局!

随着信息技术的迅猛发展,企业数字化转型已成为推动业务增长、提升竞争力的关键所在。 然而,在实际操作过程中,许多公司却面临着转型困难、进展缓慢甚至停滞不前的局面。 其中,软件开发作为数字化转型的核心环节,其复杂…

工控屏(触摸屏)怎么连接电脑

一、使用USB接口连接 连接方法:使用USB线连接触摸屏和电脑,触摸屏会自动识别并连接到电脑上。 二、使用HDMI接口连接 连接方法:1.首先要确认您的触摸屏是否有HDMI接口;2.将一端连接到触摸屏,另一端连接到电脑&#…

为什么Facebook Marketplace无法使用?如何解决?

Facebook Marketplace是一个允许用户买卖商品的平台,由于其在Facebook内的便捷性,它逐渐成为了一个受欢迎的在线交易市场。然而,做Facebook跨境电商,很多人会面临的情况就是无法使用Facebook Marketplace。这到底是什么原因&#…

SQL学习小记(三)

SQL学习小记(三) 功能实现思路代码部分名词解释 代码打包为可执行文件 功能说明:使用python代码,将数据库database1中的表格table1同步到数据库database2中 功能实现 思路 #mermaid-svg-R1pWrEWA799M299a {font-family:"tre…

19.单目测距原理介绍

文章目录 相机成像模型的再次介绍单目测距的几何原理reference 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 根据相机成像的原理,在满足一定约束条件下,理论上是可以根据目标点的像素坐标计算出其对应的深度信息…

文献解读-群体基因组第一期|《对BMI的影响:探究BMI的基因型-环境效应》

关键词:应用遗传流行病学;群体测序;群体基因组;基因组变异检测; 文献简介 标题(英文):The Impact of ACEs on BMI: An Investigation of the Genotype-Environment Effects of BMI标…

python Windows电脑设置定时启动程序,定时运行代码

Windows设置定时 一,新建文件txt, .txt改为.bat 路径填exe的路径D:\test\main.py 如下是启动exe,如果运行python代码则写入如:python D:\test\main.py 二,搜索计算机管理 三,点击创建基本任务 填写任意名称 选择什么时候开始…

“智能体时代:探索无限可能——零代码构建智能教练智能体“

随着智能体技术的飞速发展,各个领域正经历着空前的变革和新的发展机遇。作为人工智能的一个关键组成部分,智能体以其自我驱动、智能响应和适应能力,逐渐深入到我们日常生活的各个层面,成为促进社会发展和科技进步的新引擎。 顺应这…

adb获取包名和界面名

adb获取包名和界面名 mac adb shell dumpsys window windows | grep mFocusedApp windows adb shell dumpsys window windows | findstr mFocusedApp 这个是在当前手机打开哪个界面获取的就是哪个界面的包名与界面 注意第一次连接时会有提示,需要连接两次才可以 …