rename

From cppreference.com
< clrm; | io
File input/output
Functions
File access
Direct input/output
Unformatted input/output
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
Formatted input
Formatted output
File positioning
Error handling
Operations on files
rename
Defined in header <stdio.h>
int rename( const char *old_filename, const char *new_filename );

Changes the filename of a file. The file is identified by character string pointed to by old_filename. The new filename is identified by character string pointed to by new_filename.

If new_filename exists, the behavior is implementation-defined.

Parameters

old_filename - pointer to a null-terminated string containing the path identifying the file to rename
new_filename - pointer to a null-terminated string containing the new path of the file

Return value

0 upon success or non-zero value on error.

Notes

POSIX specifies many additional details on the semantics of this function.

Example

#include <stdio.h>
int main(void)
{
    FILE* fp = fopen("from.txt", "w"); // create file "from.txt"
    if(!fp) { perror("from.txt"); return 1; }
    fputc('a', fp); // write to "from.txt"
    fclose(fp);

    int rc = rename("from.txt", "to.txt");
    if(rc) { perror("rename"); return 1; }

    fp = fopen("to.txt", "r");
    if(!fp) { perror("to.txt"); return 1; }
    printf("%c\n", fgetc(fp)); // read from "to.txt"
    fclose(fp);
}

Output:

a

References

  • C11 standard (ISO/IEC 9899:2011):
  • 7.21.4.2 The rename function (p: 302-303)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.19.4.2 The rename function (p: 268-269)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.9.4.2 The rename function

See also

erases a file
(function)