Reactos
at listview 39 lines 1.0 kB view raw
1// 2// rename.cpp 3// 4// Copyright (c) Microsoft Corporation. All rights reserved. 5// 6// The rename() function, which renames a file. 7// 8#include <corecrt_internal.h> 9#include <io.h> 10#include <corecrt_internal_win32_buffer.h> 11 12 13 14// See _wrename() for details about the behavior of this function. (This 15// function simply converts the multibyte strings to wide strings and calls 16// _wrename().) 17extern "C" int __cdecl rename(char const* const old_name, char const* const new_name) 18{ 19 unsigned int const code_page = __acrt_get_utf8_acp_compatibility_codepage(); 20 21 __crt_internal_win32_buffer<wchar_t> wide_old_name; 22 23 errno_t cvt1 = __acrt_mbs_to_wcs_cp(old_name, wide_old_name, code_page); 24 if (cvt1 != 0) 25 { 26 errno = cvt1; 27 return -1; 28 } 29 30 __crt_internal_win32_buffer<wchar_t> wide_new_name; 31 errno_t cvt2 = __acrt_mbs_to_wcs_cp(new_name, wide_new_name, code_page); 32 if (cvt2 != 0) 33 { 34 errno = cvt2; 35 return -1; 36 } 37 38 return _wrename(wide_old_name.data(), wide_new_name.data()); 39}