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 コマンドが含まれます。