rename
, _wrename
Přejmenujte soubor nebo adresář.
Syntaxe
int rename(
const char *oldname,
const char *newname
);
int _wrename(
const wchar_t *oldname,
const wchar_t *newname
);
Parametry
oldname
Ukazatel na starý název
newname
Ukazatel na nový název
Vrácená hodnota
Každá z těchto funkcí vrátí hodnotu 0, pokud je úspěšná. U chyby vrátí funkce nenulovou hodnotu a nastaví errno
jednu z následujících hodnot:
errno hodnota |
Podmínka |
---|---|
EACCES |
Soubor nebo adresář zadaný newname již existuje nebo nelze vytvořit (neplatnou cestu) nebo oldname je adresář a newname určuje jinou cestu. |
ENOENT |
Soubor nebo cesta zadaná nenalezena oldname . |
EINVAL |
Název obsahuje neplatné znaky. |
Další možné návratové hodnoty naleznete v tématu , , , a_sys_nerr
. syserrlist
_errno
_doserrno
Poznámky
Funkce rename
přejmenuje soubor nebo adresář určený názvem zadaným uživatelem oldname
newname
. Starý název musí být cesta existujícího souboru nebo adresáře. Nový název nesmí být název existujícího souboru nebo adresáře. Soubor můžete rename
přesunout z jednoho adresáře nebo zařízení do jiného zadáním jiné cesty v argumentu newname
. K přesunutí adresáře ale nemůžete použít rename
. Adresáře je možné přejmenovat, ale nepřesouvat.
_wrename
je verze širokého znaku _rename
; argumenty, které mají _wrename
být řetězce širokého znaku. _wrename
a _rename
chovat se stejně jinak.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
TCHAR.H rutina |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_trename |
rename |
rename |
_wrename |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
rename |
<io.h> nebo <stdio.h> |
_wrename |
<stdio.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Všechny verze knihoven runtime jazyka C.
Příklad
// crt_renamer.c
/* This program attempts to rename a file named
* CRT_RENAMER.OBJ to CRT_RENAMER.JBO. For this operation
* to succeed, a file named CRT_RENAMER.OBJ must exist and
* a file named CRT_RENAMER.JBO must not exist.
*/
#include <stdio.h>
int main( void )
{
int result;
char old[] = "CRT_RENAMER.OBJ", new[] = "CRT_RENAMER.JBO";
/* Attempt to rename file: */
result = rename( old, new );
if( result != 0 )
printf( "Could not rename '%s'\n", old );
else
printf( "File '%s' renamed to '%s'\n", old, new );
}
Výstup
File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'