static const int _BASE_YEAR = 1900;
static const int _MAX_COPY_BYTES = 4096;
-static const int _MAX_OPENMODE_LENGTH = 3;
//Holds app path prefixes
static const char* filePathAppPrefix[] =
off64_t fileSize = 0;
unsigned long attr = 0;
result r = E_SUCCESS;
- struct tm* pTm = null;
String fileName = L"";
bool hidden = false;
GetErrorMessage(GetLastResult()));
struct stat64 statbuf;
- if (int ret = stat64(pFilePath.get(), &statbuf) == -1)
+ if (stat64(pFilePath.get(), &statbuf) == -1)
{
r = __ConvertNativeErrorToResult(errno);
- SysSecureLogException(NID_IO, r, "[%s] Failed to get file (%s) status.", GetErrorMessage(r), pFilePath.get());
+ SysSecureLogException(NID_IO, r, "[%s] Failed to get file (%s) status. errno: %d (%s)",
+ GetErrorMessage(r), pFilePath.get(), errno, strerror(errno));
return r;
}
// attributes
attr = statbuf.st_mode;
- pTm = localtime(&statbuf.st_mtime);
- SysTryReturnResult(NID_IO, pTm != null, E_SYSTEM, "Failed to call localtime() (%s).", strerror(errno));
+ struct tm resultTm;
+ struct tm* pTm = localtime_r(&statbuf.st_mtime, &resultTm);
+ SysTryReturnResult(NID_IO, pTm != null, E_SYSTEM, "Failed to get local time (%s).", strerror(errno));
+
r = dateTime.SetValue(_BASE_YEAR + pTm->tm_year, 1 + pTm->tm_mon, pTm->tm_mday, pTm->tm_hour, pTm->tm_min, pTm->tm_sec);
SysTryReturn(NID_IO, (!IsFailed(r)), r, r, "[%s] Failed to set DateTime.", GetErrorMessage(r));
- pTm = localtime(&statbuf.st_mtime);
- SysTryReturnResult(NID_IO, pTm != null, E_SYSTEM, "Failed to call localtime() (%s).", strerror(errno));
r = modifiedTime.SetValue(_BASE_YEAR + pTm->tm_year, 1 + pTm->tm_mon, pTm->tm_mday, pTm->tm_hour, pTm->tm_min, pTm->tm_sec);
SysTryReturn(NID_IO, (!IsFailed(r)), r, r, "[%s] Failed to set DateTime.", GetErrorMessage(r));