fdetach(3C)




NAME

     fdetach - detach a name from a STREAMS-based file descriptor


SYNOPSIS

     #include <stropts.h>

     int fdetach(const char *path);


DESCRIPTION

     The fdetach() function detaches a  STREAMS-based  file  from
     the  file  to  which  it  was attached by a previous call to
     fattach(3C). The path argument points to the pathname of the
     attached  STREAMS  file.  The  process must have appropriate
     privileges or be the owner of the file. A successful call to
     fdetach()  causes  all  pathnames  that  named  the attached
     STREAMS file to again name the file  to  which  the  STREAMS
     file  was  attached.  All subsequent operations on path will
     operate on the underlying file and not on the STREAMS file.

     All open file descriptions  established  while  the  STREAMS
     file was attached to the file referenced by path, will still
     refer to the STREAMS file  after  the  fdetach()  has  taken
     effect.

     If there are no open file descriptors or other references to
     the  STREAMS  file,  then a successful call to fdetach() has
     the same effect as  performing  the  last  close(2)  on  the
     attached file.


RETURN VALUES

     Upon successful completion, fdetach() returns 0.  Otherwise,
     it returns -1 and sets errno to indicate the error.


ERRORS

     The fdetach() function will fail if:

     EACCES
           Search permission is denied on a component of the path
           prefix.

     EPERM The effective user ID is not the owner of path and the
           process does not have appropriate privileges.

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

     ENOENT
           A component of path does not name an existing file  or
           path is an empty string.

     EINVAL
           The path argument names a file that is  not  currently
           attached.

     ENAMETOOLONG
           The size of a pathname exceeds PATH_MAX, or a pathname
           component    is    longer    than    NAME_MAX    while
           _POSIX_NO_TRUNC is in effect.

     ELOOP Too many symbolic links were encountered in  resolving
           path.

     The fdetach() function may fail if:

     ENAMETOOLONG
           Pathname resolution of a  symbolic  link  produced  an
           intermediate result whose length exceeds PATH_MAX.


SEE ALSO

     fdetach(1M), close(2), fattach(3C), streamio(7I)

     STREAMS Programming Guide


Man(1) output converted with man2html