作为学术课程的一部分,我一直在使用SSH与我正在开发的操作系统进行通信。 (如果你很好奇,请参见www.xinu.cs.purdue.edu)我看到了一些非常奇怪的副作用,我希望有人可以解释它是如何发生的。< / p>
我现在修正的错误是我在创建新线程的函数中无序列出了参数。混乱的参数是功能名称及其优先级,它们目前都不是效果操作(只有一个进程想要运行)。
我担心的是,当我将进程列表(包含无效的名称和优先级)打印到控制台时,我的终端会将我的 ssh程序的名称插入终端 my 结束。 例如,这将是我终端的最后几行:
xsh $ ps
Pid Name State Prio Ppid Stack Base Stack Ptr Stack Size
--- ---------------- ----- ---- ---- ---------- ---------- ----------
0 prnull ready 0 0 0x0EFDEFFC 0x0EFDEEB0 8192
1 rdsproc susp 200 0 0x0EFDCFFC 0x0EFDCFC8 16384
3 Main process recv 20 2 0x0EFC8FFC 0x0EFC8F64 65536
4 shell recv 50 3 0x0EFB8FFC 0x0EFB8C7C 8192
5 F curr 30548 4 0x0EFD8FFC 0x0EFD8D88 8192
xsh $ Bitvise SSH Client
我没有键入&#34; Bitvise SSH Client&#34;但是我可以退出它(而且我不能在$之前删除任何东西)。错误的进程列为F.此外,如果我切换ssh客户端,则插入我的新程序的名称(例如puTTy)。此外,如果多个进程初始化错误,则每个错误进程插入一次终端程序名称。 (无论过程如何以及它所处的状态如何都会发生)
错误程序可以通过SSH发送哪些信息使我的计算机打印出程序名称?我不记得导致这种情况的任何逃脱角色,我从未告诉另一台计算机我的终端程序是什么。
答案 0 :(得分:2)
您的错误程序名称可能包含Ctrl-E字符(ASCII 005,ENQ字符)。这会导致PuTTY和其他终端仿真程序使用其程序名称进行回答。例如,请参阅this entry中的PuTTY FAQ。效果就像您输入了程序名称一样。