SylixOS IO系统
个人学习笔记
Crush_u
你好哇_李银河
展开
-
『同步IO和异步IO』简单理解
在Linux系统中,所有的设备读写都可以看做是文件的读写来进行操作,而对文件的读写一般要经过内核态和用户态的切换,因此IO产生了同步和异步。IO的产生场景和分类:网络的IO、文件或者设备的IO。 IO操作的完成步骤分为:请求发起 —> 操作执行。 同步和异步的区分标志:进行IO操作时,是否会出现阻塞。(同步会阻塞)同步是阻塞模式,异步是非阻塞模式。同步就是指一个进程在执行某个请求的时内候,若该请求需容要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去原创 2020-09-05 14:59:47 · 476 阅读 · 0 评论 -
文件IO函数和标准IO库
I/O 函数都是围绕文件描述符的,当打开一个文件时,即返回一个文件描述符,然后该文件描述符就用于后续的 I/O 操作。文件I/O函数解释及操作见:https://blog.csdn.net/Liangren_/article/details/107818912而对于标准 I/O 库,它们的操作是围绕流进行的,当用标准 I/O 库打开一个文件时,流和文件就做了相应的关联,然后将返回一个FILE 类型的文件指针。 ...原创 2020-08-17 09:46:18 · 161 阅读 · 0 评论 -
高级I/O访问之非阻塞I/O
有一些“低速”系统函数(可能使线程永远阻塞的一系列函数),可能会导致进程一直处于阻塞的状态,例如某些进程间通信函数、某些 ioctl操作等。非阻塞 I/O 使open、read 和write 这些操作不会永远阻塞(需要设备驱动程序提供支持)。如果这些操作不能完成,则调用立即出错返回,表示该操作如果继续执行将阻塞。 有下面的两种方法可以获得一个非阻塞的 I/O: 调用 open 函数获得一个文件描述符,可以指定 O_NONBLOCK 标志; 如果文件已经打开,则可以调用 ioctl 指定原创 2020-08-17 09:41:21 · 241 阅读 · 0 评论 -
高级I/O访问之分散聚集操作
分类聚集操作用到的是两个函数,readv 函数和 writev 函数,目的是可以在一次函数调用中读、写多个非连续缓冲区。有时也将这 两个函数称为散布读(scatter read)和聚集写(gather write)。 #include <sys/uio.h>ssize_t readv(int iFd, struct iovec *piovec, int iIovcnt);ssize_t writev(int iFd, const struct iovec *piovec,int i原创 2020-08-17 09:37:34 · 212 阅读 · 0 评论 -
文件类型&文件模式位——及转换
文件类型SylixOS 系统最常见的是普通文件和目录文件,但也有另外一些特殊文件类型,这些文件类型包括以下几种: 普通文件,这是最常见的文件类型,这种文件包含了某种形式的数据。这种数据无论是普通文本还是二进制,对于 SylixOS 来说没什么区别。需要注意的是,一个二进制可执行文件,内核必须理解其格式。SylixOS 二进制可执行文件都遵循一种标准化的格式,这种格式使得 SylixOS 能够确定程序代码和数据加载的位置; 目录文件,这种文件包含了其他文件的名字以及指向与这些文件有关信息的指针;原创 2020-08-12 16:43:13 · 672 阅读 · 0 评论 -
SylixOS 文件和目录
目录1.函数stat、lstat和fstat2.函数access3.函数umask4.函数fchmod、chmod5.函数unlink、remove6.函数rename7.函数opendir、closedir8.函数readdir、readdir_r9.函数mkdir和rmdir10.函数chdir、fchdir和getcwd11.符号链接12.文件截断1.函数stat、lstat和fstat调用 stat 函数将通过参数 pstat 返回 pcNam原创 2020-08-12 16:24:49 · 695 阅读 · 0 评论 -
SylixOS 文件I/O函数
1.函数open#include <fcntl.h>int open(const char *cpcName, int iFlag, ...);函数 open 原型分析: 此函数成功返回文件描述符,失败返回-1 并设置错误号; 参数 cpcName 是需要打开的文件名①; 参数 iFlag 是打开文件标志; 参数...是可变参数。 调用 open 函数可以打开或者创建一个文件,open 函数的最后一个参数写为...,ISO C用这种方法表示余下参数的数量及其类原创 2020-08-07 11:01:22 · 591 阅读 · 0 评论 -
文件描述符标志&文件属性标志&打开文件标志
文件描述符标志用于一个进程中的 一个文件描述符,文件属性标志应用于指向该给定文件结构的任何进程中的所有文件描述符。调用 fcntl 函数可以获得和修改文件描述符标志和文件属性标志。文件描述符对于内核而言,所有打开的文件都通过文件描述符引用。 文件描述符是一个非负整数。 当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。 当读、写一个 文件时,使用 open 函数或者 creat 函数返回的文件描述符标识该文件,可将此文件描述符作为参数传递...原创 2020-08-07 09:56:29 · 667 阅读 · 0 评论 -
SyliOS I/O 系统
I/O系统又称作输入输出系统,SylixOS 兼容POSIX标准输入输出系统,SylixOS 的IO概念继承了UNIX操作系统的I/O概念,认为一切皆为文件。与UNIX操作系统相同, SylixOS中的文件也分为不同的类型。文件类型SylixOS 系统最常见的是普通文件和目录文件,但也有另外一些特殊文件类型,这些文件类型包括以下几种: 普通文件,这是最常见的文件类型,这种文件包含了某种形式的数据。这种数据无论是普通文本还是二进制,对于 SylixOS 来说没什么区别。需要注意的是,一个二进制原创 2020-08-05 16:23:34 · 713 阅读 · 0 评论