fattach.3c (2010 09)
f
fattach(3C) fattach(3C)
NAME
fattach( ) - attach a STREAMS file descriptor to an object in the file system name space
SYNOPSIS
#include <stropts.h>
int fattach(int fd, const char *path);
DESCRIPTION
The fattach() function attaches the fd file descriptor to an object in the file system name space desig-
nated by path . fd specifies an open file descriptor to a STREAMS device or STREAMS-based pipe. path
specifies the pathname of an existing object in the file system. A STREAMS device or pipe can be
attached to more than one node in the file system name space. In other words, a STREAMS device or pipe
is allowed to have several associated names. Until the STREAMS device or pipe is detached from the
node (with fdetach (3C) or fdetach (1M)), all operations on path will act on the STREAMS device or pipe
instead of the file system object path .
The
fattached stream’s attributes (see the stat (2) reference page) are set according to the following
scheme:
• The group ID, user ID, times, and permissions are set to those of path .
• The size as well as the device number are set to those of the STREAMS device or pipe designated by
the fd parameter. Note that although the attributes of the
fattached STREAMS device or pipe may
change (see the chmod(2) reference page), the attributes of the underlying file system object path will
not be changed.
• The number of links is set to 1.
RETURN VALUE
Upon successful completion, the
fattach() function returns a value of 0 (zero). Otherwise, it returns a
value of -1, and errno is set to indicate the error.
ERRORS
If any of the following conditions occurs, the
fattach() function sets errno to the value that
corresponds to the condition.
[EACCES] Although the user is the owner of path , the user has no write permissions for it.
[EBADF] The fd parameter is an invalid file descriptor.
[EBUSY] The existing object specified by the path parameter is already mounted or has a
file descriptor attached to it.
[EFAULT] The path parameter points to a location outside of the allocated address space of
the process.
[EINVAL] The fd parameter does not refer to a STREAMS device or STREAMS-based pipe.
[ELOOP] When path was translated, too many symbolic links were found.
[ENOENT] path does not exist.
[ENOTDIR] The directory portion of the path parameter does not exist.
[ENAMETOOLONG] The size of a pathname component is longer than
NAME_MAX when
_POSIX_NO_TRUNC is in effect, or the pathname length is longer than
PATH_MAX.
[EPERM] The current effective user ID is not the owner of the existing object specified by
the path parameter.
SEE ALSO
fdetach(3C), isastream(3C), chmod(2), stat(2), fdetach(1M), streamio(7).
STANDARDS COMPLIANCE
fattach(): SVID3
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1