我对编写修改PostScript文件的实用程序很感兴趣。它需要遍历文件,对页数和尺寸做出某些决定,然后将输出写入文件或stdout,并对PostScript代码进行某些修改。

在这种情况下,什么是在* NIX系统上处理文件处理的好方法?我对使用C进行管道和分支非常陌生,据我了解,如果直接读取文件,我可能会在输入文件中来回搜索,但是如果将输入直接管道传输到程序中,我不能简单地倒回输入的开头,例如,输入可能是网络流,对吗?

与其将整个PS文件存储到可能会变得非常大的内存中,不如将其存储在磁盘上,这是我第一次进行页面分析,然后从临时文件中重新读取,产生输出,并删除临时文件。如果那是一个可行的解决方案,那么在* NIX系统上将此类文件存储在哪里的好地方?我不确定这样的代码是否安全:该程序可能被同一服务器上的多个用户使用。听起来我必须确保将文件保存在给定用户帐户唯一的临时目录中的某个位置,并为磁盘上的临时文件指定一个相当唯一的名称。

感谢您在这个令人困惑的文件处理世界中获得任何提示和指示。

最佳答案

使用 mkstemp(3) 创建您的临时文件。它将为您处理并发问题。 mmap(2) 将让您放弃文件。

关于c - 使用C读取和传递大文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4173948/

10-10 18:47
查看更多