2

我正在尝试编写一个 FUSE 文件系统,将流式音乐呈现为 mp3 文件。我不想在仅读取 ID3v1.1 标签时开始流式传输音频,因此我使用 direct_io 和 max_readahead=0 安装文件系统。

但是当我这样做时(这也是 libid3tag 所做的),我从末尾读取了 2752 个字节,偏移量为 -2880 个字节:

char tmp[255];
FILE* f = fopen("foo.mp3", "r");
fseek(f, -128, SEEK_END);
fread(tmp, 1, 10, f);

为什么是这样?我希望得到一个调用来读取一个偏移量正好 128 字节的大小为 10..

读取的字节数似乎有所不同。

4

1 回答 1

0

我遇到了类似的问题,并向 s3fs 提出了问题。结帐问题:http ://code.google.com/p/s3fs/issues/detail?can=2&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=241

此外,在 s3fs.cpp 中检出第 1611 行:

http://code.google.com/p/s3fs/source/browse/trunk/src/s3fs.cpp?r=316

 // error check this

 // fseek (pSourceFile , 0 , SEEK_END);
于 2011-12-15T22:22:39.797 回答