C ++ (Qt), системная команда, использующая буферы памяти вместо перенаправления

Я хотел бы знать, как использовать буферы памяти в качестве потоков io для системной команды, использующей Qt.

Обычно вы делаете что-то вроде псевдокода, например:

Exec Command(" command < inputfile > outputfile");

но я хотел бы сделать всю операцию в памяти.

Я бы предпочел что-то псевдокоде, как:

ByteArray input;
ByteArray output;
Exec Command("command name", &input, &output);

Конкретная ссылка, пример или ссылка на ответ будет потрясающим. Мне просто нужно стартовое место, я думаю.

Заранее спасибо.

1

Решение

Один из способов сделать это — создать отображенные в память входные и выходные файлы и указать полный путь к входным и выходным файлам в обычной команде оболочки — таким образом, он будет эффективно находиться в памяти.

Вы можете создавать / получать к ним доступ программно, взгляните на

Потоковая передача из памяти отображаемых файлов в Qt

1

Другие решения

Я обнаружил, что вы можете использовать пространство «разделяемой памяти» и использовать его как ссылку на файл. Если у вас есть ссылка на файл, вы можете использовать перенаправление с ним. В любом случае, это одно из решений.

0

По вопросам рекламы [email protected]