作为学术课程的一部分,我一直在使用SSH与我正在开发的操作系统进行通信。(请看www.xinu.cs.purdue.edu,如果你好奇的话)我看到了一些非常奇怪的副作用,我的坏编程,我希望有人能解释它是如何发生的。
我现在修正的错误是,我在一个创建新线程的函数中列出了无序的参数),参数混乱的是函数名及其优先级,这两者目前都不影响操作(只有一个进程需要运行)。
我担心的是,当我将进程列表(包含无效的名称和优先级)打印到控制台时,我的终端会将 My ssh程序的名称插入到 my end上的终端中。例如,这将是我的终端的最后几行:
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客户端“,但我可以将其退出(而且我不能在$之前删除任何内容)。错误中的进程列为F。此外,如果我切换ssh客户端,则插入我的新程序名(例如puTTy)。此外,如果多个进程初始化错误,则每一个坏进程插入一次终端程序名。(无论进程做什么以及处于什么状态,它都会发生)
错误程序可以通过SSH发送哪些信息,使我的计算机打印出它的程序名?我不记得有任何转义字符造成这一点,我从未告诉另一台计算机我的终端程序是什么名字。
发布于 2017-01-26 14:14:26
您不正确的程序名称可能包含一个Ctrl字符(ASCII 005,ENQ字符).这将导致PuTTY和其他终端仿真器使用它们的程序名进行应答。例如,请参见这一项中的PuTTY常见问题。其效果就好像您输入了程序的名称。
https://stackoverflow.com/questions/41867063
复制相似问题