首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏这里只有VxWorks

    IO之Standard IO

    VxWorks provides a standard I/O package (stdio.h) with full ANSI C support that is compatible with the UNIX and Windows standard I/O packages.

    1.1K30发布于 2020-08-11
  • 来自专栏这里只有VxWorks

    IO之Formatted IO

    Formatted I/O /* ANSI */ /* write a formatted string to the standard output stream */ int printf(char *, ...); /* write a formatted string to a buffer */ int sprintf(char *, char *, ...); /* write a formatted string to a buffer, not exceeding buffer

    1.1K40发布于 2020-08-11
  • 来自专栏这里只有VxWorks

    IO之Basic IO

    Basic I/O system的7个函数:creat(), remove(), open(), close(), read(), write(), ioctl()。creat()与remove()主要用于文件系统。函数声明如下

    1.3K30发布于 2020-08-06
  • 来自专栏月梦·剑心的技术专栏

    IOIO模型

    这是普通的IO操作,除此之外还有各种方式用于加快IO,譬如DMA、零拷贝技术等。 网络IO 服务端如何实现高并发、海量连接与网络IO的方式有着千丝万缕的联系,与磁盘IO不同的是,网络IO是从网卡拿数据,仅此而已 在讨论网络IO的方式之前,我们应该先对阻塞/非阻塞、同步/异步的概念有一个比较清晰的认识 ,可以将网络IO分为阻塞IO和非阻塞IO 具体来说,用户态进程发起了读写请求,但是内核态数据还未准备就绪(磁盘、网卡还没准备好数据), 如果进程需要阻塞等待,直到内核数据准备好,才返回,则为阻塞IO; 如果内核立马返回,不会阻塞进程,则为非阻塞IO; 同步IO与异步IO 在一次IO中数据传输的两个步骤中,但凡有一处发生了阻塞,就被称为同步IO;如果两个步骤都不阻塞,则被称为异步IOIO多路复用 为了解决上面提到的NIO会导致大量系统调用的问题,出现了IO多路复用模型。

    79000编辑于 2023-12-09
  • 来自专栏linux驱动个人学习

    buffer io和direct io

    总的来说,Buffer I/O为了提高读写效率和保护磁盘,使用了页缓存机制,不过由于页缓存处于内核空间,不能被应用程序(用户进程)直接寻址,所以还需要将页缓存数据再拷贝到内存对应的用户空间中。这样,需要两次数据拷贝才能完成用户进程对数据的读取操作。写操作也是一样,将页缓存的数据写入磁盘的时候,必须先拷贝到内核空间对应的主存,然后在写入磁盘中。

    1K50编辑于 2023-07-09
  • 来自专栏北京马哥教育

    IO类型与IO模型

    IO类型 同步与异步(synchronous,asynchronous):关注消息通知机制 同步: 进程发出系统调用之后,不会立即有返回信息,但是一旦有返回信息,则一定是最终结果. IO模型的分类 阻塞I/O 非阻塞I/O 复用I/O 事件驱动I/O 异步I/O 自己画的 ? 画完之后参考网上的 ? 阻塞I/O模型 ? 当用户进程发起系统调用之后,该进程可以发送多个处理请求交给内核处理,select,poll,epoll都是IO多路复用的机制。

    2K70发布于 2018-05-03
  • 来自专栏Base_CDNKevin

    基础IO:系统文件IO

    在 Linux 操作系统中,文件 I/O(输入/输出)是程序与文件系统交互的基础。理解文件 I/O 的工作原理对于编写高效、可靠的程序至关重要。本文将深入探讨系统文件 I/O 的机制。

    75000编辑于 2025-02-17
  • 来自专栏微信公众号:Java团长

    理解一下5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO

    5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO 看了一些文章,发现有很多不同的理解,可能是因为大家入切的角度、环境不一样。所以,我们先说明基本的IO操作及环境。 IO有内存IO、网络IO和磁盘IO三种,通常我们说的IO指的是后两者。 2、5种IO模型 《UNIX网络编程》说得很清楚,5种IO模型分别是阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动的IO模型、异步IO模型;前4种为同步IO操作,只有异步IO模型是异步IO操作。 3-1、阻塞IO调用和非阻塞IO调用、阻塞IO模型和非阻塞IO模型 注意这里的阻塞IO调用和非阻塞IO调用不是指阻塞IO模型和非阻塞IO模型: 阻塞IO调用 :在用户进程(线程)中调用执行的时候,进程会等待该 所以, 阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动的IO模型者为同步IO模型,只有异步IO模型是异步IO。 END 我知道你 “在看”

    38.7K71发布于 2020-08-24
  • 来自专栏指尖下的Android

    同步 IO 和异步 IO

    io 操作大致分为两种: 文件 io 网络 io io 操作分为两步 发起 io 请求 接收处理 io 同步 io 和异步 io 最大的区别就是同步 io 的发起方(用户线程)会阻塞或轮询等待 io 完成 同步 io 的特点 1、同步 io 是用户线程发起 io 请求并以阻塞或轮询的方式来等待 io 的完成 2、同步 ioio 的发起方,同时也是处理方 3、同步 io 是需要将内核态准备就绪的数据拷贝到用户态 ,所以需要阻塞用户态程序并等待 io 完成 异步 io 的特点 1、异步 io 在用户线程发起 io 请求后会立即返回继续执行后续的逻辑流 2、异步 ioio 的发起方,但内核态才是处理方 3、异步 io 的处理方是内核态,所以不需要阻塞 阻塞 io: 用户线程发起 io 请求并阻塞用户线程释放 CPU 执行权,等待内核态的 io 处理完成。 总结以上几种 io 模型,除了最后一个是异步 io 模型,其它的 io 模型都是同步。

    1.7K30发布于 2021-11-29
  • 来自专栏李家的小酒馆

    Java IO(IO流)-2

    IO流 第一部分 (OutputStreamWriter BufferOutputStream) 转换流 超类为Reader和Writer 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节

    1.4K00发布于 2017-12-28
  • 来自专栏嵌入式Linux系统开发

    文件 IO 与标准 IO

    一个通用的 IO 模型通常包括打开文件、读写文件、关闭文件这些基本操作,主要涉及到 4 个函数:open()、read()、write()以及 close()。 文件IO tips:我们在 Linux 系统下,可以通过 man 命令查看某函数的用法和帮助信息以及头文件引用信息。 char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 在 Linux 内核提供的标准文件 IO unistd.h> ssize_t read(int fd, void *buf, size_t count); 关闭文件 #include <unistd.h> int close(int fd); 标准IO

    1.8K40发布于 2021-07-07
  • 来自专栏xiaozhangStu

    IO

    IO File类 作用 访问和操作文件的类 创建方式 File file = new File( String pathname ); 常用方法 boolean exists( )//判断文件是否存在 删除文件或者目录 boolean createNewFile( )//创建新的文件 long  length()//返回文件的长度,字节问单位,如果文件不存在返回的是0L 举例 package jbit.io ; ​ import  java.io.*; public class FileMethods { public static void main(String[] args) {    

    55810编辑于 2023-05-04
  • 来自专栏Java实战博客

    IO

    对于其他的IO操作,Java提供了几种不同的方式,以下是几个例子: 使用传统的阻塞IO(Java IO): import java.io.*; public class ClassicIOExample IOException e) { e.printStackTrace(); } } } 使用Java NIO的文件通道来快速复制文件: import java.io.IOException IOException e) { e.printStackTrace(); } } } 使用Java 7+的Files类进行简化的文件操作: import java.io.IOException } catch (IOException e) { e.printStackTrace(); } } } 在实际开发中,应根据具体需求选择最适合的IO

    46410编辑于 2023-12-26
  • 来自专栏Linux兵工厂

    高级IO之非阻塞IO和阻塞IO

    非阻塞 I/O(Input/Output)是一种在进行文件和套接字操作时不阻塞进程的机制。在 Linux 中,非阻塞 I/O 可以通过设置文件描述符(File Descriptor)为非阻塞模式来实现。

    62610编辑于 2024-02-27
  • 来自专栏BanzClub

    初识IO | IO系列(一)

    //blog.csdn.net/qwe6112071/article/details/71822185 https://tech.meituan.com/2017/05/19/about-desk-io.html

    1.7K40发布于 2019-06-15
  • 来自专栏https://blog.csdn.net/xia

    JAVA IO——IO原理和分类

     前言 友友们大家好,我是你们的小王同学 今天给大家带来的是 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 小王的github:小王同学  JAVA IO java.io包下提供了各种"流"类和接口,用以获取不同的种类的数据,通过方法输入或输出数据  输入input:读取外部数据(磁盘 光盘等存储设备的数据)到程序(内存)中 输出output:将程序(内存 按数据流的流向不同的:输入流 输出流 按流的角色不同分为:节点流,处理流\包装流 抽象基类 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer Java的 io

    81020编辑于 2022-12-21
  • 来自专栏李家的小酒馆

    Java IO(IO流)-1

    IO流 第一部分 (outputStream/InputStream Writer/Redaer) IO流对象中输入和输出是相辅相成的,输出什么,就可以输入什么. IO的命名方式为前半部分能干什么,后半部分是父类的名字.

    1.7K00发布于 2017-12-28
  • 来自专栏Linyb极客之路

    同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别

    POSIX 同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。 POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO 按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号,但是为什么有的人说同步IO不等于阻塞IO ),如果按这样理解,这种IO模型也能称之为非阻塞IO模型,但是按POSIX来看,它也是同步IO,那么也和楼上一样称之为同步非阻塞IO吧。 总结 IO分两阶段: 1.数据准备阶段 2.内核空间复制回用户进程缓冲区阶段 一般来讲:阻塞IO模型、非阻塞IO模型、IO复用模型(select/poll/epoll)、信号驱动IO模型都属于同步IO, 只有异步IO模型是符合POSIX异步IO操作含义的,不管在阶段1还是阶段2都可以干别的事。

    1.7K20发布于 2018-07-26
  • 来自专栏人人都是极客

    详解io端口与io内存

    (四)IO端口与IO内存区别 在驱动程序编写过程中,很少会注意到IO Port和IO Mem的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。 映射后IO Port就可以看作是IO Mem,按照IO Mem的访问方式即可。 2. 系统的寻址能力如果是32位,IO Port+Mem(包括IO Mem)可以达到4G。 访问这类IO Port时,我们也可以用IO Port专用寻址方式。 IO空间:X86特有的一个空间,与内存空间彼此独立的地址空间,32位X86有64K的IO空间。 IO端口:当寄存器或内存位于IO空间时,称为IO端口。 前一种途径不映射到内存空间,直接使用 intb()/outb()之类的函数来读写IO端口;后一种MMIO是先把IO端口映射到IO内存(“内存空间”),再使用访问IO内存的函数来访问 IO端口。

    3.5K10发布于 2021-01-11
  • 来自专栏网络技术联盟站

    阻塞IO、非阻塞IOIO复用有啥区别?

    阻塞IO(Blocking IO)阻塞IO是一种传统的IO模型,当程序执行输入/输出操作时,会发生阻塞直到操作完成。 特点:阻塞IO是同步的,意味着应用程序必须等待IO操作完成。执行IO操作时,线程被阻塞,不能执行其他任务。阻塞IO往往是单线程处理IO请求。 非阻塞IO(Non-blocking IO)非阻塞IO是一种IO模型,它允许程序在进行IO操作时继续执行其他任务。 结论本文详细介绍了阻塞IO、非阻塞IOIO复用这三种不同的IO模型。 阻塞IO在进行IO操作时会阻塞进程,非阻塞IO允许程序在进行IO操作时继续执行其他任务,而IO复用可以同时监听多个文件描述符的IO事件。根据具体的需求和场景,我们可以选择适合的IO模型。

    2K20编辑于 2023-07-03
领券