У меня есть файл с именем get_int.c
в удаленной системе Unix, содержащий следующее:
#include <stdio.h>
int main() {
int input;
printf("Give an integer: ");
fflush(stdout);
scanf("%d", &input);
printf("Try again: ");
scanf("%d", &input);
printf("You said... %d\n", input);
return 0;
}
У меня есть команда для компиляции и запуска этого файла из моего локального WSL:
sshpass -f pass.txt ssh username@remote.host.address "cd path/to/file/ && gcc get_int.c && a.out"
Когда я выполняю эту команду, я успешно получаю приглашение Give an integer:
, предоставляю его и нажимаю ввод. Тогда, однако, я не получаю приглашение Try again:
. Я все еще могу ввести целое число (123) и нажать клавишу ввода. Когда я это сделаю, он печатает Try again: You said... 123
Как видите, печать не происходит, пока я либо fflush(stdout)
, либо программа не завершится. Могу ли я изменить свою команду s sh, чтобы вывод шел на локальный терминал без необходимости fflush
перед каждым scanf
?