Linux软件编程:IO编程

news2025/2/15 14:20:37

IO(linux输入输出)
1. IO概念: I:输入 O:输出

        Linux 一切皆是文件

        屏幕 -> /dev/tty

        磁盘 -> /dev/sda

        网卡

        键盘 -> /dev/event

        鼠标-> /dev/mice

        都是一个文件

2. IO操作的对象: 文件

3. 文件类型:

b         block                 块设备文件            按块扫描设备信息                        文件IO

c         character          字符设备文件         按字符扫描设备信息                    文件IO

d         directory           目录文件                存放文件信息                               目录IO、文件IO

-                                   普通文件               存放用户信息                                标准IO、文件IO

l         link                     链接文件               与某个指定文件链接                     链接IO、文件IO

s       socket                 socket文件            进程间通信                                   文件IO

p       pipe                    管道文件               进程间通信                                    文件IO

4. 不同类型文件的操作方式: 标准IO 文件IO 目录IO 链接IO

        区别:

        1. 标准IO是一种有缓存的IO 效率高 实时性差

        2. 文件IO是一种没有缓存的IO 效率低 实时性好

        3. 文件操作可以使用标准IO

        4. 设备操作、即时通信使用文件IO

        5. 目录相关操作使用目录IO

        6. 链接文件操作使用链接IO

        7. 文件IO是系统调用

5. 系统调用和库函数

        1. Linux操作组成

2. 库函数:

        1. 库函数是对系统调用的封装,用户调用库函数并不能完成对应的功能,而是要由库函数 调用系统调用实现对应功能

        2. 方便移植

        3. 系统调用:

                1. Linux内核中的函数接口,称为系统调用

                2. 库函数每次调用内核中的代码称为一次系统调用

                3. 用户可以通过Linux系统提供的系统调用直接调用内核中的接口

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

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

相关文章

javaEE2

maven 搭建 前后端交互 HTML servlet 后台和数据库交互 servlet jdbc 未来 servlet-->springmvc jdbc-->mybatis-->mybatisplus/jpa javaee-->spring-->springboot SERVLET tomcat ~Apache 服务 Apache(音译为阿帕奇)是世界上使用排名第一的Web服务器…

2025最新深度学习pytorch完整配置:conda/jupyter/vscode

从今天开始,开始一个新的专栏,更新深度学习相关的内容,从入门到精通,首先的首先是关于环境的配置指南:工欲善其事必先利其器! PyTorch 是由 Facebook(现 Meta)开发的 开源深度学习框…

华为小艺助手接入DeepSeek,升级鸿蒙HarmonyOS NEXT即可体验

小艺助手接入DeepSeek的背景与意义 随着人工智能技术的不断发展,大模型成为推动智能交互升级的关键力量。DeepSeek在自然语言处理等领域具有出色的表现,其模型在语言理解、生成等方面展现出强大的能力。华为小艺助手接入DeepSeek,旨在借助其先…

Git 查看修改记录 二

Git 查看修改记录 二 续接 Git 查看一个文件的修改记录 一 一、修改 A.txt 修改 A.txt number6执行命令 git add . git commit -a -m "修改 number6" # git commit -a -m "修改 number6" 执行 输出如下 # $ git commit -a -m "修改 number6"…

【STM32】增量型旋钮编码器

1.增量型旋钮编码器原理 该编码器有A,B两相,当顺时针旋转时 B相会提前A相90度(匀速转的时候),也就是A相上升沿时,B相对应高电平,计数器会1,A相下降沿时,B相为低电平时&…

电动汽车电池监测平台系统设计(论文+源码+图纸)

1总体设计 本次基于单片机的电池监测平台系统设计,其整个系统架构如图2.1所示,其采用STC89C52单片机作为控制器,结合ACS712电流传感器、TLC1543模数转换器、LCD液晶、DS18B20温度传感器构成整个系统,在功能上可以实现电压、电流、…

DeepSeek助力:打造属于你的GPTs智能AI助手

文章目录 一、环境准备1.安装必要的工具和库2. 选择合适的开发语言 二、核心技术选型1. 选择适合的AI框架 三、功能实现1. 文本生成与对话交互2. 代码生成与自动补全3. 数据分析与报告生成 四、案例实战1. 搭建一个简单的聊天机器人2. 创建一个代码生成器 五、总结与展望1. 当前…

C语言基础系列【12】运算符

博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

服务器之连接简介(Detailed Explanation of Server Connection)

一台服务器最大能支持多少连接?一台客户端机器最多能发起多少条连接?? 我们知道TCP连接,从根本上看其实就是client和server端在内存中维护的一组【socket内核对象】(这里也对应着TCP四元组:源IP、源端口、…

华为2288H V5服务器无法启动问题处理

问题:通电后服务器前面显示888,点击电源键没有反应 一.通过管理口管理服务器硬件设备 华为2288H V5它默认的IP是192.168.2.100 网关是255.255.255.0 2.将网线一头连接服务器的Mgmt口,另一头来连接笔记本的网口,将笔记本的的本地…

华宇TAS应用中间件与因朵科技多款产品完成兼容互认证

在数字化浪潮澎湃向前的当下,信息技术的深度融合与协同发展成为推动各行业创新变革的关键力量。近日,华宇TAS应用中间件携手河北因朵科技有限公司,完成了多项核心产品的兼容互认证。 此次兼容性测试的良好表现,为双方的进一步深入…

第36天:安全开发-JavaEE应用第三方组件Log4j日志FastJson序列化JNDI注入

时间轴: 演示案例: Java-三方组件-Log4J&JNDI Java-三方组件-FastJson&反射 Maven的下载及配置: IDEA配置Maven的超详细步骤_java_脚本之家 Java-三方组件-Log4J&JNDI JNDI 注入: ( 见图 ) Java Naming and Dire…

21爬虫:使用playwright接管本地已经登录淘宝的浏览器并查找python相关店铺信息

1.playwright如何接管本地浏览器 (1)首先找到电脑上安装的Chrome浏览器可执行程序的完整路径: Mac电脑上可执行程序的完整路径为: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome windows系统的电脑上查找可执行…

Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)

#想cry 好想cry 目录 1 全局唯一id 1.1 自增ID存在的问题 1.2 分布式ID的需求 1.3 分布式ID的实现方式 1.4 自定义分布式ID生成器(示例) 1.5 总结 2 优惠券秒杀接口实现 3 单体系统下一人多单超卖问题及解决方案 3.1 问题背景 3.2 超卖问题的…

【现代深度学习技术】深度学习计算 | GPU

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

USB Flash闪存驱动器安全分析(第一部分)

翻译原文链接:Hacking Some More Secure USB Flash Drives (Part I) | SySS Tech Blog 文章翻译总结:文章对一些具有AES硬件加密的USB闪存驱动器的网络安全分析研究。研究由SySS的IT安全专家Matthias Deeg进行,他在2022年初发现了几个安全漏…

【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Linux网络编程 本篇博客我们来认识一下Linux中的一些基础开发工具 --- yum,vim,gcc/g。 🏠 yum 🎸 什么是yum 当用户想下载软…

Python + WhisperX:解锁语音识别的高效新姿势

大家好,我是烤鸭: 最近在尝试做视频的质量分析,打算利用asr针对声音判断是否有人声,以及识别出来的文本进行进一步操作。asr看了几个开源的,最终选择了openai的whisper,后来发现性能不行,又换了…

redis 缓存击穿问题与解决方案

前言1. 什么是缓存击穿?2. 如何解决缓存击穿?怎么做?方案1: 定时刷新方案2: 自动续期方案3: 定时续期 如何选? 前言 当我们使用redis做缓存的时候,查询流程一般是先查询redis,如果redis未命中,再查询MySQL,将MySQL查询的数据同步到redis(回源),最后返回数据 流程图 为什…

SAP HCM 批量核算工资报错如何定位错误 (SAT分析错误)

导读 簇目录 (表 RGDIR) 不包含任何记录:今天遇到一个很奇怪的问题,簇目录 (表 RGDIR) 不包含任何记录,而且出现的问题没有具体到员工编号,所以处理问题非常棘手。今天分享下我的处理方式,以便大家遇到这类的问题不知道如何下手。…