`

不带缓冲的文件I/O之引言

阅读更多
        说明:这是不带缓冲的文件I/O系列笔记的引言部分,其它更多内容将在后面陆续更新。另外,更详细的内容请参考《UNIX环境高级编程》第3章 -- 文件I/O。

        对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,变化范围是 0~OPEN_MAX-1。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,就使用 open 或 creat 返回的文件描述符标识该文件,将其作为参数传送给 read 或 write函数。
        按照惯例,UNIX 系统用 0、1 和 2 分别关联标准输入、标准输出和标准错误。但为了提高可读性,应当用在头文件 <unistd.h> 中定义的符号常量 STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO 来代替。
        通常所用的文件操作函数是标准I/O函数,它们是带缓冲的。所谓不带缓冲,指的是每个read 和 write 都调用内核中的一个系统调用。只要涉及在多个进程间共享资源,原子操作的概念就变得非常重要。我们将通过文件 I/O 和 open 函数的参数来讨论此概念。
分享到:
评论

相关推荐

    UNIX环境高级编程_第二版中文

    第3章 文件I/O  3.1 引言  3.2 文件描述符  3.3 open函数  3.4 creat函数  3.5 close函数  3.6 lseek函数  3.7 read函数  3.8 write函数  3.9 I/O的效率  3.10 文件共享  3.11 原子操作  ...

    UNIX环境高级编程(第二版中文)

    第3章 文件I/O 47 3.1 引言 47 3.2 文件描述符 47 3.3 open函数 48 3.4 creat函数 49 3.5 close函数 50 3.6 lseek函数 50 3.7 read函数 53 3.8 write函数 54 3.9 I/O的效率 54 3.10 文件共享 ...

    unix环境编程电子书

    44 2.8 基本系统数据类型 45 2.9 标准之间的冲突 45 2.10 小结 46 习题 46 第3章 文件I/O 47 3.1 引言 47 3.2 文件描述符 47 3.3 open函数 48 3.4 creat函数 49 3.5 close函数 50 3.6 lseek函数...

    UNIX高级编程 计算机科学丛书

    2. 不带缓存的I/O(第三章)、文件和目录(第四章、标准I/O库(第五章)以及系统数据文件(第六章)。 3. 进程—Unix进程的环境(第七章)、进程控制(第八章)、进程之间的关系(第九章)以及信号(第十章)。 ...

    UNIX环境高级编程_第2版.part1

    第3章文件i/o 47 3.1 引言47 3.2 文件描述符47 3.3 open函数48 3.4 creat函数49 3.5 close函数50 3.6 lseek函数50 3.7 read函数53 3.8 write函数54 3.9 i/o的效率54 3.10 文件共享56 3.11 原子操作59 ...

    UNIX环境高级编程_第2版.part2

    第3章文件i/o 47 3.1 引言47 3.2 文件描述符47 3.3 open函数48 3.4 creat函数49 3.5 close函数50 3.6 lseek函数50 3.7 read函数53 3.8 write函数54 3.9 i/o的效率54 3.10 文件共享56 3.11 原子操作59 ...

    一线DBA总结:MySQL搭配XFS文件系统优势最大.doc

    4. **传输带宽**:XFS能以接近裸设备I/O的性能存储数据,单个文件系统的吞吐量最高可达7GB每秒。 #### 三、MySQL与XFS文件系统 在选择MySQL使用的文件系统时,XFS因其出色的性能表现而成为首选。以下是XFS与MySQL...

    building_storage_networks_chsSAN存储区域网络 .rar

    5.1.2 缓存与缓冲间的差异 103 5.1.3 磁盘缓存的性能估计 104 5.1.4 磁盘缓存的算法 105 5.1.5 磁盘缓存的组件 111 5.1.6 通过定位优化磁盘缓存 112 5.1.7 存储网络中的独立缓存 117 5.1.8 配置缓存 118 5.2 固态...

    linux设备驱动第3版

    - **I/O端口和I/O内存**:介绍如何通过I/O端口或I/O内存与硬件进行通信。 - **I/O端口示例**:给出具体的使用I/O端口的示例。 #### 十、中断处理 - **并行端口准备**:准备并行端口以便接收和处理中断请求。 - **...

    Java中输入输出的总括

    无论是文件操作、网络通信还是与用户交互,都离不开I/O处理的支持。本篇文章将从Java I/O的基础出发,深入探讨不同类型的输入输出流及其应用场景。 #### 二、I/O基础知识 ##### 2.1 数据流的基本概念 在Java中,...

    Linux 性能监测工具及调优介绍.doc

    - **I/O性能优化**:借助`iostat`工具提供的磁盘I/O统计信息,识别出瓶颈设备,并考虑优化存储结构、增加缓存或调整文件系统参数等方式提升I/O效率。 #### 四、小结 性能监测是Linux系统管理中不可或缺的一部分。...

    linux 性能优化

    - Ext2是一种不带日志功能的文件系统,而Ext3是Ext2的增强版,支持日志功能。 - ReiserFS是一种高性能的日志文件系统,JFS和XFS也是高性能的文件系统。 **1.4 磁盘I/O子系统** - **I/O子系统架构** - 包括用户...

    netbackup参数调整

    - 数据缓冲区大小应不超过磁带驱动器或操作系统支持的最大磁带I/O大小,一般为256KB或128KB。 - 增加磁带缓冲区大小可能会影响某些备份操作的速度,并可能引起还原问题。 - 在进行任何更改后,都需要验证备份和恢复...

    1s4yb3i8qnah15mdzzpn.pdf

    - **案例研究中的具体应用场景**:在这个具体的案例研究中,作者们首先通过监控工具收集了大量的性能数据,包括但不限于CPU利用率、I/O等待时间、内存使用情况等。接着,基于这些数据进行综合分析,识别出关键的性能...

Global site tag (gtag.js) - Google Analytics