mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 20:03:12 +00:00
[UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3
Imported from https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3 License: MIT
This commit is contained in:
parent
f1b60c66f0
commit
04e0dc4a7a
568 changed files with 115483 additions and 0 deletions
45
sdk/lib/ucrt/filesystem/wchmod.cpp
Normal file
45
sdk/lib/ucrt/filesystem/wchmod.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
//
|
||||
// wchmod.cpp
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// The _wchmod() function, which changes file attributes.
|
||||
//
|
||||
#include <corecrt_internal.h>
|
||||
#include <io.h>
|
||||
#include <sys\stat.h>
|
||||
|
||||
|
||||
|
||||
// Changes the mode of a file. The only supported mode bit is _S_IWRITE, which
|
||||
// controls the user write (read-only) attribute of the file. Returns zero if
|
||||
// successful; returns -1 and sets errno and _doserrno on failure.
|
||||
extern "C" int __cdecl _wchmod(wchar_t const* const path, int const mode)
|
||||
{
|
||||
_VALIDATE_CLEAR_OSSERR_RETURN(path != nullptr, EINVAL, -1);
|
||||
|
||||
WIN32_FILE_ATTRIBUTE_DATA attributes;
|
||||
if (!GetFileAttributesExW(path, GetFileExInfoStandard, &attributes))
|
||||
{
|
||||
__acrt_errno_map_os_error(GetLastError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Set or clear the read-only flag:
|
||||
if (mode & _S_IWRITE)
|
||||
{
|
||||
attributes.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY;
|
||||
}
|
||||
else
|
||||
{
|
||||
attributes.dwFileAttributes |= FILE_ATTRIBUTE_READONLY;
|
||||
}
|
||||
|
||||
if (!SetFileAttributesW(path, attributes.dwFileAttributes))
|
||||
{
|
||||
__acrt_errno_map_os_error(GetLastError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue