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

Под Linux 3.0 / C ++:

Мне нужна функция, которая выполняет следующие действия:

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

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

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

14
задан Andrew Tomazos 23 February 2012 в 01:45
поделиться