我正在查看写的Unix手册页。 http://linux.die.net/man/3/write
在我的应用程序中,我将记录错误,警告和处理相关的次要信息,这些信息写在日志文件中。我想要的是如果文件大小超过1GB,那么该进程应该不能再写入该日志文件。我看到man页面讲述了这可以实现并且写入失败。
If a write() requests that more bytes be written than there is room for (for example, the process' file size limit or the physical end of a medium), only as many bytes as there is room for shall be written.
这是否需要与ulimit相关的更改?我不想在服务器级别应用,而只是应用程序的进程级别,因此不必完全填充磁盘大小。有什么建议我该怎么办?我相信解决方案同样适用于C ++。
答案 0 :(得分:2)
您可以使用gnu资源使用功能来设置和获取每个进程限制。 Gnu resource usage functions 另一方面,您可以根据大小进行日志轮换。如果日志大小超过某个限制,则创建旧日志的tar文件并开始编写新日志。