Если вы работаете в UNIX, тогда стандартная функция C ++ std::system
будет вести себя как , определенная в POSIX , то есть выполнять команду как sh
. Перед этим вы можете подключить свои собственные stdin
и stdout
к локальному каналу, сначала используя dup
для создания псевдонимов STDIN_FILENO
и STDOUT_FILENO
, затем close
вышеупомянутых файловых дескрипторов, затем pipe
открыть канал на недавно освобожденные дескрипторы.
Тогда вы можете взаимодействовать с std::cin
и std::cout
. Что ж, было бы неплохо очистить интерфейс C ++ перед началом.
Хотя это не совсем хорошая идея. Должно быть проще использовать интерфейс POSIX C для непосредственного получения соответствующих данных.