fattach(3C) fattach(3C)
NAME
fattach - attach STREAMS-based file descriptor to file system
object
SYNOPSIS
#include <unistd.h>
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 effective user ID of the
calling process must be the owner of the file and have write
permissions, or the calling process must have appropriate
privilege (P_OWNER). 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.
Return Values
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 Search permission is denied on a component
of the path prefix.
EACCES The user is the owner of the file named by
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.
Copyright 1994 Novell, Inc. Page 1
fattach(3C) fattach(3C)
ENOTDIR A component of a path prefix is not a
directory.
EINVAL fildes does not represent a STREAMS file.
EPERM The effective user ID of the calling process
is not the owner of the file named by path
nor does the process have appropriate
privilege (P_OWNER).
EBUSY path is currently a mount point or has a
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.
REFERENCES
fdetach(1M), fdetach(3C), isastream(3C), streamio(7)
Copyright 1994 Novell, Inc. Page 2