首页 > 解决方案 > 如何计算需要读取的块数

问题描述

我有一份操作系统概念的试卷,其中包含一个相当困难的问题,我必须在考试前复习它。我不太了解这个问题,也不知道如何计算问题上引用的文件的块数。请帮我。

操作系统使用 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);

标签: functionpointersoperating-system

解决方案


推荐阅读