新城@筑波大学情報です。こんにちは。

In article <m3hdrsj4ff.fsf@nospam.maedapc.cc.tsukuba.ac.jp>
        MAEDA Atusi <maeda-news@ialab.is.tsukuba.ac.jp> writes:
> 「成功すると0を返す」っていうのは、値を計算する関数ではなくて何か副作
> 用を伴うルーチンのことですよね。そうすると最終的にシステムコールを行な
> うものが多いので、「システムコールと関係ない」といえるかどうか微妙です
> が、標準Cの関数だとたとえば
> raise, remove, rename, fclose, fflush, setvbuf, fgetpos, fseek,
> fsetpos, atexit 
> なんてのは「成功すると0、失敗すると非0とかEOFとか」となっています。

rename() は、BSD 系では、システムコールかなあ。

f系のファイルにけっこうあますね。これはだいたいシステムコー
ルと関係していそうだけど、setvbuf() だけ違う気がします。

raise() とか remove() ってまず使わないなあ。

remove() は、本当はライブラリではダメな気がします。unlink() 
して失敗したら rmdir() という方法だと、unlink() に失敗した後、
rmdir() の前に、隙をついて何かやられるとうまくありません。

ライブラリ関数(システムコールを伴わないはず)なのに失敗して 
errno に値を返すものがありますね。strtol() とか。これも何か
困る気がしたんだけど、忘れました。マルチスレッドでも一応
errno は、スレッド固有だし。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\