我得到一个包含几行的文本文件,我正在该文件中查找字符串。我需要将以下命令行参数传递给程序:
- 文件路径
- 我正在寻找的字符串
- 允许程序“fork”以完成此任务的最大进程数。
应该如何构建这样的程序?
最佳答案
几个想法。
- 您必须从每个进程中单独打开文件,否则它们将共享一个文件描述符,因此在文件中有一个共享位置(或不共享,请参阅注释,因为这可能是系统特定的...) .
- 由于磁盘访问和/或缓存未命中模式,您可能看不到您希望的速度提升。
您可以通过内存映射文件来解决这两个问题(当然您仍然冒着增加缓存未命中率的风险)...
您有多需要这个?它确实存在过早优化的风险。我建议不要在没有迫切需要的情况下触及问题。真的。
关于c++ - 如何在 fork 的帮助下并行搜索文件中的字符串? (GNU Linux/g++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/194499/