示例#1
0
文件: omrfile.c 项目: ChengJin01/omr
int64_t
omrfile_flength(struct OMRPortLibrary *portLibrary, intptr_t inFD)
{
	struct stat st;
	int fd = (int)inFD;

	Trc_PRT_file_flength_Entry(inFD);

	if (0 != fstat(fd - FD_BIAS, &st)) {
		int32_t errorCode = portLibrary->error_set_last_error(portLibrary, errno, findError(errno));
		Trc_PRT_file_flength_ExitFail(errorCode);
		return errorCode;
	}

	Trc_PRT_file_flength_Exit((int64_t) st.st_size);
	return (int64_t) st.st_size;
}
示例#2
0
文件: omrfile.c 项目: dinogun/omr
int64_t
omrfile_flength(struct OMRPortLibrary *portLibrary, intptr_t fd)
{
	int32_t result = 0;
	LARGE_INTEGER length;

	Trc_PRT_file_flength_Entry(fd);

	result = GetFileSizeEx((HANDLE)fd, &length);
	if (0 == result) {
		int32_t error = GetLastError();
		result = portLibrary->error_set_last_error(portLibrary, error, findError(error));
		Trc_PRT_file_flength_ExitFail(result);
	}

	Trc_PRT_file_flength_Exit(length.QuadPart);
	return length.QuadPart;
}