Linux 3.0: выполнение дочернего процесса с помощью piped stdin / stdout

Под Linux 3.0 / C ++:

Я хотел бы функцию, которая делает следующее:

string f(string s)
{
    string r = system("foo < s");
    return r;
}

Очевидно, что вышесказанное не работает, но вы поняли идею. У меня есть строка s, которую я хотел бы передать в качестве стандартного ввода дочернего процесса выполнения приложения "foo", а затем я хотел бы записать его стандартный вывод в строку r и затем вернуть его.

Какую комбинацию системных вызовов Linux или функций posix мне следует использовать?

Ответы на вопрос(3)

Ваш ответ на вопрос