예제 #1
0
//-------------------------------------------------------------------
void
LogListHelper::_scan_logs(FILE* f, const char* dir, time_t& date)
{
	DIR *dp = opendir(dir);
	if (dp) {
		struct dirent entry, *result = nullptr;
		while (readdir_r(dp, &entry, &result) == 0) {
			// no more entries?
			if (result == nullptr) {
				break;
			}
			if (entry.d_type == PX4LOG_REGULAR_FILE) {
				time_t  ldate = date;
				uint32_t size = 0;
				char log_file_path[128];
				snprintf(log_file_path, sizeof(log_file_path), "%s/%s", dir, entry.d_name);
				if(_get_log_time_size(log_file_path, entry.d_name, ldate, size)) {
					//-- Write entry out to list file
					fprintf(f, "%u %u %s\n", (unsigned)ldate, (unsigned)size, log_file_path);
					log_count++;
				}
			}
		}
	}
}
//-------------------------------------------------------------------
void
LogListHelper::_scan_logs(FILE *f, const char *dir, time_t &date)
{
	DIR *dp = opendir(dir);

	if (dp) {
		struct dirent *result = nullptr;

		while ((result = readdir(dp))) {
			if (result->d_type == PX4LOG_REGULAR_FILE) {
				time_t  ldate = date;
				uint32_t size = 0;
				char log_file_path[128];
				snprintf(log_file_path, sizeof(log_file_path), "%s/%s", dir, result->d_name);

				if (_get_log_time_size(log_file_path, result->d_name, ldate, size)) {
					//-- Write result->out to list file
					fprintf(f, "%u %u %s\n", (unsigned)ldate, (unsigned)size, log_file_path);
					log_count++;
				}
			}
		}
	}
}