// // rename.cpp // // Copyright (c) Microsoft Corporation. All rights reserved. // // The rename() function, which renames a file. // #include #include #include // See _wrename() for details about the behavior of this function. (This // function simply converts the multibyte strings to wide strings and calls // _wrename().) extern "C" int __cdecl rename(char const* const old_name, char const* const new_name) { unsigned int const code_page = __acrt_get_utf8_acp_compatibility_codepage(); __crt_internal_win32_buffer wide_old_name; errno_t cvt1 = __acrt_mbs_to_wcs_cp(old_name, wide_old_name, code_page); if (cvt1 != 0) { errno = cvt1; return -1; } __crt_internal_win32_buffer wide_new_name; errno_t cvt2 = __acrt_mbs_to_wcs_cp(new_name, wide_new_name, code_page); if (cvt2 != 0) { errno = cvt2; return -1; } return _wrename(wide_old_name.data(), wide_new_name.data()); }