fattach(3C)




NAME

     fattach - attach  a  STREAMS-based  file  descriptor  to  an
     object in the file system name space


SYNOPSIS

     #include <stropts.h>

     int fattach(int fildes, const char *path);


DESCRIPTION

     The  fattach()  function  attaches  a   STREAMS-based   file
     descriptor  to  an  object  in  the  file system name space,
     effectively associating a name with fildes. fildes must be a
     valid open file descriptor representing a STREAMS file. path
     is a path name of an existing object and the user must  have
     appropriate  privileges or be the owner of the file and have
     write permissions. All subsequent operations  on  path  will
     operate  on  the  STREAMS  file  until  the  STREAMS file is
     detached from the node. fildes can be attached to more  than
     one  path,  that is, a stream can have several names associ-
     ated with it.

     The attributes of the named stream (see stat(2)),  are  ini-
     tialized as follows: the permissions, user ID, group ID, and
     times are set to those of path, the number of links  is  set
     to 1, and the size and device identifier are set to those of
     the streams device associated with fildes. If any attributes
     of  the named stream are subsequently changed  (for example,
     chmod(2)), the attributes of the underlying object  are  not
     affected.


RETURN VALUES

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


ERRORS

     The fattach() function will fail if:

     EACCES
           The user is the owner of path but does not have  write
           permissions on path or fildes is locked.

     EBADF The fildes argument is not a valid open file  descrip-
           tor.

     EBUSY The path argument is currently a mount point or has  a
           STREAMS file descriptor attached it.

     EINVAL
           The path argument is a  file  in  a  remotely  mounted
           directory.

     EINVAL
           The fildes argument does not represent a STREAMS file.

     ELOOP Too many symbolic links were encountered in  translat-
           ing path.

     ENAMETOOLONG
           The size of path exceeds {PATH_MAX}, or the  component
           of  a  path  name  is  longer  than  {NAME_MAX}  while
           {_POSIX_NO_TRUNC} is in effect.

     ENOENT
           The path argument does not exist.

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

     EPERM The effective user ID is not the owner of  path  or  a
           user with the appropriate privileges.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | MT-Level                    | MT-Safe                     |
    |_____________________________|_____________________________|


SEE ALSO

     fdetach(1M), chmod(2), mount(2), stat(2), fdetach(3C), isas-
     tream (3C), attributes(5), streamio(7I)

     STREAMS Programming Guide


Man(1) output converted with man2html