\input texinfo                  @c -*- Texinfo -*-
@comment %**start of header (This is for running Texinfo on a region.)
@setfilename libc.info
@settitle The GNU C Library
@c setchapternewpage odd

@comment Tell install-info what to do.
@dircategory Software libraries
@direntry
* Libc: (libc).                 C library.
@end direntry
@include dir-add.texi

@c This tells texinfo.tex to use the real section titles in xrefs in
@c place of the node name, when no section title is explicitly given.
@set xref-automatic-section-title
@c @smallbook
@comment %**end of header (This is for running Texinfo on a region.)

@c sold 0.06/1.09, print run out 21may96
@set EDITION 0.12
@set VERSION 2.8
@set UPDATED 2007-10-27
@set ISBN 1-882114-55-8

@copying
This file documents the GNU C library.

This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU C Library Reference Manual}, for version @value{VERSION}.

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''
@end copying

@iftex
@shorttitlepage The GNU C Library Reference Manual
@end iftex
@titlepage
@center @titlefont{The GNU C Library}
@sp 1
@center @titlefont{Reference Manual}
@sp 2
@center Sandra Loosemore
@center with
@center Richard M. Stallman, Roland McGrath, Andrew Oram, and Ulrich Drepper
@sp 3
@center Edition @value{EDITION}
@sp 1
@center last updated @value{UPDATED}
@sp 1
@center for version @value{VERSION}
@page
@vskip 0pt plus 1filll
@insertcopying

@sp 2
Published by the Free Software Foundation @*
59 Temple Place -- Suite 330, @*
Boston, MA 02111-1307 USA @*
@c ISBN @value{ISBN} @*

@sp 2
Cover art for the Free Software Foundation's printed edition
by Etienne Suvasa.

@end titlepage

@shortcontents
@contents

@ifnottex
@node Top, Introduction, (dir), (dir)
@top Main Menu
This is Edition @value{EDITION}, last updated @value{UPDATED}, of
@cite{The GNU C Library Reference Manual}, for Version @value{VERSION}
of the GNU C Library.
@end ifnottex

@include top-menu.texi
@include chapters.texi

@node Free Manuals, Copying, Contributors, Top
@include freemanuals.texi

@set lgpl-appendix
@node Copying, Documentation License, Free Manuals, Top
@include lesser.texi

@node Documentation License, Concept Index, Copying, Top
@include fdl.texi

@node Concept Index, Type Index, Documentation License, Top
@unnumbered Concept Index

@printindex cp

@node Type Index, Function Index, Concept Index, Top
@unnumbered Type Index

@printindex tp

@node Function Index, Variable Index, Type Index, Top
@unnumbered Function and Macro Index

@printindex fn

@node Variable Index, File Index, Function Index, Top
@unnumbered Variable and Constant Macro Index

@printindex vr

@node File Index, , Variable Index, Top
@unnumbered Program and File Index

@printindex pg


@bye
