how do i read a block

shampavman shampavman.cg at gmail.com
Tue May 14 02:35:32 EDT 2013


On 05/14/2013 11:59 AM, Prashant Shah wrote:
> Hi,
>
> On Mon, May 13, 2013 at 9:52 PM, Matthias Brugger
> <matthias.bgg at gmail.com> wrote:
>> El 13/05/2013 10:07, "shampavman" <shampavman.cg at gmail.com> va escriure:
>>
>>
>>> Hi all,
>>>
>>> Supposing i create a file of size 10K, it will occupy 2 blocks (4K each).
>>> Now if i want to read only 1 block from it how can i do it?
>>>
>>> read(fd, buf, 4096) ;
>>> would this mean i would read the first block and all its contents?
> One way to do this is use the FIBMAP ioctl to the get the block
> numbers of a file and then seek the disk /dev/sdX directly and use the
> read() to get data block.
But why does a simple read not turn out 1 block for me?
Eg, i know my block size if 4k and my file (according to du) reports 
that it's using 8k of space.
So when i read the file via the read() and ask it to give me the 'first 
4k' bytes, would that not return 1 block ?

thanks
>
> Regards.




More information about the Kernelnewbies mailing list