我正在使用 bin/sh 作为我的 shell 通过 netcat 访问我的 linux 机器。我编写了一个小程序,摘录如下:
printf("Enter command to exec \n");
fgets(abc,128,stdin);
....
发生的事情是,当我通过 netcat 在 shell 中运行程序时,“输入命令发送到系统”直到我实际退出程序后才会打印。
它应该是 ./program 之后出现在屏幕上的第一件事,奇怪的是它在运行时接受我的输入,就好像跳过了 printf 命令一样。我的输入被很好地发送到系统(并打印输出),但屏幕是空白的,没有我编码的 printfs 出现。
然而,一旦我退出程序,所有的 printfs 在它返回到 shell 之前实际上都会出现(好像被缓冲了)。关于为什么会发生这种情况的任何想法?如果您需要更多信息,请告诉我,我会很乐意更新线程。
非常感谢你