C ++(Qt),使用内存缓冲区而不是重定向的系统命令

时间:2013-11-29 17:58:58

标签: c++ qt memorystream buffering

我想知道如何使用内存缓冲区作为使用Qt的系统命令的io流。

通常你会做一些伪代码:

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

但我想在内存中完成整个操作。

我更喜欢Something psudocode:

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

答案的具体参考,示例或链接将是非常棒的。我想我只需要一个起点。

提前致谢。

2 个答案:

答案 0 :(得分:1)

这样做的一种方法是创建内存映射的输入和输出文件,并在常规shell命令中指定输入和输出文件的完整路径 - 这样它将有效地存储在内存中。

您可以通过编程方式创建/访问它们,看看

Streaming from memory mapped files in Qt

答案 1 :(得分:0)

我发现你可以使用“共享内存”空间并像文件引用一样使用它。获得文件引用后,可以使用重定向。无论如何,这是一个解决方案。