首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux系统read文件过程分析

read一个文件 首先是通过系统调用open一个文件 大家好,我是ChinaUnix的T-bagwell 然后通过系统调用去read一个文件,为什么man 2 read的时候或者man 2 write的时候的参数与写的驱动的...接口,一个是file的read,大家好,我是ChinaUnix的T-bagwell,转载请注明出处,一个是do_sync_read,下面直接说file->f_op里面的read,这个read是在写设备驱动的时候...,或者文件系统加载的时候注册的read 下面看设备驱动部分的read 231 static ssize_t nvram_read(struct file *file, char __user *buf,...= do_sync_read, 136 .write = do_sync_write, 137 .aio_read = generic_file_aio_read...do_sync_read是一样的操作,最终会进入到generic_file_aio_read,里面 generic_file_aio_read里面就是从快设备里面读取内容了,到这里,如文件结束

2.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux tcpip 源码分析 - read

,file->f_op指向的实例只有read_iter字段,没有read字段,所以该方法最终会调用new_sync_read方法。...之后又调用call_read_iter方法,传入这些新的参数,继续执行read逻辑 // include/linux/fs.h static inline ssize_t call_read_iter...当tcp层收到数据后,会将数据放到sk->sk_receive_queue队列,等待用户读取,该部分逻辑的详细分析,我们以后会另开文章详细讲解。 7....seq的值,即下一个要拷贝字节的位置,copied的值,即已经拷贝的字节数,len的值,即剩余要拷贝的字节数,最后,根据情况决定是否要将skb从sk->sk_receive_queue队列移除。...如果sk->sk_receive_queue队列已经没有可读数据了,则看copied变量,即现在已经拷贝给用户的字节数,是否大于等于target,即一次read最少要读的字节数,同时还要看sk->sk_backlog.tail

3K20

Linux命令(46)——read命令

1.命令简介 read命令是Shell内建命令,用于从标准输入或-u选项指定的文件描述符读取单行,并将读取的单行根据IFS变量分割成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name。...如果没有指定任何var_name,则分割后的所有字段都存储在特定变量REPLY。当然,其不仅可以赋值变量,还可以赋值数组。...-u fd] [name ...] 3.选项说明 -a [aname]:将分裂后的字段依次存储到指定的数组,存储的起始位置从数组的下标0开始 -d [delim]:后跟一个标志符,只有第一个字符有用,...runoob (6)读取文件 每次调用 read 命令都会读取文件的 “一行” 文本。...指令使用方法 [4]详细解析Shell的IFS变量 [5]菜鸟教程.Linux read 命令

2.7K20

【高级编程】Linux read系统调用

引入 cache 层的目的是为了提高 linux 操作系统对磁盘访问的性能。 Cache 层在内存缓存了磁盘上的部分数据。...),在接下来的 sys_read 函数中将会调用 file->f_op 的成员 read 。...文件的page cache结构 在 Linux 操作系统,当应用程序需要读取文件的数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存,然后再将数据分发给应用程序;当需要往文件 写数据时...也正是由于页面映射的磁盘块不一定连续,所以在页高速缓存检测特定数据是否已被缓存就变得不那么容易了。另外linux页高速缓存对被缓存页的范围定义的非常宽。...为了满足普遍性要求,linux使用定义在linux/fs.h的结构体address_space结构体描述页高速缓存的页面。

5.9K110

linux命令讲解大全】053. Shell脚本read命令及其用法

read命令 read命令从键盘读取变量的值,通常在Shell脚本中用于与用户进行交互。该命令可以一次读取多个变量的值,变量和输入的值之间需要用空格隔开。...: read first last 读取一行输入并赋值给特定变量REPLY: read 将单词列表读入数组arrayname: read -a arrayname 打印提示文本并等待输入,将输入存储在REPLY...read -p "text" 允许输入包含反斜杠: read -r line 指定等待时间为3秒: read -t 3 从输入读取两个字符并存入变量var,无需按回车读取: read -n 2...使用read命令从键盘读取变量值并赋给指定的变量,输入以下命令: read v1 v3 #读取变量值 执行上述命令后,要求输入两个数据,如下所示: Linux c+...#输入数据 完成后,可以使用echo命令输出查看指定变量的值,输入以下命令: echo $v1 $v3 #输出变量的值 执行输出变量值的命令后,将显示用户输入的数据值,如下所示: Linux

13310

shell的交互read命令使用

在Shell脚本read命令用于从标准输入读取用户输入的数据,并将其保存到指定的变量。这使得我们可以编写交互式Shell脚本,与用户进行交互,根据用户输入执行不同的操作。...read nameecho "Hello, $name!"在该示例,我们使用read命令读取用户输入的名字,并将其保存到变量name。然后,我们使用echo命令输出Hello, $name!...在该示例,我们使用read命令读取用户输入的名字,并使用-p选项指定了提示符"What's your name? "。然后,我们使用echo命令输出Hello, $name!.../bin/bashread -s -p "Enter your password: " passwordecho -e "\nYour password is $password"在该示例,我们使用read...fi在该示例,我们使用read命令读取用户输入的名字,并使用-t选项指定了超时时间为5秒。如果用户在5秒内输入了名字,则输出Hello, $name!

72010
领券