Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
fattach(3C)		 Standard C Library Functions		   fattach(3C)

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

       #include	<stropts.h>

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

       The fattach() function attaches a STREAMS- or doors-based file descrip-
       tor to an object	in the file system name	space, effectively associating
       a name with fildes. The fildes argument must be a valid open  file  de-
       scriptor	 representing  a STREAMS or doors file.	The path argument 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 or doors file
       until  the  STREAMS or doors file is detached from the node. The	fildes
       argument	can be attached	to more	than one path, that is,	 a  stream  or
       door can	have several names associated with it.

       The  attributes of the named stream or door (see	stat(2)), are initial-
       ized 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 de-
       vice identifier are set to those	of the streams or doors	device associ-
       ated  with  fildes.  If	any attributes of the named stream or door are
       subsequently changed  (for example, chmod(2)), the  attributes  of  the
       underlying object are not affected.

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

       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

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

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

       EINVAL		       The   fildes  argument  does  not  represent  a
			       STREAMS or doors	file.

       ELOOP		       Too many	symbolic  links	 were  encountered  in
			       translating 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 ef-

       ENOENT		       The path	argument does not exist.

       ENOTDIR		       A component of a	path prefix is	not  a	direc-

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

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |
       |MT-Level		     |MT-Safe			   |

       fdetach(1M),  chmod(2),	mount(2),  stat(2),  door_create(3DOOR),  fde-
       tach(3C), isastream(3C),	attributes(5), standards(5), streamio(7I)

       STREAMS Programming Guide

SunOS 5.10			  24 Jul 2002			   fattach(3C)


Want to link to this manual page? Use this URL:

home | help