作为学术类(class)的一部分,我一直在使用 SSH 与我正在开发的操作系统进行通信。 (如果你好奇的话,请访问 www.xinu.cs.purdue.edu)我发现我糟糕的编程带来了一些非常奇怪的副作用,我希望有人能解释它是如何发生的。
我现在修复的错误是我在一个创建新线程的函数中乱序列出了参数)乱七八糟的参数是函数名称及其优先级,它们目前都不会影响操作(那里只有一个进程想要运行)。
我担心的是,当我将进程列表(其中包含无效名称和优先级)打印到控制台时,我的终端会将 my 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
我没有键入“Bitvise SSH 客户端”,但我可以将其退格(而且我无法删除 $ 之前的任何内容)。错误的进程列为 F。此外,如果我切换 ssh 客户端,则会插入我的新程序的名称(例如 puTTy)。此外,如果多个进程初始化错误,则每个错误进程插入一次终端程序名称。 (无论进程做什么,无论它处于什么状态,它都会发生)
错误程序可以通过 SSH 发送什么信息,使我的计算机打印出它的程序名称?我不记得有任何转义字符导致这种情况,而且我从未告诉另一台计算机我的终端程序叫什么。
最佳答案
您的错误程序名称可能包含 Ctrl-E 字符(ASCII 005,ENQ 字符)。这会导致 PuTTY 和其他终端仿真器以其程序名称进行应答。参见 this entry在PuTTY FAQ , 例如。效果就像您输入了程序名称一样。
关于c - ssh terminal 插入终端程序名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867063/