function - 如何计算需要读取的块数
问题描述
我有一份操作系统概念的试卷,其中包含一个相当困难的问题,我必须在考试前复习它。我不太了解这个问题,也不知道如何计算问题上引用的文件的块数。请帮我。
操作系统使用 32 位指针通过链表方法分配文件。假设一个数据块的大小为 4KB,块的前 32 位包含指针,其余的包含数据。我们还假设在应用程序中成功调用了以下函数:
fd = open('myfile.bin',O_RDONLY);
myfile.bin 是一个大小为 20480 字节的文件。
a) 在我们执行以下系统函数时,计算需要读取的块数(包括包含指向链表第一个块的指针的块)
lseek(fd,16385,SEEK_SET); read(fd,&c,1);
b) 计算 a 部分系统功能执行完毕后我们必须继续执行以下系统功能时需要读取的块数。
lseek(fd,2048,SEEK_CUR); read(fd,&c,1);
解决方案
推荐阅读
- android - Android 模拟器 - 升级后如何运行 Chrome 应用
- sql - Excel 中的 SQL:无法调用声明的变量
- sql-server - 有没有办法为 SQL Server 中的排序操作设置默认排序规则?或 SQL Server 2019 中的 oracle NLS_SORT 等效项
- visual-studio-code - Visual Studio Code 文件过滤器行为
- python - 使用 FiPy 在 1D 柱坐标上求解 PDE
- javascript - jQuery Validator Form Plugin 在验证之后但在提交之前显示消息
- r - 如何使用ggplot2将子组点图(3)集中在分组箱线图(2)上?
- jsf - 如何使用命令按钮jsf primefaces在ui重复中获取h:outputtext的值?
- xml - 通过 Snowflake UI 查询具有嵌套标签的 XML
- ruby - 从类外部访问实例变量