SECURITY_ATTRIBUTES sec_attr;
sec_attr.nLength = sizeof(SECURITY_ATTRIBUTES);
- sec_attr.lpSecurityDescriptor = 0;
+ sec_attr.lpSecurityDescriptor = nullptr;
sec_attr.bInheritHandle = !!(mode&M_INHERIT);
- *handle = CreateFile(fn.c_str(), flags, share_flags, 0, create_flags, FILE_ATTRIBUTE_NORMAL, 0);
+ *handle = CreateFile(fn.c_str(), flags, share_flags, &sec_attr, create_flags, FILE_ATTRIBUTE_NORMAL, nullptr);
if(!handle)
{
int err = GetLastError();
- if(err==ERROR_FILE_NOT_FOUND)
+ if(err==ERROR_FILE_NOT_FOUND || err==ERROR_PATH_NOT_FOUND)
throw file_not_found(fn);
else if(err==ERROR_FILE_EXISTS)
throw file_already_exists(fn);