fattach(3C) COMPATIBILITY FUNCTIONS fattach(3C)
NAME
fattach - attach a STREAMS-based file descriptor to an
object in the file system name space
SYNOPSIS
int fattach(int fildes, const char *path);
DESCRIPTION
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 appropri-
ate 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,
i.e., a stream can have several names associated 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
[e.g., chmod(2)], the attributes of the underlying object
are not affected.
RETURN VALUE
If successful, fattach returns 0; otherwise it returns -1
and sets errno to indicate an error.
ERRORS
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.
ENOENT path does not exist.
ENOTDIR A component of a path prefix is not a direc-
tory.
EINVAL fildes does not represent a STREAMS file.
EPERM The effective user ID is not the owner of path
or a user with the appropriate privileges.
EBUSY path is currently a mount point or has a
Last change: 1
fattach(3C) COMPATIBILITY FUNCTIONS fattach(3C)
STREAMS file descriptor attached it.
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.
ELOOP Too many symbolic links were encountered in
translating path.
EREMOTE path is a file in a remotely mounted directory.
SEE ALSO
fdetach(1M),fdetach(3C), isastream(3C), streamio(7)
in the Programmer's Guide: STREAMS
Last change: 2