Visual Studio 2010 — gnuplot и c ++ и каналы

Я довольно новичок во всем этом. Здесь моя проблема.

У меня есть открытие канала для gnuolot из VS2010 c ++ в соответствии с «FILE * p = _popen», это, кажется, работает, когда я в конечном итоге появляется график.

У меня есть бесконечный цикл, который прерывается «щелчком переключателя» непосредственно после открытия канала и отправки команд в «gnuplot» внутри структуры int _tmain (int argc, _TCHAR * argv []) {}

Кажется, что этот цикл каким-то образом блокирует создание графа в gnuplot, поскольку он появляется только тогда, когда я намеренно прерываю бесконечный цикл или, возможно, «зависаю» все время процессора.

Моя главная, конечная цель — открыть канал для gnuplot, а затем вывести переменную из моей программы на С ++ в реальном времени в gnuplot.

0

Решение

Проблема в том, что stdio буферизует вывод в каналы по умолчанию. Решения:

  1. Вызов fflush когда вы хотите форсировать данные в канал.

  2. Вызов fflush после каждой операции вывода.

  3. Вызов setbuf после открытия канала отключить буферизацию.

  4. Вызов pclose когда вы закончите отправку в канал, и все буферизованные данные будут сброшены.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]