xref: /reactos/sdk/lib/ucrt/filesystem/unlink.cpp (revision fe93a3f9)
1 //
2 // unlink.cpp
3 //
4 //      Copyright (c) Microsoft Corporation. All rights reserved.
5 //
6 // The remove() and unlink() functions, which remove (delete) files.
7 //
8 #include <corecrt_internal.h>
9 #include <stdio.h>
10 #include <corecrt_internal_win32_buffer.h>
11 
12 // Deletes the specified file.  Returns zero if successful; returns -1 and sets
13 // errno and _doserrno on failure.
14 extern "C" int __cdecl remove(char const* const path)
15 {
16     if (path == nullptr)
17         return _wremove(nullptr);
18 
19     __crt_internal_win32_buffer<wchar_t> wide_path;
20 
21     errno_t const cvt = __acrt_mbs_to_wcs_cp(path, wide_path, __acrt_get_utf8_acp_compatibility_codepage());
22 
23     if (cvt != 0) {
24         return -1;
25     }
26 
27     return _wremove(wide_path.data());
28 }
29 
30 
31 
32 extern "C" int __cdecl _unlink(char const* const path)
33 {
34     return remove(path);
35 }
36