xref: /illumos-gate/usr/src/man/man3c/fattach.3c (revision 2411ecfcc7e4d3dc7fc3f78b9e50601e50a8a56c)
te
Copyright 1989 AT&T. Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
FATTACH 3C "Jul 24, 2002"
NAME
fattach - attach a STREAMS- or doors-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() function attaches a STREAMS- or doors-based file descriptor to an object in the file system name space, effectively associating a name with fildes. The fildes argument must be a valid open file descriptor representing a STREAMS or doors file. The path argument 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 or doors file until the STREAMS or doors file is detached from the node. The fildes argument can be attached to more than one path, that is, a stream or door can have several names associated with it.

The attributes of the named stream or door (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 or doors device associated with fildes. If any attributes of the named stream or door are subsequently changed (for example, chmod(2)), the attributes of the underlying object are not affected.

RETURN VALUES

Upon successful completion, fattach() returns 0. Otherwise it returns -1 and sets errno to indicate an error.

ERRORS

The fattach() function will fail if: EACCES

The user is the owner of path but does not have write permissions on path or fildes is locked.

EBADF

The fildes argument is not a valid open file descriptor.

EBUSY

The path argument is currently a mount point or has a STREAMS or doors file descriptor attached to it.

EINVAL

The path argument is a file in a remotely mounted directory.

EINVAL

The fildes argument does not represent a STREAMS or doors file.

ELOOP

Too many symbolic links were encountered in translating path.

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.

ENOENT

The path argument does not exist.

ENOTDIR

A component of a path prefix is not a directory.

EPERM

The effective user ID is not the owner of path or a user with the appropriate privileges.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Standard
MT-Level MT-Safe
SEE ALSO

fdetach(1M), chmod(2), mount(2), stat(2), door_create(3C), fdetach(3C), isastream(3C), attributes(5), standards(5), streamio(7I)

STREAMS Programming Guide