Отвечая "parsifal", документацию для rename () можно найти, например, в http://pubs.opengroup.org/onlinepubs/007904875/functions/rename.html
Я добавляю свой собственный ответ здесь, потому что ответ от parsifal опускает важную деталь, а именно:
If new names an existing directory, it shall be required to be an empty
directory.
В списке ошибочных номеров у нас есть
[EEXIST] or [ENOTEMPTY]
The link named by new is a directory that is not an empty directory
Таким образом, если новые указатели на каталог, который не является пустым, rename () вернет -1, errno будет установлен в EEXIST или ENOTEMPTY, и никаких изменений не было сделано.