Как запустить программу на C из Python, используя Popen и pipe, чтобы, например, scanf () ожидал ввода в канал? - PullRequest
0 голосов
/ 14 декабря 2018

Как запустить программу на C из Python с использованием Popen и каналов, чтобы, например, scanf () ожидал ввода в канал?

Я хочу создать подпроцесс C-программы изапустите его в интерактивном режиме, используя каналы:

proc = subprocess.Popen(['./echo'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.stdin.write('Bob')

C-программа:

puts("Enter your name:");
scanf("%s", &input);
printf(input)

Теперь проблема в том, что scanf() не ждет моего ввода, а вместо этого немедленно возвращает,Это происходит как с использованием shell=True, так и без него.

Как мне заставить каналы работать должным образом, например scanf() ждать ввода пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...