Задать вопрос

Как читать из stdout другого процесса в linux api?

Есть следующий код на WinApi:
std::string getResponseFromEngine(position)
{
    WriteFile(pipin_w, position.c_str(), position.length(),&writ, NULL);
    Sleep(500);
    PeekNamedPipe(pipout_r, buffer,sizeof(buffer), &read, &available, NULL);   
    do
    {   
        ZeroMemory(buffer, sizeof(buffer));
        if(!ReadFile(pipout_r, buffer, sizeof(buffer), &read, NULL) || !read) break; 
        buffer[read] = 0;    
        str+=(char*)buffer;
    }
    while(read >= sizeof(buffer));
    return str;
}

Как его можно заменить аналогами в linux api?
Ситуация следующая: есть запускаемое приложение и в его stdin необходимо отправлять информацию и читать из stdout.
  • Вопрос задан
  • 139 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Capture the output of a child process in C

Думаю, то же самое можно проделать и для stdin.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
В линуксе точно так же есть именованные и не именованные каналы, API, естественно, отличается, но суть не меняется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы