Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fdetach(1M)

fdetach(3C)

isastream(3C)

stropts(5)

streamio(7)

fattach(3C)                                                     fattach(3C)

NAME
     fattach - attach a STREAMS-based file descriptor to an object in the
     file system name space

SYNOPSIS
     #include <stropts.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 user
     must have appropriate 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 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 de-
     vice 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
     The following error code descriptions are function-specific. You will
     find a general description in introprm2(2) or in errno(5).

     Under the following conditions, the function fattach fails and sets
     errno to:

     EACCES        Search permission is denied for a component of the path
                   prefix, or the process is the owner of path but does not
                   have write permissions on the file named by path.

     EBADF         fildes is not a valid open file descriptor.

     ENOENT        A component of path does not name an existing file or
                   path is an empty string.

     ENOTDIR       A component of a path prefix is not a directory.

     EINVAL        fildes does not represent a STREAMS file.




Page 1                       Reliant UNIX 5.44                Printed 11/98

fattach(3C)                                                     fattach(3C)

     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 STREAMS file
                   descriptor attached it.

     ENAMETOOLONG  The size of path exceeds PATHMAX, or the component of a
                   path name is longer than NAMEMAX while POSIXNOTRUNC
                   is in effect.

     ELOOP         Too many symbolic links were encountered in translating
                   path.

     EREMOTE       path is a file in a remotely mounted directory.

     The fattach() function may fail if:

     EINVAL        The fildes argument does not refer to a STREAMS file.

     ENAMETOOLONG  Pathname resolution of a symbolic link produced an
                   intermediate result whose length exceeds PATHMAX.

APPLICATION USAGE
     The fattach() function behaves similarly to the traditional mount(2)
     function in the way a file is temporarily replaced by the root direc-
     tory of the mounted file system. In the case of fattach(), the
     replaced file need not be a directory and the replacing file is a
     STREAMS file.

SEE ALSO
     fdetach(1M), fdetach(3C), isastream(3C), stropts(5), streamio(7).























Page 2                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026