//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
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);
- SysLogException(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));
int pos = -1;
result r = filePath.LastIndexOf(L'/', filePath.GetLength() - 1, pos);
- SysTryReturn(NID_IO, !IsFailed(r), fileName, E_INVALID_ARG, "[E_INVALID_ARG] The file path is invalid.");
+ SysTryReturn(NID_IO, r == E_SUCCESS || r == E_OBJ_NOT_FOUND, fileName, E_INVALID_ARG,
+ "[E_INVALID_ARG] The file path is invalid.");
r = filePath.SubString(pos + 1, fileName);
SysTryReturn(NID_IO, !IsFailed(r), fileName, E_INVALID_ARG, "[E_INVALID_ARG] The file path is invalid.");
int pos = -1;
result r = filePath.LastIndexOf(L'/', filePath.GetLength() - 1, pos);
- SysTryReturn(NID_IO, !IsFailed(r), extName, E_INVALID_ARG, "[E_INVALID_ARG] The file path is invalid.");
+ SysTryReturn(NID_IO, r == E_SUCCESS || r == E_OBJ_NOT_FOUND, extName, E_INVALID_ARG,
+ "[E_INVALID_ARG] The file path is invalid.");
String fileName;
r = filePath.SubString(pos + 1, fileName);