好吧,这是关于比赛的节目。
我正在提交一个程序,发现我的指标在总执行速度方面要比顶级得分手慢得多。所有其他(页面错误,内存...)相似。我发现当我在没有printf(或写入)的情况下运行程序时,我的总执行速度(以我自己的pc来衡量)似乎是相似的。
竞赛通过将输出(我想是用管道)重定向到文件中并将其MD5与他们的文件匹配来评估输出。
我的问题是,C语言中是否有任何内容无法写入输出流,但管道仍然可以获取其输入。也许我什至认为这个问题错了。但是无论哪种方式,我都可以解决。
我一直在努力优化算法。顺便说一句,他们接受许多人尝试优化的makefile。对我来说,这两个优化标志都不起作用。我也不知道该怎么办...
最佳答案
如果您需要制作一个将其输出写入文件的程序,则只需:
用int fd = fopen("/file/path", O_WRONLY);
打开文件(您可能需要检查参数,因为我已经做了C编程,已经很长时间了),然后使用write(fd, ...);
或fprintf(fd, ...);
使用fopen打开文件,关闭标准输出,然后使用dup2()
将文件描述符复制到1号文件描述符(即标准输出)。