程序输出可以通过程序本身重定向到管道吗?



这是关于比赛的程序。

我正在提交一个程序&就总执行速度而言,我发现我的指标比得分最高的游戏慢得多。所有其他(页面错误、内存……)都是类似的。我发现,当我运行我的程序而不使用printf(或write)时,我的总执行速度(在我自己的pc上测量)似乎是相似的。

竞赛通过将输出重定向(我想是使用管道)到文件&将其MD5与他们的MD5匹配....

我的问题是,在C中是否有任何东西,不写入输出流,但管道仍然得到它的输入。或许我甚至把问题提错了。但不管怎样,我都有麻烦了。

我一直在绞尽脑汁优化算法。顺便说一句,他们接受makefile,很多人都尝试过优化。对我来说,这两个优化标志都不起作用。我不知道还能做些什么。

如果您需要编写一个将其输出写入文件的程序,您只需:

  • int fd = fopen("/file/path", O_WRONLY);打开文件(你可能需要检查参数,自从我做C编程以来已经很长时间了),然后write(fd, ...);fprintf(fd, ...);
  • 使用fopen打开文件,关闭标准输出,使用dup2()将文件描述符复制到文件描述符号1(即标准输出)。

您可以在管道fd上尝试fprintf

相关内容

  • 没有找到相关文章

最新更新