C言語なら、オレに聞け! <4>

このエントリーをはてなブックマークに追加
5416
>>17,18,22,23
レスありがとうございます。statつかえばいいのですけど system-depend な
定義に少し食傷気味といいますか、、なんとか C 標準で書けないものかと
お知恵拝借いたしました次第です。
C の規格自体がもう古いので何かしようとするとキツイ制限にはまって
しまいますが、かといって広い環境でサポートされて高速に動くのは C
くらいしかないかなとジレンマに陥ります。

>>24
バイナリストリームなら期待したように動作するのでしょうか?
それなら解決です。でも何やら気になる一文があるのですが...
これってバイナリやステート依存なストリームには SEEK_END は undefined
behavior なのでしょうか...? (英文は苦手です・涙)

>>26
やはり POSIX を標準として書くべきでしょうか..
スレッドもマップトファイルも C 標準ではもはや無理ですし..

規格書の気になる一文(ISO-C99N896 302p)
>211Setting the file position indicator to end-of-file, as
>  with fseek(file, 0, SEEK_END), has undefined behavior for
>  a binary stream (because of possible trailing null
>  characters) or for any stream with state-dependent
>  encoding that does not assuredly end in the initial shift
>  state.