kill tsol ("Trusted Solaris") aka TX ("Trusted Extensions")
[unleashed.git] / usr / src / man / man3 / Intro.3
blob8a84e5c2f8d219f92ded4fca9fa7b7f8a20ef5f0
1 '\" te
2 .\" Copyright 2015 Joyent, Inc.
3 .\" Copyright (c) 2009, 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. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
5 .\"  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
6 .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
7 .TH INTRO 3 "Jul 19, 2015"
8 .SH NAME
9 Intro, intro \- introduction to functions and libraries
10 .SH DESCRIPTION
11 .LP
12 This section describes functions found in various Solaris libraries, other than
13 those functions described in Section 2 of this manual that directly invoke UNIX
14 system primitives. Function declarations can be obtained from the
15 \fB#include\fR files indicated on each page. Pages are grouped by library and
16 are identified by the library name (or an abbreviation of the library name)
17 after the section number. Collections of related libraries are grouped into
18 volumes as described below. The first volume contains pages describing the
19 contents of each shared library and each header used by the functions, macros,
20 and external variables described in the remaining volumes.
21 .SS "Library Interfaces and Headers"
22 .LP
23 This volume describes the contents of each shared library and each header used
24 by functions, macros, and external variables described in the remaining
25 volumes.
26 .sp
27 .ne 2
28 .na
29 \fB(3LIB)\fR
30 .ad
31 .sp .6
32 .RS 4n
33 The libraries described in this section are implemented as shared objects.
34 .sp
35 Descriptions of shared objects can include a definition of the global symbols
36 that define the shared objects' public interface, for example \fBSUNW_1.1\fR.
37 Other interfaces can exist within the shared object, for example
38 \fBSUNWprivate.1.1\fR. The public interface provides a stable, committed set of
39 symbols for application development. The private interfaces are for internal
40 use only, and could change at any time.
41 .RE
43 .sp
44 .ne 2
45 .na
46 \fB(3LIBUCB)\fR
47 .ad
48 .sp .6
49 .RS 4n
50 The SunOS/BSD Compatibility libraries described in this section are implemented
51 as a shared object. See (3LIB) above.
52 .RE
54 .sp
55 .ne 2
56 .na
57 \fB(3HEAD)\fR
58 .ad
59 .sp .6
60 .RS 4n
61 The headers described in this section are used by functions, macros, and
62 external variables. Headers contain function prototypes, definitions of
63 symbolic constants, common structures, preprocessor macros, and defined types.
64 Each function described in the remaining five volumes specifies the headers
65 that an application must include in order to use that function. In most cases
66 only one header is required. These headers are present on an application
67 development system; they do have to be present on the target execution system.
68 .RE
70 .SS "Basic Library Functions"
71 .LP
72 The functions described in this volume are the core C library functions that
73 are basic to application development.
74 .sp
75 .ne 2
76 .na
77 \fB(3C)\fR
78 .ad
79 .sp .6
80 .RS 4n
81 These functions, together with those of Section 2, constitute the standard C
82 library, \fBlibc\fR, which is automatically linked by the C compilation system.
83 The standard C library is implemented as a shared object, \fBlibc.so\fR. See
84 \fBlibc\fR(3LIB) and the "C Compilation System" chapter of the \fIANSI C
85 Programmer's Guide\fR for a discussion. Some functions behave differently in
86 standard-conforming environments. This behavior is noted on the individual
87 manual pages. See \fBstandards\fR(5).
88 .sp
89 The \fBlibpthread\fR and \fBlibthread\fR libraries are filter libraries on
90 \fBlibc\fR that are used for building multithreaded applications:
91 \fBlibpthread\fR implements the POSIX (see \fBstandards\fR(5)) threads
92 interface, whereas \fBlibthread\fR implements the Solaris threads interface.
93 See \fBMULTITHREADED APPLICATIONS\fR, below.
94 .RE
96 .sp
97 .ne 2
98 .na
99 \fB(3C_DB)\fR
101 .sp .6
102 .RS 4n
103 These functions constitute the threads debugging library, \fBlibc_db\fR. This
104 library is implemented as a shared object, \fBlibc_db.so\fR, but is not
105 automatically linked by the C compilation system. Specify \fB-lc_db\fR on the
106 \fBcc\fR command line to link with this library. See \fBlibc_db\fR(3LIB).
110 .ne 2
112 \fB(3MALLOC)\fR
114 .sp .6
115 .RS 4n
116 These functions constitute the various memory allocation libraries:
117 \fBlibmalloc\fR, \fBlibbsdmalloc\fR, \fBlibmapmalloc\fR, \fBlibmtmalloc\fR, and
118 \fBlibumem\fR. Each of these libraries is implemented as a shared object
119 (\fBlibmalloc.so\fR, \fBlibbsdmalloc.so\fR, \fBlibmapmalloc.so\fR,
120 \fBlibmtmalloc.so\fR, and \fBlibumem.so\fR). These libraries are not
121 automatically linked by the C compilation system. Specify \fB-lmalloc\fR,
122 \fB-lbsdmalloc\fR, \fB-lmapmalloc\fR, \fB-lmtmalloc\fR, and \fB-lumem\fR to
123 link with, respectively, \fBlibmalloc\fR, \fBlibbsdmalloc\fR,
124 \fBlibmapmalloc\fR, \fBlibmtmalloc\fR, and \fBlibumem\fR. See
125 \fBlibmalloc\fR(3LIB), \fBlibbsdmalloc\fR(3LIB), \fBlibmapmalloc\fR(3LIB),
126 \fBlibmtmalloc\fR(3LIB), and \fBlibumem\fR(3LIB).
129 .SS "Networking Library Functions"
131 The functions described in this volume comprise the various networking
132 libraries.
134 .ne 2
136 \fB(3COMMPUTIL)\fR
138 .sp .6
139 .RS 4n
140 These functions constitute the communication protocol parser utilities library,
141 \fBlibcommputil\fR. This library is implemented as a shared object,
142 \fBlibcommputil.so\fR, but it is not automatically linked by the C compilation
143 system. Specify \fB-lcommputil\fR on the \fBcc\fR command line to link with
144 this library. See \fBlibcommputil\fR(3LIB).
148 .ne 2
150 \fB(3DLPI)\fR
152 .sp .6
153 .RS 4n
154 These functions constitute the data link provider interface library,
155 \fBlibdlpi\fR. This library is implemented as a shared object,
156 \fBlibdlpi.so\fR, but it is not automatically linked by the C compilation
157 system. Specify \fB-ldlpi\fR on the \fBcc\fR command line to link with this
158 library. See \fBlibdlpi\fR(3LIB).
162 .ne 2
164 \fB(3DNS_SD)\fR
166 .sp .6
167 .RS 4n
168 These functions constitute the DNS service discovery library, \fBlibdns_sd\fR.
169 This library is implemented as a shared object, \fBlibdns_sd.so\fR, but it is
170 not automatically linked by the C compilation system. Specify \fB-ldns_sd\fR on
171 the \fBcc\fR command line to link with this library. See \fBlibdns_sd\fR(3LIB).
175 .ne 2
177 \fB(3GSS)\fR
179 .sp .6
180 .RS 4n
181 These functions constitute the generic security services library. This library
182 is implemented as a shared object, \fBlibgss.so\fR, but it is not automatically
183 linked by the C compilation system. Specify \fB-lgss\fR on the \fBcc\fR command
184 line to link with this library. See \fBlibgss\fR(3LIB).
188 .ne 2
190 \fB(3LDAP)\fR
192 .sp .6
193 .RS 4n
194 These functions constitute the lightweight directory access protocol library,
195 \fBlibldap\fR. This library is implemented as a shared object,
196 \fBlibldap.so\fR, but is not automatically linked by the C compilation system.
197 Specify \fB-lldap\fR on the \fBcc\fR command line to link with this library.
198 See \fBldap\fR(3LDAP).
202 .ne 2
204 \fB(3RESOLV)\fR
206 .sp .6
207 .RS 4n
208 These functions constitute the resolver library, \fBlibresolv\fR. This library
209 is implemented as a shared object, \fBlibresolv.so\fR, but is not automatically
210 linked by the C compilation system. Specify \fB-lresolv\fR on the \fBcc\fR
211 command line to link with this library. See \fBlibresolv\fR(3LIB).
215 .ne 2
217 \fB(3RPC)\fR
219 .sp .6
220 .RS 4n
221 These functions constitute the remote procedure call libraries, \fBlibrpcsvc\fR
222 and \fBlibrpcsoc\fR. The latter is provided for compatibility only; new
223 applications should not link to it. Both libraries are implemented as shared
224 objects, \fBlibrpcsvc.so\fR and \fBlibrpcsoc.so\fR, respectively. Neither
225 library is automatically linked by the C compilation system. Specify
226 \fB-lrpcsvc\fR or \fB-lrpcsoc\fR on the \fBcc\fR command line to link with
227 these libraries. See \fBlibrpcsvc\fR(3LIB) and \fBlibrpcsoc\fR(3LIBUCB).
231 .ne 2
233 \fB(3SASL)\fR
235 .sp .6
236 .RS 4n
237 These functions constitute the simple authentication and security layer
238 library, \fBlibsasl\fR. This library is implemented as a shared object,
239 \fBlibsasl.so\fR, but it is not automatically linked by the C compilation
240 system. Specify \fB-lsasl\fR on the \fBcc\fR command line to link with this
241 library. See \fBlibsasl\fR(3LIB).
245 .ne 2
247 \fB(3SIP)\fR
249 .sp .6
250 .RS 4n
251 These functions constitute the session initiation protocol library,
252 \fBlibsip\fR. This library is implemented as a shared object, \fBlibsip.so\fR,
253 but it is not automatically linked by the C compilation system. Specify
254 \fB-lsip\fR on the \fBcc\fR command line to link with this library. See
255 \fBlibsip\fR(3LIB).
260 Under all circumstances, the use of the Sockets API is recommended over the XTI
261 and TLI APIs. If portability to other XPGV4v2 (see \fBstandards\fR(5)) systems
262 is a requirement, the application must use the \fBlibxnet\fR interfaces. If
263 portability is not required, the sockets interfaces in \fBlibsocket\fR and
264 \fBlibnsl\fR are recommended over those in \fBlibxnet\fR. Between the XTI and
265 TLI APIs, the \fBXTI\fR interfaces (available with \fBlibxnet\fR) are
266 recommended over the \fBTLI\fR interfaces (available with \fBlibnsl\fR).
267 .SS "Curses Library Functions"
269 The functions described in this volume comprise the libraries that provide
270 graphics and character screen updating capabilities.
272 .ne 2
274 \fB(3CURSES)\fR
276 .sp .6
277 .RS 4n
278 The functions constitute the following libraries:
280 .ne 2
282 \fB\fBlibcurses\fR\fR
284 .sp .6
285 .RS 4n
286 These functions constitute the curses library, \fBlibcurses\fR. This library is
287 implemented as a shared object, \fBlibcurses.so\fR, but is not automatically
288 linked by the C compilation system. Specify \fB-lcurses\fR on the \fBcc\fR
289 command line to link with this library. See \fBlibcurses\fR(3LIB).
293 .ne 2
295 \fB\fBlibform\fR\fR
297 .sp .6
298 .RS 4n
299 These functions constitute the forms library, \fBlibform\fR. This library is
300 implemented as a shared object, \fBlibform.so\fR, but is not automatically
301 linked by the C compilation system. Specify \fB-lform\fR on the \fBcc\fR
302 command line to link with this library. See \fBlibform\fR(3LIB).
306 .ne 2
308 \fB\fBlibmenu\fR\fR
310 .sp .6
311 .RS 4n
312 These functions constitute the menus library, \fBlibmenu\fR. This library is
313 implemented as a shared object, \fBlibmenu.so\fR, but is not automatically
314 linked by the C compilation system. Specify \fB-lmenu\fR on the \fBcc\fR
315 command line to link with this library. See \fBlibmenu\fR(3LIB).
319 .ne 2
321 \fB\fBlibpanel\fR\fR
323 .sp .6
324 .RS 4n
325 These functions constitute the panels library, \fBlibpanel\fR. This library is
326 implemented as a shared object, \fBlibpanel.so\fR, but is not automatically
327 linked by the C compilation system. Specify \fB-lpanel\fR on the \fBcc\fR
328 command line to link with this library. See \fBlibpanel\fR(3LIB).
334 .ne 2
336 \fB(3PLOT)\fR
338 .sp .6
339 .RS 4n
340 These functions constitute the grapnics library, \fBlibplot\fR. This library is
341 implemented as a shared object, \fBlibplot.so\fR, but is not automatically
342 linked by the C compilation system. Specify \fB-lplot\fR on the \fBcc\fR
343 command line to link with this library. See \fBlibplot\fR(3LIB).
347 .ne 2
349 \fB(3XCURSES)\fR
351 .sp .6
352 .RS 4n
353 These functions constitute the X/Open curses library, located in
354 \fB/usr/xpg4/lib/libcurses.so\fR. This library provides a set of
355 internationalized functions and macros for creating and modifying input and
356 output to a terminal screen. Included in this library are functions for
357 creating windows, highlighting text, writing to the screen, reading from user
358 input, and moving the cursor. X/Open Curses is designed to optimize screen
359 update activities. The X/Open Curses library conforms fully with Issue 4 of the
360 X/Open Extended Curses specification. See \fBlibcurses\fR(3XCURSES).
363 .SS "Extended Library Functions"
365 The functions described in this volume comprise the following specialized
366 libraries:
368 .ne 2
370 \fB(3BSM)\fR
372 .sp .6
373 .RS 4n
374 These functions constitute the Solaris auditing library, \fBlibbsm\fR. This
375 library is implemented as a shared object, \fBlibbsm.so\fR, but is not
376 automatically linked by the C compilation system. Specify \fB-lbsm\fR on the
377 \fBcc\fR command line to link with this library. See \fBlibbsm\fR(3LIB).
381 .ne 2
383 \fB(3CFGADM)\fR
385 .sp .6
386 .RS 4n
387 These functions constitute the configuration administration library,
388 \fBlibcfgadm\fR. This library is implemented as a shared object,
389 \fBlibcfgadm.so\fR, but is not automatically linked by the C compilation
390 system. Specify \fB-lcfgadm\fR on the \fBcc\fR command line to link with this
391 library. See \fBlibcfgadm\fR(3LIB).
395 .ne 2
397 \fB(3CONTRACT)\fR
399 .sp .6
400 .RS 4n
401 These functions constitute the contract management library, \fBlibcontract\fR.
402 This library is implemented as a shared object, \fBlibcontract.so\fR, but is
403 not automatically linked by the C compilation system. Specify \fB-lcontract\fR
404 on the \fBcc\fR command line to link with this library. See
405 \fBlibcontract\fR(3LIB).
409 .ne 2
411 \fB(3CPC)\fR
413 .sp .6
414 .RS 4n
415 These functions constitute the CPU performance counter library, \fBlibcpc\fR,
416 and the process context library, \fBlibpctx\fR. These libraries are implemented
417 as shared objects, \fBlibcpc.so\fR and \fBlibpctx.so\fR, respectively, but are
418 not automatically linked by the C compilation system. Specify \fB-lcpc\fR or
419 \fB-lpctx\fR on the \fBcc\fR command line to link with these libraries. See
420 \fBlibcpc\fR(3LIB) and \fBlibpctx\fR(3LIB).
424 .ne 2
426 \fB(3DAT)\fR
428 .sp .6
429 .RS 4n
430 These functions constitute the direct access transport library, \fBlibdat\fR.
431 This library is implemented as a shared object, \fBlibdat.so\fR, but is not
432 automatically linked by the C compilation system. Specify \fB-ldat\fR on the
433 \fBcc\fR command line to link with this library. See \fBlibdat\fR(3LIB).
437 .ne 2
439 \fB(3DEVID)\fR
441 .sp .6
442 .RS 4n
443 These functions constitute the device \fBID\fR library, \fBlibdevid\fR. This
444 library is implemented as a shared object, \fBlibdevid.so\fR, but is not
445 automatically linked by the C compilation system. Specify \fB-ldevid\fR on the
446 \fBcc\fR command line to link with this library. See \fBlibdevid\fR(3LIB).
450 .ne 2
452 \fB(3DEVINFO)\fR
454 .sp .6
455 .RS 4n
456 These functions constitute the device information library, \fBlibdevinfo\fR.
457 This library is implemented as a shared object, \fBlibdevinfo.so\fR, but is not
458 automatically linked by the C compilation system. Specify \fB-ldevinfo\fR on
459 the \fBcc\fR command line to link with this library. See
460 \fBlibdevinfo\fR(3LIB).
464 .ne 2
466 \fB(3ELF)\fR
468 .sp .6
469 .RS 4n
470 These functions constitute the ELF access library, \fBlibelf\fR, (Extensible
471 Linking Format). This library provides the interface for the creation and
472 analyses of "elf" files; executables, objects, and shared objects. \fBlibelf\fR
473 is implemented as a shared object, \fBlibelf.so\fR, but is not automatically
474 linked by the C compilation system. Specify \fB-lelf\fR on the \fBcc\fR command
475 line to link with this library. See \fBlibelf\fR(3LIB).
479 .ne 2
481 \fB(3EXACCT)\fR
483 .sp .6
484 .RS 4n
485 These functions constitute the extended accounting access library,
486 \fBlibexacct\fR, and the project database access library, \fBlibproject\fR.
487 These libraries are implemented as shared objects, \fBlibexacct.so\fR and
488 \fBlibproject.so\fR, respectively, but are not automatically linked by the C
489 compilation system. Specify \fB-lexacct\fR or \fB-lproject\fR on the \fBcc\fR
490 command line to link with these libraries. See \fBlibexacct\fR(3LIB) and
491 \fBlibproject\fR(3LIB).
495 .ne 2
497 \fB(3FCOE)\fR
499 .sp .6
500 .RS 4n
501 These functions constitute the Fibre  Channel  over Ethernet port management
502 library. This library is implemented as a shared object, \fBlibfcoe.so\fR, but
503 is not automatically linked by the C compilation system. Specify \fB-lfcoe\fR
504 on the \fBcc\fR command line to link with this library. See
505 \fBlibfcoe\fR(3LIB).
509 .ne 2
511 \fB(3FSTYP)\fR
513 .sp .6
514 .RS 4n
515 These functions constitute the file system type identification library. This
516 library is implemented as a shared object, \fBlibfstyp.so\fR, but is not
517 automatically linked by the C compilation system. Specify \fB-lfstyp\fR on the
518 \fBcc\fR command line to link with this library. See \fBlibfstyp\fR(3LIB).
522 .ne 2
524 \fB(3GEN)\fR
526 .sp .6
527 .RS 4n
528 These functions constitute the string pattern-matching and pathname
529 manipulation library, \fBlibgen\fR. This library is implemented as a shared
530 object, \fBlibgen.so\fR, but is not automatically linked by the C compilation
531 system. Specify \fB-lgen\fR on the \fBcc\fR command line to link with this
532 library. See \fBlibgen\fR(3LIB).
536 .ne 2
538 \fB(3HBAAPI)\fR
540 .sp .6
541 .RS 4n
542 These functions constitute the common fibre channel HBA information library,
543 \fBlibhbaapi\fR. This library is implemented as a shared object,
544 \fBlibhbaapi.so\fR, but is not automatically linked by the C compilation
545 system. Specify \fB-lhbaapi\fR on the \fBcc\fR command line to link with this
546 library. See \fBlibhbaapi\fR(3LIB).
550 .ne 2
552 \fB(3ISCSIT)\fR
554 .sp .6
555 .RS 4n
556 These functions constitute the iSCSI Management library, \fBlibiscsit\fR. This
557 library is implemented as a shared object, \fBlibiscsit.so\fR, but is not
558 automatically linked by the C compilation system. Specify \fB-liscsit\fR on the
559 \fBcc\fR command line to link with this library. See \fBlibiscsit\fR(3LIB).
563 .ne 2
565 \fB(3KSTAT)\fR
567 .sp .6
568 .RS 4n
569 These functions constitute the kernel statistics library, which is implemented
570 as a shared object, \fBlibkstat.so\fR, but is not automatically linked by the C
571 compilation system. Specify \fB-lkstat\fR on the \fBcc\fR command line to link
572 with this library. See \fBlibkstat\fR(3LIB).
576 .ne 2
578 \fB(3KVM)\fR
580 .sp .6
581 .RS 4n
582 These functions allow access to the kernel's virtual memory library, which is
583 implemented as a shared object, \fBlibkvm.so\fR, but is not automatically
584 linked by the C compilation system. Specify \fB-lkvm\fR on the \fBcc\fR command
585 line to link with this library. See \fBlibkvm\fR(3LIB).
589 .ne 2
591 \fB(3LAYOUT)\fR
593 .sp .6
594 .RS 4n
595 These functions constitute the layout service library, which is implemented as
596 a shared object, \fBliblayout.so\fR, but is not automatically linked by the C
597 compilation system. Specify \fB-llayout\fR on the \fBcc\fR command line to link
598 with this library. See \fBliblayout\fR(3LIB).
602 .ne 2
604 \fB(3LGRP)\fR
606 .sp .6
607 .RS 4n
608 These functions constitute the locality group library, which is implemented as
609 a shared object, \fBliblgrp.so\fR, but is not automatically linked by the C
610 compilation system. Specify \fB-llgrp\fR on the \fBcc\fR command line to link
611 with this library. See \fBliblgrp\fR(3LIB).
615 .ne 2
617 \fB(3M)\fR
619 .sp .6
620 .RS 4n
621 These functions constitute the mathematical library, \fBlibm\fR. This library
622 is implemented as a shared object, \fBlibm.so\fR, but is not automatically
623 linked by the C compilation system. Specify \fB-lm\fR on the \fBcc\fR command
624 line to link with this library. See \fBlibm\fR(3LIB).
628 .ne 2
630 \fB(3MAIL)\fR
632 .sp .6
633 .RS 4n
634 These functions constitute the user mailbox management library, \fBlibmail\fR.
635 This library is implemented as a shared object, \fBlibmail.so\fR, but is not
636 automatically linked by the C compilation system. Specify \fB-lmail\fR on the
637 \fBcc\fR command line to link with this library. See \fBlibmail\fR(3LIB).
641 .ne 2
643 \fB(3MP)\fR
645 .sp .6
646 .RS 4n
647 These functions constitute the integer mathematical library, \fBlibmp\fR. This
648 library is implemented as a shared object, \fBlibmp.so\fR, but is not
649 automatically linked by the C compilation system. Specify \fB-lmp\fR on the
650 \fBcc\fR command line to link with this library. See \fBlibmp\fR(3LIB).
654 .ne 2
656 \fB(3MPAPI)\fR
658 .sp .6
659 .RS 4n
660 These functions constitute the Common Mulitipath Management library,
661 \fBlibMPAPI\fR. This library is implemented as a shared object,
662 \fBlibMPAPI.so\fR, but is not automatically linked by the C compilation system.
663 Specify \fB-lMPAPI\fR on the \fBcc\fR command line to link with this library.
664 See \fBlibMPAPI\fR(3LIB).
668 .ne 2
670 \fB(3MVEC)\fR
672 .sp .6
673 .RS 4n
674 These functions constitute the vector mathematical library, \fBlibmvec\fR. This
675 library is implemented as a shared object, \fBlibmvec.so\fR, but is not
676 automatically linked by the C compilation system. Specify \fB-lmvec\fR on the
677 \fBcc\fR command line to link with this library. See \fBlibmvec\fR(3LIB).
681 .ne 2
683 \fB(3NVPAIR)\fR
685 .sp .6
686 .RS 4n
687 These functions constitute the name-value pair library, \fBlibnvpair\fR. This
688 library is implemented as a shared object, \fBlibnvpair.so\fR, but is not
689 automatically linked by the C compilation system. Specify \fB-lnvpair\fR on the
690 \fBcc\fR command line to link with this library. See \fBlibnvpair\fR(3LIB).
694 .ne 2
696 \fB(3PAM)\fR
698 .sp .6
699 .RS 4n
700 These functions constitute the pluggable uuthentication module library,
701 \fBlibpam\fR. This library is implemented as a shared object, \fBlibpam.so\fR,
702 but is not automatically linked by the C compilation system. Specify
703 \fB-lpam\fR on the \fBcc\fR command line to link with this library. See
704 \fBlibpam\fR(3LIB).
708 .ne 2
710 \fB(3PAPI)\fR
712 .sp .6
713 .RS 4n
714 These functions constitute the Free Standards Group Open Printing API (PAPI)
715 library, \fBlibpapi\fR. This library is implemented as a shared object,
716 \fBlibpapi.so\fR, but is not automatically linked by the C compilation system.
717 Specify \fB-lpapi\fR on the \fBcc\fR command line to link with this library.
718 See \fBlibpapi\fR(3LIB).
722 .ne 2
724 \fB(3PICL)\fR
726 .sp .6
727 .RS 4n
728 These functions constitute the PICL library, \fBlibpicl\fR. This library is
729 implemented as a shared object, \fBlibpicl.so\fR, but is not automatically
730 linked by the C compilation system. Specify \fB-lpicl\fR on the \fBcc\fR
731 command line to link with this library. See \fBlibpicl\fR(3LIB) and
732 \fBlibpicl\fR(3PICL).
736 .ne 2
738 \fB(3PICLTREE)\fR
740 .sp .6
741 .RS 4n
742 These functions constitute the PICL plug-in library, \fBlibpicltree\fR. This
743 library is implemented as a shared object, \fBlibpicltree.so\fR, but is not
744 automatically linked by the C compilation system. Specify \fB-lpicltree\fR on
745 the \fBcc\fR command line to link with this library. See
746 \fBlibpicltree\fR(3LIB) and \fBlibpicltree\fR(3PICLTREE).
750 .ne 2
752 \fB(3POOL)\fR
754 .sp .6
755 .RS 4n
756 These functions constitute the pool configuration manipulation library,
757 \fBlibpool\fR. This library is implemented as a shared object,
758 \fBlibpool.so\fR, but is not automatically linked by the C compilation system.
759 Specify \fB-lpool\fR on the \fBcc\fR command line to link with this library.
760 See \fBlibpool\fR(3LIB).
764 .ne 2
766 \fB(3PROC)\fR
768 .sp .6
769 .RS 4n
770 These functions consittue the process mainpulation library,
771 \fBlibproc\fR. This library is implemented as a shared object,
772 \fBlibproc.so\fR, but it is not automatically linked by the C compilation
773 system. Specify \fB-lproc\fR on the \fBcc\fR command line to link with this
774 library. See \fBlibproc\fR(3LIB).
778 .ne 2
780 \fB(3PROJECT)\fR
782 .sp .6
783 .RS 4n
784 These functions constitute the project database access library,
785 \fBlibproject\fR. This library is implemented as a shared object,
786 \fBlibproject.so\fR, but is not automatically linked by the C compilation
787 system. Specify \fB-lproject\fR on the \fBcc\fR command line to link with this
788 library. See \fBlibproject\fR(3LIB).
792 .ne 2
794 \fB(3RSM)\fR
796 .sp .6
797 .RS 4n
798 These functions constitute the remote shared memory library, \fBlibrsm\fR. This
799 library is implemented as a shared object, \fBlibrsm.so\fR, but is not
800 automatically linked by the C compilation system. Specify \fB-lrsm\fR on the
801 \fBcc\fR command line to link with this library. See \fBlibrsm\fR(3LIB).
805 .ne 2
807 \fB(3SCF)\fR
809 .sp .6
810 .RS 4n
811 These functions constitute the object-caching memory allocation library,
812 \fBlibscf\fR. This library is implemented as a shared object, \fBlibscf.so\fR,
813 but is not automatically linked by the C compilation system. Specify
814 \fB-lscf\fR on the \fBcc\fR command line to link with this library. See
815 \fBlibscf\fR(3LIB).
819 .ne 2
821 \fB(3SEC)\fR
823 .sp .6
824 .RS 4n
825 These functions constitute the file access control library, \fBlibsec\fR. This
826 library is implemented as a shared object, \fBlibsec.so\fR, but is not
827 automatically linked by the C compilation system. Specify \fB-lsec\fR on the
828 \fBcc\fR command line to link with this library. See \fBlibsec\fR(3LIB).
832 .ne 2
834 \fB(3SECDB)\fR
836 .sp .6
837 .RS 4n
838 These functions constitute the security attributes database library,
839 \fBlibsecdb\fR. This library is implemented as a shared object,
840 \fBlibsecdb.so\fR, but is not automatically linked by the C compilation system.
841 Specify \fB-lsecdb\fR on the \fBcc\fR command line to link with this library.
842 See \fBlibsecdb\fR(3LIB).
846 .ne 2
848 \fB(3SMARTCARD)\fR
850 .sp .6
851 .RS 4n
852 These functions constitute the smartcard library, \fBlibsmartcard\fR. This
853 library is implemented as a shared object, \fBlibsmartcard.so\fR, but is not
854 automatically linked by the C compilation system. Specify \fB-lsmartcard\fR on
855 the \fBcc\fR command line to link with this library. See
856 \fBlibsmartcard\fR(3LIB).
860 .ne 2
862 \fB(3SNMP)\fR
864 .sp .6
865 .RS 4n
866 These functions constitute the SNMP libraries, \fBlibssagent\fR and
867 \fBlibssasnmp\fR. These libraries are implemented as shared objects,
868 \fBlibssagent.so\fR and \fBlibssasnmp.so\fR, respectively, but are not
869 automatically linked by the C compilation system. Specify \fB-lssagent\fR or
870 \fB-lssasnmp\fR on the \fBcc\fR command line to link with these libraries. See
871 \fBlibssagent\fR(3LIB) and \fBlibssasnmp\fR(3LIB).
875 .ne 2
877 \fB(3STMF)\fR
879 .sp .6
880 .RS 4n
881 These functions constitute the SCSI Target Mode Framework library,
882 \fBlibstmf\fR. This library is implemented as a shared object,
883 \fBlibstmf.so\fR, but is not automatically linked by the C compilation system.
884 Specify \fB-lstmf\fR on the \fBcc\fR command line to link with this library.
885 See \fBlibstmf\fR(3LIB).
889 .ne 2
891 \fB(3SYSEVENT)\fR
893 .sp .6
894 .RS 4n
895 These functions constitute the system event library, \fBlibsysevent\fR. This
896 library is implemented as a shared object, \fBlibsysevent.so\fR, but is not
897 automatically linked by the C compilation system. Specify \fB-lsysevent\fR on
898 the \fBcc\fR command line to link with this library. See
899 \fBlibsysevent\fR(3LIB).
903 .ne 2
905 \fB(3TECLA)\fR
907 .sp .6
908 .RS 4n
909 These functions constitute the interactive command-line input library,
910 \fBlibtecla\fR. This library is implemented as a shared object,
911 \fBlibtecla.so\fR, but is not automatically linked by the C compilation system.
912 Specify \fB-ltecla\fR on the \fBcc\fR command line to link with this library.
913 See \fBlibtecla\fR(3LIB).
917 .ne 2
919 \fB(3UUID)\fR
921 .sp .6
922 .RS 4n
923 These functions constitute the universally unique identifier library,
924 \fBlibuuid\fR. This library is implemented as a shared object,
925 \fBlibuuid.so\fR, but is not automatically linked by the C compilation system.
926 Specify \fB-luuid\fR on the \fBcc\fR command line to link with this library.
927 See \fBlibuuid\fR(3LIB).
931 .ne 2
933 \fB(3VOLMGT)\fR
935 .sp .6
936 .RS 4n
937 These functions constitute the volume management library, \fBlibvolmgt\fR. This
938 library is implemented as a shared object, \fBlibvolmgt.so\fR, but is not
939 automatically linked by the C compilation system. Specify \fB-lvolmgt\fR on the
940 \fBcc\fR command line to link with this library. See \fBlibvolmgt\fR(3LIB).
944 .ne 2
946 \fB(3WSREG)\fR
948 .sp .6
949 .RS 4n
950 These functions constitute the product install registry library,
951 \fBlibwsreg\fR. This library is implemented as a shared object,
952 \fBlibwsreg.so\fR, but is not automatically linked by the C compilation system.
953 Specify \fB-lwsreg\fR on the \fBcc\fR command line to link with this library.
954 See \fBlibwsreg\fR(3LIB).
957 .SS "Multimedia Library Functions"
958 .ne 2
960 \fB(3MLIB)\fR
962 .sp .6
963 .RS 4n
964 These functions constitute the mediaLib library, \fBlibmlib\fR. This library is
965 implemented as a shared object, \fBlibmlib.so\fR, but is not automatically
966 linked by the C compilation system. Specify \fB-lmlib\fR on the \fBcc\fR
967 command line to link with this library. See \fBlibmlib\fR(3LIB).
971 .ne 2
973 \fB(3MMS)\fR
975 .sp .6
976 .RS 4n
977 These functions constitute the Media Management System library, \fBlibmms\fR.
978 This library is implemented as a shared object, \fBlibmms.so\fR, but is not
979 automatically linked by the C compilation system. Specify \fB-lmms\fR on the
980 \fBcc\fR command line to link with this library. See \fBlibmms\fR(3LIB).
983 .SH DEFINITIONS
985 A character is any bit pattern able to fit into a byte on the machine. In some
986 international languages, however, a "character" might require more than one
987 byte, and is represented in multi-bytes.
990 The null character is a character with value 0, conventionally represented in
991 the C language as \fB\e\|0\fR\&. A character array is a sequence of characters.
992 A null-terminated character array (a \fIstring\fR) is a sequence of characters,
993 the last of which is the null character. The null string is a character array
994 containing only the terminating null character. A null pointer is the value
995 that is obtained by casting \fB0\fR into a pointer. C guarantees that this
996 value will not match that of any legitimate pointer, so many functions that
997 return pointers return \fINULL\fR to indicate an error. The macro \fINULL\fR is
998 defined in <\fBstdio.h\fR>. Types of the form \fBsize_t\fR are defined in the
999 appropriate headers.
1000 .SH MULTITHREADED APPLICATIONS
1002 Both POSIX threads and Solaris threads can be used within the same application.
1003 Their implementations are completely compatible with each other; however, only
1004 POSIX threads guarantee portability to other POSIX-conforming environments.
1007 The \fBlibpthread\fR(3LIB) and \fBlibthread\fR(3LIB) libraries are implemented
1008 as filters on \fBlibc\fR(3LIB).
1011 When compiling a multithreaded application, the \fB-mt\fR option must be
1012 specified on the command line.
1015 There is no need for a multithreaded application to link with \fB-lthread\fR.
1016 An application must link with \fB-lpthread\fR only when POSIX semantics for
1017 \fBfork\fR(2) are desired. When an application is linked with \fB-lpthread\fR,
1018 a call to \fBfork()\fR assumes the behavior \fBfork1\fR(2) rather than the
1019 default behavior that forks all threads.
1022 When compiling a POSIX-conforming application, either the \fB_POSIX_C_SOURCE\fR
1023 or \fB_POSIX_PTHREAD_SEMANTICS\fR option must be specified on the command line.
1024 For POSIX.1c-conforming applications, define the \fB_POSIX_C_SOURCE\fR flag to
1025 be >= 199506L:
1027 .in +2
1029 \fBcc\fR \fB-mt\fR [ \fIflag\fR... ] \fIfile\fR... \fB-D_POSIX_C_SOURCE=199506L\fR \fB-lpthread\fR
1031 .in -2
1035 For POSIX behavior with the Solaris \fBfork()\fR and \fBfork1()\fR distinction,
1036 compile as follows:
1038 .in +2
1040 \fBcc\fR \fB-mt\fR [ \fIflag\fR... ] \fIfile\fR... \fB-D_POSIX_PTHREAD_SEMANTICS\fR
1042 .in -2
1046 For Solaris threads behavior, compile as follows:
1048 .in +2
1050 \fBcc\fR \fB-mt\fR [ \fIflag\fR... ] \fIfile\fR...
1052 .in -2
1056 Unsafe interfaces should be called only from the main thread to ensure the
1057 application's safety.
1060 MT-Safe interfaces are denoted in the \fBATTRIBUTES\fR section of the functions
1061 and libraries manual pages (see \fBattributes\fR(5)). If a manual page does not
1062 state explicitly that an interface is MT-Safe, the user should assume that the
1063 interface is unsafe.
1064 .SH REALTIME APPLICATIONS
1066 The environment variable \fBLD_BIND_NOW\fR must be set to a non-null value to
1067 enable early binding. Refer to the "When Relocations are Processed" chapter in
1068 \fILinker and Libraries Guide\fR for additional information.
1069 .SH FILES
1070 .ne 2
1072 \fB\fIINCDIR\fR\fR
1074 .RS 15n
1075 usually \fB/usr/include\fR
1079 .ne 2
1081 \fB\fILIBDIR\fR\fR
1083 .RS 15n
1084 usually either \fB/lib\fR or \fB/usr/lib\fR (32-bit) or either \fB/lib/64\fR or
1085 \fB/usr/lib/64\fR (64-bit)
1089 .ne 2
1091 \fB\fILIBDIR\fR\fB/*.so\fR\fR
1093 .RS 15n
1094 shared libraries
1097 .SH ACKNOWLEDGMENTS
1099 Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to
1100 reproduce portions of its copyrighted documentation. Original documentation
1101 from The Open Group can be obtained online at
1102 http://www.opengroup.org/bookstore/\&.
1105 The Institute of Electrical and Electronics Engineers and The Open Group, have
1106 given us permission to reprint portions of their documentation.
1109 In the following statement, the phrase ``this text'' refers to portions of the
1110 system documentation.
1113 Portions of this text are reprinted and reproduced in electronic form in the
1114 SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for
1115 Information Technology -- Portable Operating System Interface (POSIX), The Open
1116 Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
1117 Electrical and Electronics Engineers, Inc and The Open Group.  In the event of
1118 any discrepancy between these versions and the original IEEE and The Open Group
1119 Standard, the original IEEE and The Open Group Standard is the referee
1120 document.  The original Standard can be obtained online at
1121 http://www.opengroup.org/unix/online.html\&.
1124 This notice shall appear on any product containing this material.
1125 .SH SEE ALSO
1127 \fBar\fR(1), \fBld\fR(1), \fBfork\fR(2), \fBstdio\fR(3C), \fBattributes\fR(5),
1128 \fBstandards\fR(5)
1131 \fILinker and Libraries Guide\fR
1134 \fIPerformance Profiling Tools\fR
1137 \fIANSI C Programmer's Guide\fR
1138 .SH DIAGNOSTICS
1140 For functions that return floating-point values, error handling varies
1141 according to compilation mode. Under the \fB-Xt\fR (default) option to
1142 \fBcc\fR, these functions return the conventional values \fB0\fR,
1143 \fB\(+-HUGE\fR, or \fBNaN\fR when the function is undefined for the given
1144 arguments or when the value is not representable. In the \fB-Xa\fR and
1145 \fB-Xc\fR compilation modes, \fB\(+-HUGE_VAL\fR is returned instead of
1146 \fB\(+-HUGE\fR\&. (\fBHUGE_VAL\fR and \fBHUGE\fR are defined in \fBmath.h\fR to
1147 be infinity and the largest-magnitude single-precision number, respectively.)
1148 .SH NOTES
1150 None of the functions, external variables, or macros should be redefined in the
1151 user's programs. Any other name can be redefined without affecting the behavior
1152 of other library functions, but such redefinition might conflict with a
1153 declaration in an included header.
1156 The headers in \fIINCDIR\fR provide function prototypes (function declarations
1157 including the types of arguments) for most of the functions listed in this
1158 manual. Function prototypes allow the compiler to check for correct usage of
1159 these functions in the user's program. The \fBlint\fR program checker can also
1160 be used and will report discrepancies even if the headers are not included with
1161 \fB#include\fR statements. Definitions for Sections 2 and 3C are checked
1162 automatically. Other definitions can be included by using the \fB-l\fR option
1163 to \fBlint\fR. (For example, \fB-lm\fR includes definitions for \fBlibm\fR.)
1164 Use of \fBlint\fR is highly recommended. See the \fBlint\fR chapter in
1165 \fIPerformance Profiling Tools\fR
1168 Users should carefully note the difference between STREAMS and \fIstream\fR.
1169 STREAMS is a set of kernel mechanisms that support the development of network
1170 services and data communication drivers. It is composed of utility routines,
1171 kernel facilities, and a set of data structures. A \fIstream\fR is a file with
1172 its associated buffering. It is declared to be a pointer to a type \fBFILE\fR
1173 defined in \fB<stdio.h>\fR.
1176 In detailed definitions of components, it is sometimes necessary to refer to
1177 symbolic names that are implementation-specific, but which are not necessarily
1178 expected to be accessible to an application program. Many of these symbolic
1179 names describe boundary conditions and system limits.
1182 In this section, for readability, these implementation-specific values are
1183 given symbolic names. These names always appear enclosed in curly brackets to
1184 distinguish them from symbolic names of other implementation-specific constants
1185 that are accessible to application programs by headers. These names are not
1186 necessarily accessible to an application program through a header, although
1187 they can be defined in the documentation for a particular system.
1190 In general, a portable application program should not refer to these symbolic
1191 names in its code. For example, an application program would not be expected to
1192 test the length of an argument list given to a routine to determine if it was
1193 greater than {\fBARG_MAX\fR}.