# fchown

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           fchown — change owner and group of a file
    


## SYNOPSIS



           #include <unistd.h>
    
           int fchown(int _fildes_ , uid_t _owner_ , gid_t _group_);
    


## DESCRIPTION



           The _fchown_() function shall be equivalent to _chown_() except that
           the file whose owner and group are changed is specified by the
           file descriptor _fildes_.
    


## RETURN VALUE



           Upon successful completion, _fchown_() shall return 0. Otherwise, it
           shall return -1 and set _errno_ to indicate the error.
    


## ERRORS



           The _fchown_() function shall fail if:
    
           **EBADF** The _fildes_ argument is not an open file descriptor.
    
           **EPERM** The effective user ID does not match the owner of the file
                  or the process does not have appropriate privileges and
                  _POSIX_CHOWN_RESTRICTED indicates that such privilege is
                  required.
    
           **EROFS** The file referred to by _fildes_ resides on a read-only file
                  system.
    
           The _fchown_() function may fail if:
    
           **EINVAL** The owner or group ID is not a value supported by the
                  implementation.  The _fildes_ argument refers to a pipe or
                  socket or an _fattach_()-ed STREAM and the implementation
                  disallows execution of _fchown_() on a pipe.
    
           **EIO** A physical I/O error has occurred.
    
           **EINTR** The _fchown_() function was interrupted by a signal which was
                  caught.
    
           _The following sections are informative._
    


## EXAMPLES



       **Changing the Current Owner of a File**
           The following example shows how to change the owner of a file
           named **/home/cnd/mod1** to ``jones'' and the group to ``cnd''.
    
           The numeric value for the user ID is obtained by extracting the
           user ID from the user database entry associated with ``jones''.
           Similarly, the numeric value for the group ID is obtained by
           extracting the group ID from the group database entry associated
           with ``cnd''. This example assumes the calling program has
           appropriate privileges.
    
               #include <sys/types.h>
               #include <unistd.h>
               #include <fcntl.h>
               #include <pwd.h>
               #include <grp.h>
    
               struct passwd *pwd;
               struct group  *grp;
               int            fildes;
               ...
               fildes = open("/home/cnd/mod1", O_RDWR);
               pwd = getpwnam("jones");
               grp = getgrnam("cnd");
               fchown(fildes, pwd->pw_uid, grp->gr_gid);
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *