chown - change owner and group of a file

     int chown(const char *path, int owner, int group)

     The file that is named by  path  has  its  owner  and  group  changed  as
     specified.  Only the super-user may change the owner of the file, because
     if users were able to give  files  away,  they  could  defeat  file-space
     accounting  procedures.   The owner of the file may change the group to a
     group of which he is a member.

     On some systems, chown clears the set-user-id and  set-group-id  bits  on
     the  file  to prevent accidental creation of set-user-id and set-group-id

     Zero is returned if the operation was successful; -1 is  returned  if  an
     error  occurs, with a more specific error code being placed in the global
     variable errno.

     Chown will fail and the file will be unchanged if:

     [ENOTDIR]      A component of the path prefix is not a directory.

     [ENAMETOOLONG] The path name exceeds PATH_MAX characters.

     [ENOENT]       The named file does not exist.

     [EACCES]       Search permission is denied for a component  of  the  path

     [ELOOP]        Too many symbolic links were  encountered  in  translating
                    the pathname.  (Minix-vmd)

     [EPERM]        The effective user ID is not the super-user.

     [EROFS]        The named file resides on a read-only file system.

     [EFAULT]       Path points outside the process's allocated address space.

     [EIO]          An I/O error occurred while reading from or writing to the
                    file system.

     chown(8), chgrp(1), chmod(2).