FATTACH(3C) Standard C Library Functions FATTACH(3C)

NAME


fattach - attach a STREAMS- or doors-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- or doors-based file descriptor
to an object in the file system name space, effectively associating a
name with fildes. The fildes argument must be a valid open file
descriptor 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 initialized
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 or doors device associated
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.

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 descriptor.


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 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(7) for descriptions of the following attributes:


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

SEE ALSO


chmod(2), mount(2), stat(2), door_create(3C), fdetach(3C), isastream(3C),
streamio(4I), attributes(7), standards(7), fdetach(8)


STREAMS Programming Guide

July 24, 2002 FATTACH(3C)