8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3socket / rexec.3socket
blob34163c2d808f00a43b77bae64d2ae72ffe18c224
1 '\" te
2 .\"  Copyright 1989 AT&T
3 .\" Copyright (C) 2004, Sun Microsystems, Inc. All Rights Reserved
4 .\" 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.
5 .\" 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.
6 .\" 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]
7 .TH REXEC 3SOCKET "Feb 10, 2004"
8 .SH NAME
9 rexec, rexec_af \- return stream to a remote command
10 .SH SYNOPSIS
11 .LP
12 .nf
13 \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR... \fB-lsocket\fR \fB -lnsl \fR [ \fIlibrary\fR... ]
14 #include <netdb.h>
15 #include <unistd.h>
17 \fBint\fR \fBrexec\fR(\fBchar **\fR\fIahost\fR, \fBunsigned short\fR \fIinport\fR, \fBconst char *\fR\fIuser\fR,
18      \fBconst char *\fR\fIpasswd\fR, \fBconst char *\fR\fIcmd\fR, \fBint *\fR\fIfd2p\fR);
19 .fi
21 .LP
22 .nf
23 \fBint\fR \fBrexec_af\fR(\fBchar **\fR\fIahost\fR, \fBunsigned short\fR \fIinport\fR, \fBconst char *\fR\fIuser\fR,
24      \fBconst char *\fR\fIpasswd\fR, \fBconst char *\fR\fIcmd\fR, \fBint *\fR\fIfd2p\fR, \fBint\fR \fIaf\fR);
25 .fi
27 .SH DESCRIPTION
28 .sp
29 .LP
30 The \fBrexec()\fR and \fBrexec_af()\fR functions look up the host \fIahost\fR
31 using \fBgetaddrinfo\fR(3SOCKET) and return \fB\(mi1\fR if the host does not
32 exist. Otherwise \fIahost\fR is set to the standard name of the host. The
33 username and password are used in remote host authentication. When a username
34 and password are not specified, the \fB\&.netrc\fR file in the user's home
35 directory is searched for the appropriate information. If the search fails, the
36 user is prompted for the information.
37 .sp
38 .LP
39 The \fBrexec()\fR function always returns a socket of the \fBAF_INET\fR address
40 family. The \fBrexec_af()\fR function supports \fBAF_INET\fR, \fBAF_INET6\fR,
41 or \fBAF_UNSPEC\fR for the address family. An application can choose which type
42 of socket is returned by passing \fBAF_INET\fR or \fBAF_INET6\fR as the address
43 family. The use of \fBAF_UNSPEC\fR means that the caller will accept any
44 address family. Choosing \fBAF_UNSPEC\fR provides a socket that best suits the
45 connectivity to the remote host.
46 .sp
47 .LP
48 The port \fIinport\fR specifies which \fBDARPA\fR Internet port to use for the
49 connection. The port number used must be in network byte order, as supplied by
50 a call to \fBhtons\fR(3XNET). The protocol for connection is described in
51 detail in \fBin.rexecd\fR(1M).
52 .sp
53 .LP
54 If the call succeeds, a socket of type \fBSOCK_STREAM\fR is returned to the
55 caller, and given to the remote command as its standard input and standard
56 output. If \fIfd2p\fR is non-zero, an auxiliary channel to a control process is
57 set up and a file descriptor for it is placed in *\fIfd2p\fR. The control
58 process returns diagnostic output (file descriptor 2), from the command on the
59 auxiliary channel. The control process also accepts bytes on this channel as
60 signal numbers to be forwarded to the process group of the command. If
61 \fIfd2p\fR is 0, the standard error (file descriptor 2) of the remote command
62 is made the same as its standard output. No provision is made for sending
63 arbitrary signals to the remote process, other than possibly sending
64 out-of-band data.
65 .sp
66 .LP
67 There is no way to specify options to the \fBsocket()\fR call made by the
68 \fBrexec()\fR or \fBrexec_af()\fRfunctions.
69 .SH RETURN VALUES
70 .sp
71 .LP
72 If \fBrexec()\fR succeeds, a file descriptor number is returned of the socket
73 type \fBSOCK_STREAM\fR and the address family \fBAF_INET\fR. The parameter
74 *\fIahost\fR is set to the standard name of the host. If the value of
75 \fIfd2p\fR is other than \fBNULL\fR, a file descriptor number is placed in
76 *\fIfd2p\fR which represents the standard error stream of the command.
77 .sp
78 .LP
79 If \fBrexec_af()\fR succeeds, the routine returns a file descriptor number of
80 the socket type \fBSOCK_STREAM\fR in the address family \fBAF_INET\fR or
81 \fBAF_INET6\fR, as determined by the value of the \fIaf\fR parameter.
82 .sp
83 .LP
84 If either \fBrexec()\fR or \fBrexec_af()\fR fails, \fB\(mi1\fR is returned.
85 .SH ATTRIBUTES
86 .sp
87 .LP
88 See \fBattributes\fR(5) for descriptions of the following attributes:
89 .sp
91 .sp
92 .TS
93 box;
94 c | c
95 l | l .
96 ATTRIBUTE TYPE  ATTRIBUTE VALUE
98 MT-Level        Unsafe
99 .TE
103 This interface is Unsafe in multithreaded applications. Unsafe interfaces
104 should be called only from the main thread.
105 .SH SEE ALSO
108 \fBin.rexecd\fR(1M), \fBgetaddrinfo\fR(3SOCKET), \fBgethostbyname\fR(3NSL),
109 \fBgetservbyname\fR(3SOCKET), \fBhtonl\fR(3XNET), \fBsocket\fR(3SOCKET),
110 \fBattributes\fR(5)