intro man page on MirBSD

Man page or keyword search:  
man Server   6113 pages
apropos Keyword Search (all sections)
Output format
MirBSD logo
[printable version]

INTRO(3)		   BSD Programmer's Manual		      INTRO(3)

NAME
     intro - introduction to the C libraries

SYNOPSIS
     cc [flags] file ... [-llibrary]

DESCRIPTION
     The manual pages in section 3 provide an overview of the C library func-
     tions, their error returns, and other common definitions and concepts.
     Most of these functions are available from the C library, libc. Other li-
     braries, such as the math library, libm, must be indicated at compile
     time with the -l option of the compiler.

     The various libraries (followed by the loader flag):

     libbfd (-lbfd)
	     GNU binary file descriptor library. Allows applications to
	     operate on object files, regardless of the object file format.
	     See 'info bfd'.

     libc (-lc)
	     Standard C library functions. When using the C compiler cc(1), it
	     is not necessary to supply the loader flag -lc for these func-
	     tions. There are several "libraries" or groups of functions in-
	     cluded inside of libc: the standard I/O routines, database rou-
	     tines, bit operators, string operators, character tests and char-
	     acter operators, DES encryption routines, storage allocation,
	     time functions, signal handling, and more.

     libcompat (-lcompat)
	     Functions which are obsolete but are available for compatibility
	     with 4.3BSD. In particular, a number of system call interfaces
	     provided in previous releases of BSD have been included for
	     source code compatibility. Use of these routines should, for the
	     most part, be avoided. The manual page entry for each compatibil-
	     ity routine indicates the proper interface to use.

     libcrypto (-lcrypto)
	     The OpenSSL crypto library. Implements a range of cryptographic
	     algorithms, providing such functionality as symmetric encryption,
	     public key cryptography, and certificate handling. See crypto(3).

     libcurses (-lcurses)
     libncurses (-lncurses)
     libtermcap (-ltermcap)
     libtermlib (-ltermlib)
	     Terminal-independent screen management routines for two-
	     dimensional non-bitmap display terminals. This implementation is
	     "new curses" and is a replacement for 4.2BSD classic curses. The
	     libraries libncurses, libtermcap, and libtermlib are all hard
	     links to libcurses. This is for compatibility purposes only; new
	     programs should link with -lcurses. See curses(3) and termcap(3).

     libdes (-ldes)
	     Implementation of the DES encryption algorithm. See des_crypt(3).

     libedit (-ledit)
	     Generic line editing and history functions, similar to those
	     found in sh(1). Functions using the libedit library must be
	     linked with the libcurses library, i.e. -ledit -lcurses. See
	     editline(3).

     libevent (-levent)
	     Provides a mechanism to execute a function when a specific event
	     on a file descriptor occurs or after a given time has passed. See
	     event(3).

     libform (-lform)
	     Terminal-independent facilities for composing form screens on
	     character-cell terminals. Functions using the libform library
	     must be linked with the libcurses library, i.e. -lform -lcurses.
	     See form(3).

     libfrtbegin (-lfrtbegin)
     libg2c (-lg2c)
	     Support routines for Fortran functions. These two libraries were
	     separated to allow linking Fortran code with other languages on
	     ELF platforms. See g77(1).

     libgcc (-lgcc)
	     GCC runtime support, including long arithmetic, propolice, and
	     language independent exception support. Note: users do not nor-
	     mally have to explicitly link with this library.

     libgssapi (-lgssapi)
	     The Generic Security Service Application Program Interface (GSS-
	     API) provides security services to callers in a generic fashion.
	     See gssapi(3).

     libiberty (-liberty)
	     Collection of subroutines missing in other operating systems, as
	     well as the C++ demangler and other functions used by the GNU
	     toolchain.

     libkadm5clnt (-lkadm5clnt)
	     Kerberos administration client library, for talking to a Kerberos
	     database. Clients communicate via the network.

     libkadm5srv (-lkadm5srv)
	     Kerberos administration server library, for talking to a Kerberos
	     database. Servers talk directly to the database.

     libkeynote (-lkeynote)
	     System library for the keynote trust-management system. Trust-
	     management systems provide standard, general-purpose mechanisms
	     for specifying application security policies and credentials.
	     Functions using the libkeynote library must be linked with the
	     libm and libcrypto libraries, i.e. -lkeynote -lm -lcrypto. See
	     keynote(3) and keynote(4).

     libkrb5 (-lkrb5)
     libasn1 (-lasn1)
     libcom_err (-lcom_err)
     libhdb (-lhdb)
     libkafs (-lkafs)
	     Kerberos 5 libraries. The libraries libasn1, libcom_err, libhdb,
	     and libkafs are all hard links to libkrb5. See krb5(3).

     libkvm (-lkvm)
	     Kernel memory interface library. Provides a uniform interface for
	     accessing kernel virtual memory images, including live systems
	     and crash dumps. See kvm(3).

     libl (-ll)
     libfl (-lfl)
	     The library for lex(1), a lexical analyzer generator. The libfl
	     library is a hard link to libl.

     libm (-lm)
	     Mathematical functions which comprise the C math library, libm.
	     See math(3).

     libmenu (-lmenu)
	     Terminal-independent facilities for composing menu systems on
	     character-cell terminals. Functions using the libmenu library
	     must be linked with the libcurses library, i.e. -lmenu -lcurses.
	     See menu(3).

     libmilter (-lmilter)
	     The sendmail(8) mail filter API. See the documentation in
	     /usr/share/doc/html/milter/.

     libobjc (-lobjc)
	     Library for Objective C, an object-oriented superset of ANSI C.
	     Use this to compile Objective C programs.

     libocurses (-locurses)
     libotermcap (-lotermcap)
	     Routines to provide the user with a method of updating screens
	     with reasonable optimisation. The ocurses(3) library is compati-
	     ble with the curses library provided in 4.3. libotermcap is the
	     4.3-compatible termcap library, and is a hard link to libocurses.
	     See otermcap(3).

     libopcodes (-lopcodes)
	     GNU opcode library.

     libossaudio (-lossaudio)
	     Provides an emulation of the OSS (Linux) audio interface. This is
	     used only for porting programs. See ossaudio(3).

     libpanel (-lpanel)
	     Terminal-independent facilities for stacked windows on
	     character-cell terminals. Functions using the libpanel library
	     must be linked with the libcurses library, i.e. -lpanel -lcurses.
	     See panel(3).

     libpcap (-lpcap)
	     Packet capture library. All packets on the network, even those
	     destined for other hosts, are accessible through this library.
	     See pcap(3).

     libperl (-lperl)
	     Support routines for perl(1).

     libpthread (-pthread)
	     IEEE Std 1003.1-2001 ("POSIX") threads API and thread scheduler.
	     Threaded applications should use -pthread not -lpthread. See
	     pthreads(3). Note: users do not normally have to explicitly link
	     with this library.

     libreadline (-lreadline)
	     Command line editing interface. See readline(3).

     libresolv (-lresolv)
	     The resolver(3) routines are included in libc. This is just an
	     empty library for legacy applications that want to link with
	     -lresolv.

     librpcsvc (-lrpcsvc)
	     Generated by rpcgen(1), containing stub functions for many common
	     rpc(3) protocols.

     libsectok (-lsectok)
	     Library for communicating with ISO 7816 smartcards. See
	     sectok(3).

     libskey (-lskey)
	     Support library for the S/Key one time password (OTP) authentica-
	     tion toolkit. See skey(3).

     libssl (-lssl)
	     The OpenSSL ssl library implements the Secure Sockets Layer (SSL
	     v2/v3) and Transport Layer Security (TLS v1) protocols. See
	     ssl(3).

     libstdc++ (-lstdc++)
	     GCC subroutine library for C++. See c++(1). Note: users do not
	     normally have to explicitly link with this library.

     libsupc++ (-lsupc++)
	     (GCC 3.3.x systems only) C++ core language support (exceptions,
	     new, typeinfo). Note: users do not normally have to explicitly
	     link with this library.

     libusbhid (-lusbhid)
	     Routines to extract data from USB Human Interface Devices (HIDs).
	     See usbhid(3).

     libutil (-lutil)
	     System utility functions. These are currently check_expire(3),
	     fmt_scaled(3), fparseln(3), getmaxpartitions(3),
	     getrawpartition(3), login(3), login_fbtab(3), opendev(3),
	     opendisk(3), openpty(3), pidfile(3), pw_init(3), pw_lock(3),
	     readlabelfs(3) and uucplock(3).

     libwrap (-lwrap)
	     TCP wrapper access control library. See hosts_access(3) and
	     rfc1413(3).

     liby (-ly)
	     The library for yacc(1), an LALR parser generator.

     libz (-lz)
	     General purpose data compression library. The functions in this
	     library are documented in compress(3). The data format is
	     described in RFCs 1950 - 1952.

     Platform-specific libraries:

     libalpha (-lalpha)
	     Alpha I/O and memory access functions. See inb(2).

     libamd64 (-lamd64)
	     AMD64 I/O and memory access functions. See amd64_get_ioperm(2),
	     amd64_get_ldt(2), amd64_get_mtrr(2), amd64_iopl(2), and
	     amd64_vm86(2).

     libarm (-larm)
	     ARM I/O and memory access functions. See arm_drain_writebuf(2)
	     and arm_sync_icache(2).

     libi386 (-li386)
	     i386 I/O and memory access functions. See i386_get_ioperm(2),
	     i386_get_ldt(2), i386_iopl(2), and i386_vm86(2).

LIBRARY TYPES
     The system libraries are located in /usr/lib. Typically, a library will
     have a number of variants:

	   libc.a
	   libc.so.30.1
	   libc_pic.a

     Libraries with an '.a' suffix are static. When a program is linked
     against a library, all the library code will be linked into the binary.
     This means the binary can be run even when the libraries are unavailable.
     However, it can be inefficient with memory usage. The C compiler, cc(1),
     can be instructed to link statically by specifying the -static flag.

     Libraries with a '.so.X.Y' suffix are dynamic libraries. When code is
     compiled dynamically, the library code that the application needs is not
     linked into the binary. Instead, data structures are added containing in-
     formation about which dynamic libraries to link with. When the binary is
     executed, the run-time linker ld.so(1) reads these data structures, and
     loads them at a virtual address using the mmap(2) system call.

     'X' represents the major number of the library, and 'Y' represents the
     minor number. In general, a binary will be able to use a dynamic library
     with a differing minor number, but the major numbers must match. In the
     example above, a binary linked with minor number '3' would be linkable
     against libc.so.30.1, while a binary linked with major number '31' would
     not.

     The advantages of dynamic libraries are that multiple instances of the
     same program can share address space, and the physical size of the binary
     is smaller. The disadvantage is the added complexity that comes with
     loading the libraries dynamically, and the extra time taken to load the
     libraries. Of course, if the libraries are not available, the binary will
     be unable to execute. The C compiler, cc(1), can be instructed to link
     dynamically by specifying the -shared flag, although on systems that sup-
     port it, this will be the default and need not be specified.

     Libraries with a '_pic.a' suffix contain position-independent code (PIC).
     Normally, compilers produce relocatable code. Relocatable code needs to
     be modified at run-time, depending on where in memory it is to be run.
     PIC code does not need to be modified at run-time, but is less efficient
     than relocatable code. PIC code is used by shared libraries, which can
     make them slower. The C compiler, cc(1), can be instructed to generate
     PIC code, or to link with PIC libraries, by specifying the -fpic or -fPIC
     flags.

     With the exception of dynamic libraries, libraries are generated using
     the ar(1) utility. The libraries contain an index to the contents of the
     library, stored within the library itself. The index lists each symbol
     defined by a member of a library that is a relocatable object file. This
     speeds up linking to the library, and allows routines in the library to
     call each other regardless of their placement within the library. The in-
     dex is created by ranlib(1) and can be viewed using nm(1).

     The building of PIC versions of libraries and dynamic libraries can be
     prevented by setting the variable NOPIC to yes in /etc/mk.conf. See
     mk.conf(5) for more details.

FILES
     /usr/lib/libasn1.a
     /usr/lib/libbfd.a
     /usr/lib/libc.a
     /usr/lib/libcom_err.a
     /usr/lib/libcompat.a
     /usr/lib/libcrypto.a
     /usr/lib/libcurses.a
     /usr/lib/libdes.a
     /usr/lib/libedit.a
     /usr/lib/libevent.a
     /usr/lib/libfl.a
     /usr/lib/libform.a
     /usr/lib/libfrtbegin.a
     /usr/lib/libg2c.a
     /usr/lib/gcc-lib/${ARCH}-unknown-openbsd${OSREV}/${GCCREV}/fpic/libgcc.a
     /usr/lib/libgssapi.a
     /usr/lib/libhdb.a
     /usr/lib/libiberty.a
     /usr/lib/libkadm5clnt.a
     /usr/lib/libkadm5srv.a
     /usr/lib/libkafs.a
     /usr/lib/libkeynote.a
     /usr/lib/libkrb5.a
     /usr/lib/libkvm.a
     /usr/lib/libl.a
     /usr/lib/libm.a
     /usr/lib/libmenu.a
     /usr/lib/libmilter.a
     /usr/lib/libncurses.a
     /usr/lib/libobjc.a
     /usr/lib/libocurses.a
     /usr/lib/libopcodes.a
     /usr/lib/libossaudio.a
     /usr/lib/libotermcap.a
     /usr/lib/libpanel.a
     /usr/lib/libpcap.a
     /usr/lib/libperl.a
     /usr/lib/libpthread.a
     /usr/lib/libreadline.a
     /usr/lib/libresolv.a
     /usr/lib/librpcsvc.a
     /usr/lib/libsectok.a
     /usr/lib/libskey.a
     /usr/lib/libssl.a
     /usr/lib/libstdc++.a
     /usr/lib/libsupc++.a
     /usr/lib/libtermcap.a
     /usr/lib/libtermlib.a
     /usr/lib/libusbhid.a
     /usr/lib/libutil.a
     /usr/lib/libwrap.a
     /usr/lib/liby.a
     /usr/lib/libz.a

     /usr/lib/libalpha.a
     /usr/lib/libamd64.a
     /usr/lib/libarm.a
     /usr/lib/libi386.a

SEE ALSO
     ar(1), c++(1), cc(1), g77(1), gcc-local(1), gprof(1), ld(1), ld.so(1),
     lex(1), nm(1), perl(1), ranlib(1), yacc(1), intro(2), compress(3),
     crypto(3), curses(3), des_crypt(3), editline(3), event(3), form(3),
     hosts_access(3), keynote(3), kvm(3), math(3), menu(3), ocurses(3),
     ossaudio(3), panel(3), pcap(3), pthreads(3), readline(3), resolver(3),
     rfc1413(3), rpc(3), sectok(3), skey(3), ssl(3), stdio(3), termcap(3),
     usbhid(3), keynote(4), mk.conf(5)

HISTORY
     An intro manual appeared in Version 7 AT&T UNIX.

MirOS BSD #10-current		 June 5, 1993				     5
[top]

List of man pages available for MirBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net