get_char(3) MudOS v21c2 (5 Sep 1994) 名称: get_char - 让之後输入的字元送往一个指定的函数. 语法: varargs void get_char( string | function fun, int flag, ... ); 不定参数 无传回值 get_char( 字串 或 函式指标 fun, 整数 flag, ... ); 用法: 让使用者之後输入的字元送往函式指标 fun, 作为 fun 的 参数. 驱动程式 (driver) 不会分析 (parse) 输入的字元. 请注意 get_char 是「非阻隔性」 (non-blocking) 的, 意 即呼叫 get_char 的物件不会暂停下来等待使用者的输入动 作. 呼叫 get_char 的物件会继续执行随後任何的程式叙述. 在收到输入的字元之前, 指定的函式 fun 不会被呼叫. 如果同一个物件呼叫 get_char() 超过一次以上, 就只有第 一次的呼叫有效. 如果可以选择的参数 flag 指定为非零值 (non-zero), 则 玩家输入的字元就不会回传 (echo) , 物件被窃听时也不会 回传 (用在输入密码时很有用). 呼叫函式指标 fun 时, 使用者输入的字元会被当作是函式 的第一个参数 (变数型态为字串) . 在 flag 之後指定的参 数会当作函式 fun 的其他参数. 问题: get_char 在 MudOS 0.9 及更早的版本有一个非常明显的问 题. 在较差之远端终端机协定 (telnet negotiation) 的许 多作业系统上 (按: 所有市场上早期的主流品牌之工作站) , get_char 会使画面输出的结果变得非常奇怪. 除非这些 问题得到解决, 在一般的 mudlib 程式码中, 还是建议别用 get_char 这个函式. (目前只知道 get_char 对使用 NeXT 工作站连线的使用者不会有此问题. ) 参考: call_other(3), call_out(3), input_to(3) 翻译: Spock @ FF 97.Feb.14. (printed 3/16/95)