#linux

散布/聚集 I/O 目的是在单次系统调用(I/O操作)中操作多个缓冲区。按我们平时的读写操作,** read ** 以及 ** write *,都是将数据读入单个缓冲区,从单个缓冲区中写出。 同样也有对应的操作接口: 107 都包含三个参数,fd是需要操作的文件;第二个是iovec结构的数组,即缓冲区,第三个指示数量。 iovec结构 108 用基址和长度来描述一个缓冲区。读入的数据将放入iov_base~iov_base+iov_len这片内存区域中。 segment用来表示一个缓冲区。 * 读操作 *:从文件中读入count个segment到 iov指向的缓冲区数组中。 * 写操作 **;

Read More

简介 本章主要介绍C所提供的标准I/O操作。不同于前面的open只能在Linux上被支持,C标准接口能够在不同系统中被支持。两个基本的概念,关于底层的I/O操作,效率问题。 1. 磁盘,读写最下层就是磁盘的操作。所有的磁盘操作都是基于块进行,这句话的意思就是如果跨越块进行读写会导致效率降低,因此读写请求若选择块大小的整数倍和约数倍的话,就能够保证不会出现跨越块进行读写的问题。 2. 内存,常听到的内存对齐问题。CPU进行读写数的时候,对于32位的机器,一次读取写入4字节,并且是按照起始地址开始的,例如CPU要读取一个值时,它只会从4的倍数的地址进行读写,只会读取0,4,8这些地址(起始地

Read More

概述,也就是简单描述每一章所包含的内容,可以能够快速了解到Linux系统编程中所包含的内容。 简介和主要概念 对应书中的第一章,介绍的是整体内容以及一些概念;整体内容包括文件的操作(I/O); 进程; 内存; 信号; 时间。 文件I/O的概念 如何在程序中访问到文件?通过文件描述符;而通过文件描述符索引到的是一个inode标识,然后通过inode直接关联到实际的文件。但是通过inode来访问对用户来说并不是很方便,毕竟inode只是一个整数值,并不能直观的对应到文件;所以此时就建立了一张表,将文件名和inode进行映射,那么我们就可以通过文件名来访问到inode从而访问到文件了,这就是目录

Read More

按照书籍的简介,对文件I/O的介绍流程为:文件I/O的相关概念、C标准的I/O接口、更高级专门化的I/O接口、文件和目录操作四个部分。 文件I/O基础 这章主要介绍Linux是如何管理文件的读写操作的,从打开文件到文件关闭中途的一系列对文件的操作过程。这里注意的是4点: 1. 文件通过文件描述符来操作,即打开一个文件,就会返回一个文件描述符;然后Linux Kernel为每一个进程维护一张打开文件表,按照文件描述符对打开的文件进行索引。当然最终还是索引到inode。 2. 每个进程一开始启动默认打开的三个文件描述符,0表示标准输入,1表示标准输出,2表示标准错误;因此我们打开一个文件,

Read More

说是Linux系统编程一书的导读,其实只是对Linux系统编程的学习笔记吧。系统编程其实说到底就是借用操作系统所提供的API进行一些底层功能性的操作,并在使用的过程中尽可能去了解其工作的原理。看了一下目录,主要分为以下几个部分: 文件的操作(I/O); 进程; 内存; 信号; 时间。也就主要分为这几个部分来学习学习。尽可能使用简短的语言以及实际的例子来描述。 简介 按照 1.4 Linux编程概念来描述 文件 文件描述符fd,我们平时在使用Linux C的open函数来打开一个文件的时候,就会返回一个整数值; 127 该整数值就是文件描述符了。在使用open打开文件后,就可以通过文件描述符

Read More

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×