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 мне следует использовать?