fd seekable - ファイル内を移動する方法2012年01月21日 11時49分40秒

FreeBSD のメーリングリストから。「easy way to determine if a stream or fd is seekable」で初めまるスレッドで結構長い。libarchive での経験も含めて言及されていたので、UNIX 全般に当てはめられる手法みたいだ。

結論は以下の通り。


1) if the file argument is a fifo, pipe or socket   --  goto 4)
2) if the file argument is a tape drive		    --  goto 4)
3) for all other cases try fseeko(), if that fails  --  goto 4)

4) use getchar()

ファイルが、fifo、pipe、socket なら即 getchar()。ファイルがテープドライブなら同じく getchar()。それ以外なら、fseeko() を試して、失敗したら getchar()。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2012/01/21/6299942/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。