Movatterモバイル変換


[0]ホーム

URL:


Skip Navigation Links
Exit Print View
Link to oracle.comman pages section 2: System Calls    Oracle Solaris 11 Information Library
Oracle Technology Network
Library
PDF
Print View
Feedback
search filter icon
search icon
 Search Scope:

Document Information

Preface

Introduction

System Calls

access(2)

acct(2)

acl(2)

adjtime(2)

alarm(2)

brk(2)

chdir(2)

chmod(2)

chown(2)

chroot(2)

close(2)

creat(2)

dup(2)

exec(2)

execl(2)

execle(2)

execlp(2)

execv(2)

execve(2)

execvex(2)

execvp(2)

_Exit(2)

_exit(2)

exit(2)

faccessat(2)

facl(2)

fchdir(2)

fchmod(2)

fchmodat(2)

fchown(2)

fchownat(2)

fchroot(2)

fcntl(2)

fexecve(2)

fgetlabel(2)

fork1(2)

fork(2)

forkall(2)

forkallx(2)

forkx(2)

fpathconf(2)

fstat(2)

fstatat(2)

fstatvfs(2)

futimens(2)

futimesat(2)

getacct(2)

getcontext(2)

getdents(2)

getegid(2)

geteuid(2)

getgid(2)

getgroups(2)

getisax(2)

getitimer(2)

getlabel(2)

getmsg(2)

getpflags(2)

getpgid(2)

getpgrp(2)

getpid(2)

getpmsg(2)

getppid(2)

getppriv(2)

getprojid(2)

getrctl(2)

getrlimit(2)

getsid(2)

gettaskid(2)

getuid(2)

getustack(2)

ioctl(2)

issetugid(2)

kill(2)

lchown(2)

link(2)

linkat(2)

llseek(2)

lseek(2)

lstat(2)

_lwp_cond_broadcast(2)

_lwp_cond_reltimedwait(2)

_lwp_cond_signal(2)

_lwp_cond_timedwait(2)

_lwp_cond_wait(2)

_lwp_continue(2)

_lwp_info(2)

_lwp_kill(2)

_lwp_mutex_lock(2)

_lwp_mutex_trylock(2)

_lwp_mutex_unlock(2)

_lwp_self(2)

_lwp_sema_init(2)

_lwp_sema_post(2)

_lwp_sema_trywait(2)

_lwp_sema_wait(2)

_lwp_suspend(2)

memcntl(2)

meminfo(2)

mincore(2)

mkdir(2)

mkdirat(2)

mknod(2)

mknodat(2)

mmap(2)

mmapobj(2)

mount(2)

mprotect(2)

msgctl(2)

msgget(2)

msgids(2)

msgrcv(2)

msgsnap(2)

msgsnd(2)

munmap(2)

nice(2)

ntp_adjtime(2)

ntp_gettime(2)

open(2)

openat(2)

pathconf(2)

pause(2)

pcsample(2)

pipe(2)

poll(2)

p_online(2)

ppoll(2)

pread(2)

priocntl(2)

priocntlset(2)

processor_bind(2)

processor_info(2)

profil(2)

pset_assign(2)

pset_bind(2)

pset_create(2)

pset_destroy(2)

pset_getattr(2)

pset_info(2)

pset_list(2)

pset_setattr(2)

putacct(2)

putmsg(2)

putpmsg(2)

pwrite(2)

read(2)

readlink(2)

readlinkat(2)

readv(2)

rename(2)

renameat(2)

resolvepath(2)

rmdir(2)

sbrk(2)

semctl(2)

semget(2)

semids(2)

semop(2)

semtimedop(2)

setcontext(2)

setegid(2)

seteuid(2)

setgid(2)

setgroups(2)

setitimer(2)

setpflags(2)

setpgid(2)

setpgrp(2)

setppriv(2)

setrctl(2)

setregid(2)

setreuid(2)

setrlimit(2)

setsid(2)

settaskid(2)

setuid(2)

setustack(2)

shmadv(2)

shmat(2)

shmctl(2)

shmdt(2)

shmget(2)

shmids(2)

shmop(2)

sigaction(2)

sigaltstack(2)

sigpending(2)

sigprocmask(2)

sigsend(2)

sigsendset(2)

sigsuspend(2)

sigwait(2)

__sparc_utrap_install(2)

stat(2)

statvfs(2)

stime(2)

swapctl(2)

symlink(2)

symlinkat(2)

sync(2)

sysfs(2)

sysinfo(2)

time(2)

times(2)

uadmin(2)

ulimit(2)

umask(2)

umount(2)

umount2(2)

uname(2)

unlink(2)

unlinkat(2)

ustat(2)

utime(2)

utimensat(2)

utimes(2)

uucopy(2)

vfork(2)

vforkx(2)

vhangup(2)

waitid(2)

wracct(2)

write(2)

writev(2)

yield(2)

rename

, renameat

- change the name of a file

Synopsis

#include <stdio.h>intrename(const char *old,const char *new);
#include <unistd.h>intrenameat(intfromfd,const char *old,inttofd,const char *new);

XPG3

#include <unistd.h>intrename(const char *old,const char *new);

Description

Therename() function changes the name of a file. Theoldargument points to the pathname of the file to be renamed. Thenew argument points to the new path name of the file.

Therenameat() function renames an entry in a directory, possibly moving theentry into a different directory. Seefsattr(5). If theold argumentis an absolute path, thefromfd is ignored. Otherwise it isresolved relative to thefromfd argument rather than the current working directory. Similarly, if thenew argument is not absolute, it is resolved relativeto thetofd argument. If eitherfromfd ortofd have thevalueAT_FDCWD, defined in <fcntl.h>, and their respective paths are relative, thepath is resolved relative to the current working directory.

Current implementation restrictions will cause therenameat() function to return an errorif an attempt is made to rename an extended attribute file toa regular (non-attribute) file, or to rename a regular file to anextended attribute file.

Ifold andnew both refer to the same existing file, therename() andrenameat() functions return successfully and performs no other action.

Ifold points to the pathname of a file that is nota directory,new must not point to the pathname of a directory.If the link named bynew exists, it will be removed andold will be renamed tonew. In this case, a link namednew must remain visible to other processes throughout the renaming operation andwill refer to either the file referred to bynew or thefile referred to asold before the operation began.

Ifold points to the pathname of a directory,new mustnot point to the pathname of a file that is not adirectory. If the directory named bynew exists, it will be removedandold will be renamed tonew. In this case, a link namednew will exist throughout the renaming operation and will refer toeither the file referred to bynew or the file referredto asold before the operation began. Thus, ifnew names anexisting directory, it must be an empty directory.

Thenew pathname must not contain a path prefix that namesold.Write access permission is required for both the directory containingold andthe directory containingnew. Ifold points to the pathname of adirectory, write access permission is required for the directory named byold, and, if it exists, the directory named bynew.

If the directory containingold has the sticky bit set, atleast one of the following conditions listed below must be true:

Ifnew exists, and the directory containingnew is writable and hasthe sticky bit set, at least one of the following conditionsmust be true:

If the link named bynew exists, the file's link count becomeszero when it is removed, and no process has the file open,then the space occupied by the file will be freed andthe file will no longer be accessible. If one or more processeshave the file open when the last link is removed, the link willbe removed beforerename() orrenameat() returns, but the removal of thefile contents will be postponed until all references to the file havebeen closed.

Upon successful completion, therename() andrenameat() functions will mark for updatethest_ctime andst_mtime fields of the parent directory of each file.

Return Values

Upon successful completion,0 is returned. Otherwise,-1 is returned anderrnois set to indicate an error.

Errors

Therename() function will fail if:

EACCES

A component of either path prefix denies search permission; one of the directories containingold andnew denies write permissions; or write permission is denied by a directory pointed to byold ornew.

EBUSY

Thenew orold argument is a directory and the mount point for a mounted file system.

EDQUOT

The directory where the new name entry is being placed cannot be extended because the user's quota of disk blocks on that file system has been exhausted.

EEXIST

The link named bynew is a directory containing entries other than `.' (the directory itself) and `..' (the parent directory).

EFAULT

Eitherold ornew references an invalid address.

EILSEQ

The path argument includes non-UTF8 characters and the file system accepts only file names where all characters are part of the UTF-8 character codeset.

EINVAL

Thenew argument directory pathname contains a path prefix that names theold directory, or an attempt was made to rename a regular file to an extended attribute or from an extended attribute to a regular file.

EIO

An I/O error occurred while making or updating a directory entry.

EISDIR

Thenew argument points to a directory butold points to a file that is not a directory.

ELOOP

Too many symbolic links were encountered in translating the pathname.

ENAMETOOLONG

The length ofold ornew exceedsPATH_MAX, or a pathname component is longer thanNAME_MAX while_POSIX_NO_TRUNC is in effect.

EMLINK

The file named byold is a directory, and the link count of the parent directory ofnew would exceedLINK_MAX.

ENOENT

The link named byold does not name an existing file, a component of the path prefix ofnew does not exist, or eitherold ornew points to an empty string.

ENOSPC

The directory that would containnew cannot be extended.

ENOTDIR

A component of either path prefix is not a directory, orold names a directory andnew names a file that is not a directory, ortofd anddirfd inrenameat() do not reference a directory.

EROFS

The requested operation requires writing in a directory on a read-only file system.

EXDEV

The links named byold andnew are on different file systems.

Therenameat() functions will fail if:

ENOTSUP

An attempt was made to rename a regular file as an attribute file or to rename an attribute file as a regular file.

Attributes

Seeattributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
Async-Signal-Safe
Standard
Forrename(),seestandards(5).

See Also

chmod(2),link(2),unlink(2),attributes(5),fsattr(5),standards(5)

Notes

The system can deadlock if there is a loop in the filesystem graph. Such a loop can occur if there is an entryin directorya,a/name1, that is a hard link to directoryb,and an entry in directoryb,b/name2, that is a hard link todirectorya. When such a loop exists and two separate processes attemptto renamea/name1 tob/name2 andb/name2 toa/name1, the system maydeadlock attempting to lock both directories for modification. Use symbolic linksinstead of hard links for directories.

Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices
PreviousNext

[8]ページ先頭

©2009-2025 Movatter.jp