fattach(S)
fattach --
STREAMS-based file descriptor to filesystem object
Syntax
cc . . . -lc
int fattach(int fildes, const char *path);
Description
The fattach routine attaches a STREAMS-based
file descriptor to an object in the filesystem name space,
effectively associating a name with
fildes. fildes must be a valid open file
descriptor representing a STREAMS file. path is
a pathname 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
superuser privilege. 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 (using, 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.
Diagnostics
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 superuser privilege.
[EBUSY]-
path is currently a mount point or has a STREAMS file
descriptor attached to it.
[ENAMETOOLONG]-
The size of path exceeds {PATH_MAX}, or the
component of a pathname 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.
Files
/lib/libc.a-
linking library
See also
fdetach(S),
isastream(S),
stat(S),
streamio(M)
Standards conformance
fattach is conformant with:
AT&T SVID Issue 3.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003