草庐IT

c++ - 管道与 tmfiles。什么更好,为什么?

我想编写程序来创建子进程并将其stdout和stderr流重定向到父进程。那么为了获得良好的性能,tmpfile()或pipe()的最佳选择是什么,为什么? 最佳答案 尽可能使用pipe,除非您预计大量输入会在流中堆积而不被读取。管道将数据保存在RAM中,临时文件需要文件系统操作。文件上的fdsync比管道上的要昂贵得多。管道也不太容易受到竞争条件引起的安全问题的影响。如果您的应用程序无法使用管道语义(其输出需要文件系统路径或类似问题),请尝试使用“命名管道”(也称为FIFO)。 关于c