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)