Я довольно новичок во всем этом. Здесь моя проблема.
У меня есть открытие канала для gnuolot из VS2010 c ++ в соответствии с «FILE * p = _popen», это, кажется, работает, когда я в конечном итоге появляется график.
У меня есть бесконечный цикл, который прерывается «щелчком переключателя» непосредственно после открытия канала и отправки команд в «gnuplot» внутри структуры int _tmain (int argc, _TCHAR * argv []) {}
Кажется, что этот цикл каким-то образом блокирует создание графа в gnuplot, поскольку он появляется только тогда, когда я намеренно прерываю бесконечный цикл или, возможно, «зависаю» все время процессора.
Моя главная, конечная цель — открыть канал для gnuplot, а затем вывести переменную из моей программы на С ++ в реальном времени в gnuplot.
Проблема в том, что stdio буферизует вывод в каналы по умолчанию. Решения:
Вызов fflush
когда вы хотите форсировать данные в канал.
Вызов fflush
после каждой операции вывода.
Вызов setbuf
после открытия канала отключить буферизацию.
Вызов pclose
когда вы закончите отправку в канал, и все буферизованные данные будут сброшены.
Других решений пока нет …