syscall 命令
用途
执行指定的子例程调用。
语法
syscall [ -n ] 名称 [ Argument1 ... ArgumentN ] [ ; Name [ Argument1 ... ArgumentN ] ] ...
描述
syscall 命令执行系统调用接口程序,该程序执行 Name 参数指定的子例程调用。 如果您指定了 -n 标志,那么 syscall 命令会执行调用 n 次。 由 Argument 参数指定的变量不经过误差检测就传递到子例程。 Argument 参数可以通过下列格式表示:
| 项 | 描述 |
|---|---|
| 0x nnn | 十六进制常量 nnn。 |
| 0 nnn | 八进制常量 nnn。 |
| nnn | 十进制常量 nnn。 |
| +nnn | 十进制常量 nnn。 |
| - nnn | 十进制常量 nnn。 |
| "字符串 | 字符串“string”。 |
| '字符串 | 字符串“string”。 |
| \字符串 | 字符串“string”。 |
| #字符串 | 字符串“string”的长度。 |
| &&N | 子例程第 n 个变量的地址。 (n=0 即为子例程名。) |
| &N | 内部 10KB 缓冲区的第 n 个字节的地址。 |
| $n | 第 n 个子例程的结果。 ( n=0 为第一个子例程。) |
| 字符串 | 任何其他文字字符串。 |
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注: 必须对特殊 shell 字符进行转义。
文件
| 项 | 描述 |
|---|---|
| /usr/bin/syscall | 包含 syscall 命令。 |