int lchown( const char *path, uid_t owner, gid_t group ) { int rv; rtems_filesystem_eval_path_context_t ctx; int eval_flags = RTEMS_FS_FOLLOW_HARD_LINK; const rtems_filesystem_location_info_t *currentloc = rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); rv = rtems_filesystem_chown( currentloc, owner, group ); rtems_filesystem_eval_path_cleanup( &ctx ); return rv; }
/** * POSIX 1003.1b 5.6.5 - Change Owner and Group of a File */ int fchown( int fd, uid_t owner, gid_t group ) { int rv; rtems_libio_t *iop; rtems_libio_check_fd( fd ); iop = rtems_libio_iop( fd ); rtems_libio_check_is_open(iop); rtems_filesystem_instance_lock( &iop->pathinfo ); rv = rtems_filesystem_chown( &iop->pathinfo, owner, group ); rtems_filesystem_instance_unlock( &iop->pathinfo ); return rv; }
int chown( const char *path, uid_t owner, gid_t group ) { return rtems_filesystem_chown( path, owner, group, RTEMS_FS_FOLLOW_LINK ); }