2

ストリーミング可能な音楽を mp3 ファイルとして表示する FUSE ファイルシステムを作成しようとしています。ID3v1.1 タグだけが読み取られたときにオーディオのストリーミングを開始したくないので、ファイルシステムを direct_io および max_readahead=0 でマウントします。

しかし、これを行うと (これは libid3tag が行うことでもあります)、末尾からオフセット -2880 バイトの 2752 バイトの読み取りが取得されます。

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

どうしてこれなの?サイズ 10 で、最後から正確に 128 バイトのオフセットで read の呼び出しが行われることを期待しています。

読み取られるバイトの量は多少異なるようです。

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 に答える