все.Я сталкиваюсь со странной ошибкой.У меня есть программа на С, подобная этой.
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char **argv)
{
printf("hello\nworld\n!");
}
Я скомпилировал программу с помощью gcc, вывод - файл 'a.out'. 'A.out' можно запустить как оболочку bash.
Я использую модуль python pexpect, чтобы получить вывод 'a.out'
#test.py
import pexpect
x = pexpect.spawn("./a.out", echo=False, encoding='utf-8')
x.expect(['.+', pexpect.EOF], timeout=0.1)
print('1. x.after=', x.after, 'x.eof()=', x.eof())
x.expect(['.+', pexpect.EOF], timeout=0.1)
print('2. x.after=', x.after, 'x.eof()=', x.eof())
Я сохранил приведенный выше скрипт как 'test.py'.
Когда я использую 'python3 test.py' для запуска './a.out' в терминале на сервере Ubuntu (16.04, 18.04 и debain), для первого pexpect я получил
- x.after = привет x.eof False
и за секунду я получил
x.after = world!x.eof = False
На рабочем столе Ubuntu (16.04, 18.04) я могу получить правильный ответ, для первого взгляда я получил
- x.after= Привет, мир!x.eof False
за секунду я получил
x.after = x.eof = True
Обратите внимание, что только первый '\ n' будет прерван.
Я действительно не знаю 'не знаю, что случилось.