- 浏览: 458096 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
无聊,贴些本章的关键字:
一、空洞文件、预读技术(read ahead)、缓冲
二、进程表->打开的文件描述符表->文件表
三、文件状态标志、文件偏移量、v与i节点表
四、多函数操作,都不可能是原子操作。
五、延迟写->减少物理IO->降低文件更新速度->数据丢失危险增大
关键函数:
open - close
read - write (内核级无缓冲)
creat
lseek
pread - pwrite
dup、dup2
sync 不等待
fsync 等待
fdatasync 类fsync,但只影响文件数据,不影响文件属性
fcntl 改变句柄性质
ioctl
系统命令:
od、dd
int fcntl(int filedes, int cmd, .../* int arg */); int fcntl(int filedes, int cmd, .../* struct flock *flockptr */); //记录锁 fcntl函数有5种功能: 1)复制一个现有的描述符(cmd = F_DUPFD) 2)get/set文件描述符标记(cmd = F_GETFD / F_SETFD) 3)get/set文件状态标志(cmd = F_GETFL / F_SETFL) 4)get/set异步I/O所有权(cmd = F_GETOWN / F_SETOWN) 5)get/set记录锁(cmd = F_GETLK / F_SETLK / F_SETLKW)
#include <fcntl.h> void set_fl(int fd, int flags); void clr_fl(int fd, int flags); void set_fl(int fd, int flags) // void clr_fl(int fd, int flags) { int val; if ((val = fcntl(fd, F_GETFL, 0)) < 0) printf("fcntl F_GETFL error"); val |= flags; // val &= ~flags; // if (fcntl(fd, F_SETFL, val) < 0) printf("fcntl F_SETFL error"); }
发表评论
-
execl
2010-10-28 11:13 840#include <stdio.h> ... -
dup2-close-fd
2010-10-28 10:54 809int main(int argc, char *argv ... -
Chapter 16__套接字
2010-10-25 11:39 585AF_INET、TCP、UDP、SCTP 报文界限 soc ... -
pthread_mutex_lock Test
2010-10-22 15:43 971#include <stdio.h> #in ... -
Chapter 14__高级IO
2010-10-20 11:45 715struct flock { short ... -
Chapter 15__进程间通信
2010-10-19 15:15 666- - 纯属抄书。。。 IPC(InterProcess ... -
APUE一栏入口
2010-10-14 15:25 752《UNIX环境高级编程》 《Advanced Programm ... -
Chapter 3__文件IO
2010-10-14 14:51 24int fcntl(int filedes, int cm ... -
Chapter 14
2010-10-14 09:01 7051、永远阻塞的调用有哪些? 阻塞,直到函数调用完成为止, ... -
Chapter 5__标准IO库
2010-10-12 11:56 5981)缓冲的本质是减少read和write调用的次数,也就是物 ... -
Chapter 4__文件和目录
2010-10-09 17:34 697一些概念: 主、次设备号 主设备号标识设备驱动程序 次设备号 ... -
Chapter 1__ls DIR And struct dirent
2010-10-08 10:25 58遍历目录 #include "aupe.h& ... -
stdarg.h 可变长参数
2010-09-30 12:13 752http://zh.wikipedia.org/zh-sg/S ... -
Practice Shell解释器
2010-09-29 15:34 950http://linux.chinaunix.net/bbs/ ... -
Chapter 13__守护进程Daemon
2010-09-29 14:43 620为什么守护进程会从进程中成为一类,相对普通进程有什么区别? ... -
Chapter 12__线程控制
2010-09-29 09:53 622★12.2线程限制,sysconf函数,增强可移植性; ★ ... -
Chapter 11__线程
2010-09-28 09:35 675★线程的执行环境 线程ID、栈 一组寄存器值 调度优先级和策 ... -
Chapter 10__信号
2010-09-27 14:06 738SIGHUP解说,有关终端和 ... -
Chapter 9__进程关系
2010-09-27 12:06 749------------------------------ ... -
Chapter 8__进程控制
2010-09-19 13:58 718//一些函数: pid_t getpid(void); ...
相关推荐
【压缩包子文件的文件名称列表】"q_dms_chapter02" 没有提供具体的文件名,但通常情况下,这样的命名可能代表“问题-解答-系统”的结构,或者是某个课程或教程的章节编号。"Chapter02"提示这可能是系列教程的一部分...
在C#中,文件操作是通过`System.IO`命名空间来实现的。这包括文件的读取、写入、追加等操作。在本案例中,我们主要关注于文件的追加、读取和查找记录。 #### 二、文件流(FileStream) `FileStream`类用于创建或打开...
Chapter 5可能详细介绍了如何使用VB.NET的IO类进行基本的文件操作,如创建、打开、读取、写入和追加文件。此外,它可能还会涵盖错误处理,如使用Try-Catch块来捕获和处理可能出现的IOExceptions。对于存储程序部分,...
此外,Java标准库提供了大量的类和接口,如IO流、网络编程、XML处理等。InputStream和OutputStream代表了输入和输出流,它们用于读写文件和网络数据。Socket和ServerSocket类支持网络通信。DOM和SAX是两种解析XML...
本章“Chapter3 IO”可能详细探讨了如何在C++环境中进行文件操作,这对于任何Windows应用程序的开发都至关重要。下面将深入讨论相关知识点。 1. **I/O流库**: C++中的标准模板库(Standard Template Library, STL)...
3. 数据量处理:对于大量数据,文件提供了更高效、方便的管理方式。 文件I/O操作包括读取(read)和写入(write)两个过程。C++中,可以使用`ifstream`类打开并读取文件,`ofstream`类用于创建并写入文件。例如,...
虽然这些文件都是MATLAB格式,而不是Python,但考虑到标签为"py",可能是因为这些MATLAB代码被用作Python编程学习的一个参考点,或者是在Python环境中通过接口(如`scipy.io.loadmat`)进行MATLAB数据的读取和分析。...
4. **IO流**:Java的IO流库用于读写数据,包括文件操作、网络通信等。第九章可能涵盖了输入输出流的基本概念,如字节流和字符流,以及缓冲流、对象序列化和文件复制等实际应用。 5. **多线程**:Java提供了内置的多...
本章“Chapter11”主要探讨了Java中的文件操作以及异常处理,特别是如何自定义异常。让我们深入了解一下这些关键概念。 首先,Java提供了丰富的API来处理文件,主要集中在java.io包中。例如,`File`类用于表示文件...
文件I/O的操作通常包括打开文件(`open()`)、读取文件(如`read()`)、写入文件(如`write()`)、关闭文件(`close()`)等步骤。C++的I/O库还提供了诸如错误检查、流定位和缓冲区管理等功能,以优化文件操作的性能...
《嵌入式系统及应用UCOS-Chapter8-IO管理》是关于嵌入式系统中I/O管理的讲解,主要用于教学参考。I/O管理在任何操作系统中都是至关重要的,因为它负责处理系统与外部设备间的数据交换。在嵌入式系统中,由于资源有限...
在文件上传和下载的场景中,Java的`java.io`和`java.nio`包提供了基础的文件操作接口和类,如`FileInputStream`和`FileOutputStream`,用于读写文件。此外,`java.net`包中的`Servlet`接口和`HttpServlet`类是处理...
本章的"C#CHAPTER 29例子"着重于展示如何有效地实现这一功能,同时提供了如何显示文件和文件夹信息的示例。下面我们将详细探讨这些知识点。 1. **遍历文件夹**: 在C#中,我们可以使用`System.IO`命名空间中的`...
3. **文件读写操作** - `FileInputStream`和`FileOutputStream`用于读写二进制数据,如图片、音频等。 - `FileReader`和`FileWriter`处理文本数据,它们默认使用平台的默认字符编码。 - `BufferedReader`和`...
f.write(chapter_text + '\n\n') # 将章节内容写入文件 ``` 除了基本的爬虫逻辑,我们还需要考虑一些实际问题,例如处理反爬策略(如User-Agent和代理IP)、处理JavaScript渲染的内容(可能需要使用Selenium等工具...
"chapter08"的压缩包可能包含了一系列的教程文档、代码示例、练习案例,甚至可能是预配置的Tableau工作簿和Java项目文件。解压并深入研究这些资料,将有助于我们系统地掌握Tableau的数据分析技巧和Java的编程技能。...
3. **加载音频数据**:将音频文件从存储器读取到缓冲区,准备播放。 4. **播放控制**:通过改变GPIO状态,启动Codec进行音频数据的解码和播放。 5. **中断处理**:当播放完成或有其他事件发生时,通过中断服务程序...
本章节我们将深入探讨"chapter7"中的核心概念,这通常涵盖Java编程的高级主题,如多线程、集合框架、IO流以及网络编程等。 首先,多线程是Java中的重要特性,它允许程序同时执行多个任务,提高了程序的效率和响应性...
2. 文件操作:熟练使用File类进行文件的创建、读写和删除。 3. 缓冲流:利用BufferedReader和BufferedWriter提高读写效率。 4. NIO:介绍非阻塞I/O,包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)的...
在本资源"Java语言程序设计与数据结构(基础篇)第3章课后习题代码chapter3.rar"中,我们聚焦于Java编程语言与数据结构的基础应用。这章的学习目标主要是理解和掌握Java语言的基本语法以及如何利用数据结构来解决...