fattach(S)
fattach --
attach STREAMS-based file descriptor to file system object
Synopsis
#include <stropts.h>
#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(S)),
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(S)),
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.
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(ADM),
fdetach(S),
isastream(S),
streamio(HW)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005