我有两个合作项目。一个程序只是将其输出写入文件,另一个程序然后从文件中读取数据并将数据吐出以供前端使用。
我一直在阅读有关命名管道和域套接字的内容,但我很难看出它们与仅使用临时文件相比有何优势。这似乎只是与我交流的一种正式方式。
答案1
- 如果处理完成后需要保存中间文件,那么进程间通信(例如通过管道或套接字)并不是特别有价值。同样,如果您需要在截然不同的时间运行这两个程序,您应该按照现在的方式进行操作。
当 Unix 创建时,磁盘非常小,一个相当良性的命令通常会消耗文件系统中的所有可用空间。例如,
一些产生a的命令很多_of_输出| grep一些非常模糊的字符串
产生的输出是很多小于第一个命令的输出的大小(即,如果您以运行程序的方式运行命令,则将创建的中间文件的大小)。
流经管道和套接字的数据(可能)根本不会写入磁盘。因此,这些IPC解决方案可能是
- 比基于磁盘的解决方案更高效(更快)。
- 如果中间数据比最终结果更敏感,则比基于磁盘的解决方案更安全。