如何解决如何使用fseek和ftell设置最大文件大小?
我是C编程以及该文件知识的新手。 1)我想为生成的文件设置一个最大大小(当我的收音机进行某些操作时,其中包含一些日志)。原因是日志记录的增加将增加文件的大小,并可能导致某些内存问题,并最终使我的系统出现故障。 (我的收音机可能会重置)
下面的代码将打开一个文件,并不断添加日志以供输入。
static int lnx_debug_file_open(const char *file) {
#ifdef CONFIG_DEBUG_FILE
int dfile_fd = -1;
if(!file)
return 0;
dfile_fd = open(file,O_CREAT | O_APPEND | O_WRONLY,S_IRUSR | S_IWUSR | S_IRGRP);
if(dfile_fd < 0) {
lnx_printf(LOG_TAG,"Logging_Library","Debug logging file %s opening failed",file);
return -1;
}
if (fcntl(dfile_fd,F_SETFD,FD_CLOEXEC) < 0) {
lnx_printf(LOG_TAG,"Debug logging file %s failed to set FD_CLOEXEC",file);
}
out_file = fdopen(dfile_fd,"a");
if (out_file == NULL) {
lnx_printf(LOG_TAG,"Debug logging file %s failed to open,using stdout",file);
close(dfile_fd);
return -1;
}
#endif /* CONFIG_DEBUG_FILE */
return 0;
}
2)如果以后可以设置最大大小,如果达到文件限制,如何让新日志覆盖旧日志?
例如:文件大小几乎达到限制,例如5MB,新日志将保持追加并进入,同时旧日志将被覆盖以为新日志留出空间。 / p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。