1 /* Rename a file relative to open directories.
2 Copyright (C) 2009 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17 /* written by Eric Blake */
23 #include "openat-priv.h"
25 /* Rename FILE1, in the directory open on descriptor FD1, to FILE2, in
26 the directory open on descriptor FD2. If possible, do it without
27 changing the working directory. Otherwise, resort to using
28 save_cwd/fchdir, then rename/restore_cwd. If either the save_cwd or
29 the restore_cwd fails, then give a diagnostic and exit nonzero. */
32 renameat (int fd1, char const *file1, int fd2, char const *file2)
34 return at_func2 (fd1, file1, fd2, file2, rename);