C library function - rename()


The C library function int rename(const char *old_filename, const char *new_filename) causes the filename referred to by old_filename to be changed to new_filename.


Following is the declaration for rename() function.

int rename(const char *old_filename, const char *new_filename)


  • old_filename − This is the C string containing the name of the file to be renamed and/or moved.

  • new_filename − This is the C string containing the new name for the file.

Return Value

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.


The following example shows the usage of rename() function.

#include <stdio.h>

int main () {
   int ret;
   char oldname[] = "file.txt";
   char newname[] = "newfile.txt";
   ret = rename(oldname, newname);
   if(ret == 0) {
      printf("File renamed successfully");
   } else {
      printf("Error: unable to rename the file");

Let us assume we have a text file file.txt, having some content. So, we are going to rename this file, using the above program. Let us compile and run the above program to produce the following message and the file will be renamed to newfile.txt file.

File renamed successfully