SYSCALL(2)

名称
syscall, __syscall - 間接的なシステムコール

ライブラリ
libc

書式
<sys/syscall.h> <unistd.h> int syscall(int number, ...) off_t __syscall(quad_t number, ...)

解説
syscall() は、指定した number を持つアセンブリ言語インタフェース のシステムコールを、 指定した引数で実行します。システムコールのシンボリック定数は、 ヘッダファイル <sys/syscall.h> にあります。 __syscall() は、 1 つ以上のパラメータが 64 ビット引数で、引数の アラインメントが正しいことを保証する場合に使用して ください。このシステムコールは、 C ライブラリにエントリがない、新しいシステムコールを テストする場合に有用です。

戻り値
戻り値は、呼び出すシステムコールで定義されています。 一般的に 0 は正常に完了したことを示します。 -1 はエラーを表わし、エラーコードが errno に設定されます。

バグ
pipe(2) のように、複数の戻り値があるシステムコールを シミュレートする方法はありません。

歴史
syscall() 関数呼び出しは、 4.0BSD で登場しました。