fattach(3C) manual page
Table of Contents
fattach - attach a STREAMS-based file descriptor to an object in the
file system name space
int fattach(int fildes, const char *path);
MT-Safe
The fattach() routine 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 associated with it.
The attributes of the named stream (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 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.
If successful, fattach() returns 0; otherwise it
returns -1 and sets errno to indicate an error.
Under the following
conditions, the function fattach() fails and sets errno to:
- EACCES
- The
user is the owner of path but does not have write permissions on path or
fildes is locked.
- EBADF
- fildes is not a valid open file descriptor.
- EBUSY
- path is currently a mount point or has a STREAMS
file descriptor attached
it.
- EINVAL
- path is a file in a remotely mounted directory.
- EINVAL
- fildes
does not represent a STREAMS
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
- path 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.
fdetach(1M)
, chmod(2)
, stat(2)
, fdetach(3C)
, isastream(3C)
, streamio(7I)
Table of Contents