Я получаю доступ к своему linux box через netcat, используя bin / sh в качестве оболочки.Я написал небольшую программу, приведенную ниже:
printf("Enter command to exec \n");
fgets(abc,128,stdin);
....
Что происходит, когда я запускаю программу в оболочке через netcat, команда ввода команды для отправки в систему не печатается дофактически вышли из программы.
Это должно быть первое, что появляется на экране после ./program, и странно, что он принимает мой ввод при запуске, как будто пропускает команду printf.Мои входные данные отправляются в систему нормально (и печатает выходные данные), но в противном случае на экране ничего не отображается, без печати, которые я кодировал.
Однако, как только я выхожу из программы, все printfs действительно появляются (как если бы они буферизировались) перед тем, как вернуться в оболочку.Есть мысли, почему это происходит?Если вам нужна дополнительная информация, просто дайте мне знать, и я с удовольствием обновлю тему.
Большое спасибо