syscall コマンド
目的
指定されたサブルーチン・コールを実行します。
構文
syscall [ -n ] Name [ Argument1 ... ArgumentN ] [ ; Name [ Argument1 ... ArgumentN ] ] ...
説明
syscall コマンドは、Name パラメーターで指定されたサブルーチン・コールを実行する、システム・コール・インターフェース・プログラムを実行します。-n フラグを指定すると、syscall コマンドは呼び出しを n 回実行します。Argument パラメーターで指定された引数は、エラー検査をせずにサブルーチンに渡されます。Argument パラメーターは以下のフォーマットで表現されます。
項目 | 説明 |
---|---|
0x nnn | 16 進定数 nnn です。 |
0 nnn | 8 進定数 nnn です。 |
nnn | 10 進定数 nnn です。 |
+nnn | 10 進定数 nnn です。 |
-nnn | 10 進定数 nnn です。 |
"string | 文字列「string」です。 |
'string | 文字列「string」です。 |
¥string | 文字列「string」です。 |
#string | 文字列「string」の長さです。 |
&&n | 当該サブルーチンに与える n 番目の引数のアドレスです。(n=0 はサブルーチン名です。) |
&n | 10 KB の内部バッファー内の n 番目のバイトのアドレスです。 |
$n | n 番目のサブルーチンの結果です。(n=0 が最初のサブルーチンです。) |
string | ほかのリテラル文字列です。 |
syscall コマンドは、未知のサブルーチンと -1 の値を戻すサブルーチンがあると、メッセージを出力し、終了します。
注: syscall コマンドは、sleep サブルーチンを特殊なケースのサブルーチンとして認識します。
フラグ
項目 | 説明 |
---|---|
-n | syscall コマンドが指定されたサブルーチンを実行する回数を指定します。 |
; | syscall コマンドの同一の呼び出しによって発行される (最大 20 回までの) 複数のサブルーチンを区切ります。 |
例
C プログラム・フラグメントをシミュレートするには、
output=open("x", 401, 0755);
write(output, "hello", strlen("hello"));
以下のように入力します。
syscall open x 401 0755 ¥; write ¥$0 hello ¥#hello
注 : シェルの特殊文字は、エスケープしなければなりません。
ファイル
項目 | 説明 |
---|---|
/usr/bin/syscall | syscall コマンドが含まれます。 |