syscall(num, *arg) -> Integer
[permalink][rdoc][edit]-
numで指定された番号のシステムコールを実行します。第2引数以降をシステムコールの引数として渡します。
どの数値がどのシステムコールに対応するかは、 syscall(2) や /usr/include/sys/syscall.h を参照してください。
システムコールの慣習に従い、syscall(2) が -1 を返す場合には例外 Errno::EXXX が発生します。それ以外では、返した値をそのまま数値で返します。
ライブラリ fiddle を使えばより高レベルな操作ができます。
- [PARAM] num:
- システムコール番号です。
- [PARAM] arg:
- 文字列か、整数です。最大 9 個まで渡すことができます。
- [EXCEPTION] Errno::EXXX:
- syscall(2) が -1 を返した場合に発生します。
- [EXCEPTION] NotImplementedError:
- 実行環境がこのメソッドに対応していないとき発生します。
syscall 4, 1, "hello\n", 6 # '4' is write(2) on our box # => hello
[SEE_ALSO] fiddle, syscall(2freebsd), syscall(2linux)