我正在制作一个程序来处理一个大文件并将一些内容输出到另一个我需要稍后使用的程序。我想知道我应该只打印输出并将其重定向到文件,或者我应该只写入程序中的文件。由于这将是一个非常大的文件,我想知道哪种方式更快,每一点都很重要。
答案 0 :(得分:1)
你的问题是,“我应该写入stdout,还是使用本机文件i / o”。
答案在某种程度上取决于您如何处理文件(可以逐行处理和输出),以及文件i / o代码的最佳编写方式。
很有可能编写直接输出到比写入stdout的代码慢的文件的代码。
答案 1 :(得分:1)
有什么区别? Stdout是一个流,文件也是如此。在大多数操作系统上,几乎没有区别。在Windows上,在处理文件流与输出流时,您必须使用不同的功能,但它们仍然几乎完全相同的API(只是文件的前缀为'f')。如果性能有所不同,我会感到非常惊讶。
您当然可以使用替代API来处理文件,但我没有看到令人信服的理由,因为这些文件仍然是操作系统级别的流。
答案 2 :(得分:1)
如果典型输出是文本格式,我更喜欢stdout。您只需检查终端上是否重定向到文件或将其传递给下一个命令。表现应该是一样的。对于二进制输出,文件输出更典型。