gap-io →
4.3.1+ds-1 →
armhf → 2014-07-14 12:10:20
sbuild (Debian sbuild) 0.63.2 (18 Aug 2012) on bm-wb-03
╔══════════════════════════════════════════════════════════════════════════════╗
║ gap-io 4.3.1+ds-1 (armhf) 14 Jul 2014 11:51 ║
╚══════════════════════════════════════════════════════════════════════════════╝
Package: gap-io
Version: 4.3.1+ds-1
Source Version: 4.3.1+ds-1
Distribution: jessie-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf
I: NOTICE: Log filtering will replace 'build/gap-io-4ePIh4/gap-io-4.3.1+ds' with '«PKGBUILDDIR»'
I: NOTICE: Log filtering will replace 'build/gap-io-4ePIh4' with '«BUILDDIR»'
I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/jessie-staging-armhf-sbuild-dca13abf-1724-458a-93f7-62ffe35ec9b2' with '«CHROOT»'
┌──────────────────────────────────────────────────────────────────────────────┐
│ Update chroot │
└──────────────────────────────────────────────────────────────────────────────┘
Get:1 http://172.17.0.1 jessie-staging InRelease [11.3 kB]
Get:2 http://172.17.0.1 jessie-staging/main Sources [7394 kB]
Get:3 http://172.17.0.1 jessie-staging/main armhf Packages [8352 kB]
Ign http://172.17.0.1 jessie-staging/main Translation-en
Fetched 15.8 MB in 29s (543 kB/s)
Reading package lists...
┌──────────────────────────────────────────────────────────────────────────────┐
│ Fetch source files │
└──────────────────────────────────────────────────────────────────────────────┘
Check APT
─────────
Checking available source versions...
Download source files with APT
──────────────────────────────
Reading package lists...
Building dependency tree...
Reading state information...
NOTICE: 'gap-io' packaging is maintained in the 'Git' version control system at:
git://anonscm.debian.org/debian-science/packages/gap-io.git
Need to get 101 kB of source archives.
Get:1 http://172.17.0.1/private/ jessie-staging/main gap-io 4.3.1+ds-1 (dsc) [2112 B]
Get:2 http://172.17.0.1/private/ jessie-staging/main gap-io 4.3.1+ds-1 (tar) [93.5 kB]
Get:3 http://172.17.0.1/private/ jessie-staging/main gap-io 4.3.1+ds-1 (diff) [5360 B]
Fetched 101 kB in 0s (1805 kB/s)
Download complete and in download only mode
Check arch
──────────
Merged Build-Depends: build-essential, fakeroot
Filtered Build-Depends: build-essential, fakeroot
dpkg-deb: building package `sbuild-build-depends-core-dummy' in `/«BUILDDIR»/resolver-hhFAfh/apt_archive/sbuild-build-depends-core-dummy.deb'.
OK
Reading package lists...
┌──────────────────────────────────────────────────────────────────────────────┐
│ Install core build dependencies (apt-based resolver) │
└──────────────────────────────────────────────────────────────────────────────┘
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
sbuild-build-depends-core-dummy
debconf: delaying package configuration, since apt-utils is not installed
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/818 B of archives.
After this operation, 0 B of additional disk space will be used.
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 11827 files and directories currently installed.)
Preparing to unpack .../sbuild-build-depends-core-dummy.deb ...
Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ...
Setting up sbuild-build-depends-core-dummy (0.invalid.0) ...
Merged Build-Depends: base-files, base-passwd, bash, bsdutils, coreutils, dash, debianutils, diffutils, dpkg, e2fsprogs, findutils, grep, gzip, hostname, libc-bin, login, mount, ncurses-base, ncurses-bin, perl-base, sed, sysvinit, sysvinit-utils, tar, util-linux, libc6-dev | libc-dev, gcc (>= 4:4.4.3), g++ (>= 4:4.4.3), make, dpkg-dev (>= 1.13.5), debhelper (>= 9), autotools-dev, libtool, dh-autoreconf, autoconf-archive, gap (>= 4r7p5), gap-dev (>= 4r7p5), gap-gapdoc, libgmp-dev, texlive-latex-extra, texlive-fonts-recommended
Filtered Build-Depends: base-files, base-passwd, bash, bsdutils, coreutils, dash, debianutils, diffutils, dpkg, e2fsprogs, findutils, grep, gzip, hostname, libc-bin, login, mount, ncurses-base, ncurses-bin, perl-base, sed, sysvinit, sysvinit-utils, tar, util-linux, libc6-dev, gcc (>= 4:4.4.3), g++ (>= 4:4.4.3), make, dpkg-dev (>= 1.13.5), debhelper (>= 9), autotools-dev, libtool, dh-autoreconf, autoconf-archive, gap (>= 4r7p5), gap-dev (>= 4r7p5), gap-gapdoc, libgmp-dev, texlive-latex-extra, texlive-fonts-recommended
dpkg-deb: building package `sbuild-build-depends-gap-io-dummy' in `/«BUILDDIR»/resolver-nFp1aI/apt_archive/sbuild-build-depends-gap-io-dummy.deb'.
OK
Reading package lists...
┌──────────────────────────────────────────────────────────────────────────────┐
│ Install gap-io build dependencies (apt-based resolver) │
└──────────────────────────────────────────────────────────────────────────────┘
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
autoconf autoconf-archive automake autopoint autotools-dev bsdmainutils
debhelper dh-autoreconf file fontconfig-config fonts-dejavu-core gap
gap-core gap-dev gap-gapdoc gap-libs gap-online-help gettext gettext-base
groff-base intltool-debian libasprintf0c2 libavahi-client3
libavahi-common-data libavahi-common3 libcroco3 libcups2 libcupsfilters1
libcupsimage2 libexpat1 libffi6 libfontconfig1 libfreetype6 libglib2.0-0
libgmp-dev libgmpxx4ldbl libgnutls-deb0-28 libgraphite2-3 libgs9
libgs9-common libgssapi-krb5-2 libharfbuzz-icu0 libharfbuzz0b libhogweed2
libice6 libicu52 libidn11 libijs-0.35 libjasper1 libjbig0 libjbig2dec0
libjpeg8 libk5crypto3 libkeyutils1 libkpathsea6 libkrb5-3 libkrb5support0
liblcms2-2 libmagic1 libnettle4 libopenjpeg5 libp11-kit0 libpaper-utils
libpaper1 libpipeline1 libpixman-1-0 libpng12-0 libpoppler46 libpotrace0
libptexenc1 libsigsegv2 libsm6 libsynctex1 libtasn1-6 libtiff5 libtool
libunistring0 libx11-6 libx11-data libxau6 libxaw7 libxcb1 libxdmcp6
libxext6 libxi6 libxml2 libxmu6 libxpm4 libxt6 libzzip-0-13 m4 man-db
po-debconf poppler-data preview-latex-style tex-common texlive-base
texlive-binaries texlive-fonts-recommended texlive-latex-base
texlive-latex-extra texlive-latex-recommended texlive-pictures ucf
x11-common xdg-utils
Suggested packages:
gnu-standards autoconf-doc wamerican wordlist whois vacation dh-make
gap-small-groups-extra gap-character-tables gap-table-of-marks gettext-doc
groff cups-common libgmp10-doc libmpfr-dev gnutls-bin krb5-doc krb5-user
libjasper-runtime liblcms2-utils libtool-doc automaken gfortran
fortran95-compiler gcj-jdk less www-browser libmail-box-perl poppler-utils
ghostscript fonts-japanese-mincho fonts-ipafont-mincho fonts-japanese-gothic
fonts-ipafont-gothic fonts-arphic-ukai fonts-arphic-uming fonts-nanum gv
postscript-viewer perl-tk xpdf-reader pdf-viewer python-pygments
libfile-which-perl dot2tex libtcltk-ruby gvfs-bin
Recommended packages:
gap-doc gap-trans-groups gap-prim-groups gap-small-groups curl wget lynx-cur
libasprintf-dev libgettextpo-dev libglib2.0-data shared-mime-info
fonts-droid krb5-locales libltdl-dev xml-core libmail-sendmail-perl lmodern
python ruby wish texlive-fonts-recommended-doc tipa tex-gyre
texlive-latex-base-doc texlive-latex-extra-doc texlive-latex-recommended-doc
prosper texlive-pictures-doc prerex libfile-mimeinfo-perl libnet-dbus-perl
libx11-protocol-perl x11-utils x11-xserver-utils
The following NEW packages will be installed:
autoconf autoconf-archive automake autopoint autotools-dev bsdmainutils
debhelper dh-autoreconf file fontconfig-config fonts-dejavu-core gap
gap-core gap-dev gap-gapdoc gap-libs gap-online-help gettext gettext-base
groff-base intltool-debian libasprintf0c2 libavahi-client3
libavahi-common-data libavahi-common3 libcroco3 libcups2 libcupsfilters1
libcupsimage2 libexpat1 libffi6 libfontconfig1 libfreetype6 libglib2.0-0
libgmp-dev libgmpxx4ldbl libgnutls-deb0-28 libgraphite2-3 libgs9
libgs9-common libgssapi-krb5-2 libharfbuzz-icu0 libharfbuzz0b libhogweed2
libice6 libicu52 libidn11 libijs-0.35 libjasper1 libjbig0 libjbig2dec0
libjpeg8 libk5crypto3 libkeyutils1 libkpathsea6 libkrb5-3 libkrb5support0
liblcms2-2 libmagic1 libnettle4 libopenjpeg5 libp11-kit0 libpaper-utils
libpaper1 libpipeline1 libpixman-1-0 libpng12-0 libpoppler46 libpotrace0
libptexenc1 libsigsegv2 libsm6 libsynctex1 libtasn1-6 libtiff5 libtool
libunistring0 libx11-6 libx11-data libxau6 libxaw7 libxcb1 libxdmcp6
libxext6 libxi6 libxml2 libxmu6 libxpm4 libxt6 libzzip-0-13 m4 man-db
po-debconf poppler-data preview-latex-style
sbuild-build-depends-gap-io-dummy tex-common texlive-base texlive-binaries
texlive-fonts-recommended texlive-latex-base texlive-latex-extra
texlive-latex-recommended texlive-pictures ucf x11-common xdg-utils
0 upgraded, 107 newly installed, 0 to remove and 0 not upgraded.
Need to get 89.6 MB/89.6 MB of archives.
After this operation, 336 MB of additional disk space will be used.
Get:1 http://172.17.0.1/private/ jessie-staging/main libpipeline1 armhf 1.3.0-1 [21.1 kB]
Get:2 http://172.17.0.1/private/ jessie-staging/main groff-base armhf 1.22.2-6 [962 kB]
Get:3 http://172.17.0.1/private/ jessie-staging/main bsdmainutils armhf 9.0.5 [206 kB]
Get:4 http://172.17.0.1/private/ jessie-staging/main man-db armhf 2.6.7.1-1 [964 kB]
Get:5 http://172.17.0.1/private/ jessie-staging/main libasprintf0c2 armhf 0.18.3.2-3 [29.3 kB]
Get:6 http://172.17.0.1/private/ jessie-staging/main libnettle4 armhf 2.7.1-2 [177 kB]
Get:7 http://172.17.0.1/private/ jessie-staging/main libhogweed2 armhf 2.7.1-2 [116 kB]
Get:8 http://172.17.0.1/private/ jessie-staging/main libffi6 armhf 3.1-2 [18.1 kB]
Get:9 http://172.17.0.1/private/ jessie-staging/main libp11-kit0 armhf 0.20.2-5 [66.1 kB]
Get:10 http://172.17.0.1/private/ jessie-staging/main libtasn1-6 armhf 4.0-2 [42.0 kB]
Get:11 http://172.17.0.1/private/ jessie-staging/main libgnutls-deb0-28 armhf 3.2.15-2 [605 kB]
Get:12 http://172.17.0.1/private/ jessie-staging/main libkeyutils1 armhf 1.5.9-4 [10.8 kB]
Get:13 http://172.17.0.1/private/ jessie-staging/main libkrb5support0 armhf 1.12.1+dfsg-3 [52.8 kB]
Get:14 http://172.17.0.1/private/ jessie-staging/main libk5crypto3 armhf 1.12.1+dfsg-3 [106 kB]
Get:15 http://172.17.0.1/private/ jessie-staging/main libkrb5-3 armhf 1.12.1+dfsg-3 [248 kB]
Get:16 http://172.17.0.1/private/ jessie-staging/main libgssapi-krb5-2 armhf 1.12.1+dfsg-3 [122 kB]
Get:17 http://172.17.0.1/private/ jessie-staging/main libidn11 armhf 1.28-2 [154 kB]
Get:18 http://172.17.0.1/private/ jessie-staging/main libmagic1 armhf 1:5.19-1 [232 kB]
Get:19 http://172.17.0.1/private/ jessie-staging/main libxml2 armhf 2.9.1+dfsg1-3 [836 kB]
Get:20 http://172.17.0.1/private/ jessie-staging/main autoconf-archive all 20140228-1 [781 kB]
Get:21 http://172.17.0.1/private/ jessie-staging/main libavahi-common-data armhf 0.6.31-4 [98.4 kB]
Get:22 http://172.17.0.1/private/ jessie-staging/main libavahi-common3 armhf 0.6.31-4 [48.2 kB]
Get:23 http://172.17.0.1/private/ jessie-staging/main libavahi-client3 armhf 0.6.31-4 [49.8 kB]
Get:24 http://172.17.0.1/private/ jessie-staging/main libglib2.0-0 armhf 2.40.0-3 [2247 kB]
Get:25 http://172.17.0.1/private/ jessie-staging/main libcroco3 armhf 0.6.8-2 [119 kB]
Get:26 http://172.17.0.1/private/ jessie-staging/main libcups2 armhf 1.7.3-6 [249 kB]
Get:27 http://172.17.0.1/private/ jessie-staging/main libcupsimage2 armhf 1.7.3-6 [112 kB]
Get:28 http://172.17.0.1/private/ jessie-staging/main libjpeg8 armhf 8d1-1 [108 kB]
Get:29 http://172.17.0.1/private/ jessie-staging/main libpng12-0 armhf 1.2.50-1 [180 kB]
Get:30 http://172.17.0.1/private/ jessie-staging/main libjbig0 armhf 2.0-2.1 [26.8 kB]
Get:31 http://172.17.0.1/private/ jessie-staging/main libtiff5 armhf 4.0.3-9 [191 kB]
Get:32 http://172.17.0.1/private/ jessie-staging/main libcupsfilters1 armhf 1.0.54-3+b1 [93.1 kB]
Get:33 http://172.17.0.1/private/ jessie-staging/main libexpat1 armhf 2.1.0-6 [60.2 kB]
Get:34 http://172.17.0.1/private/ jessie-staging/main libfreetype6 armhf 2.5.2-1 [397 kB]
Get:35 http://172.17.0.1/private/ jessie-staging/main ucf all 3.0030 [69.7 kB]
Get:36 http://172.17.0.1/private/ jessie-staging/main fonts-dejavu-core all 2.34-1 [1047 kB]
Get:37 http://172.17.0.1/private/ jessie-staging/main fontconfig-config all 2.11.0-5 [273 kB]
Get:38 http://172.17.0.1/private/ jessie-staging/main libfontconfig1 armhf 2.11.0-5 [310 kB]
Get:39 http://172.17.0.1/private/ jessie-staging/main libgmpxx4ldbl armhf 2:6.0.0+dfsg-4+rpi1 [21.1 kB]
Get:40 http://172.17.0.1/private/ jessie-staging/main libgraphite2-3 armhf 1.2.4-3 [48.2 kB]
Get:41 http://172.17.0.1/private/ jessie-staging/main libharfbuzz0b armhf 0.9.29-1 [435 kB]
Get:42 http://172.17.0.1/private/ jessie-staging/main libicu52 armhf 52.1-4 [6522 kB]
Get:43 http://172.17.0.1/private/ jessie-staging/main libharfbuzz-icu0 armhf 0.9.29-1 [336 kB]
Get:44 http://172.17.0.1/private/ jessie-staging/main x11-common all 1:7.7+7 [287 kB]
Get:45 http://172.17.0.1/private/ jessie-staging/main libice6 armhf 2:1.0.8-2 [56.2 kB]
Get:46 http://172.17.0.1/private/ jessie-staging/main libijs-0.35 armhf 0.35-10 [18.5 kB]
Get:47 http://172.17.0.1/private/ jessie-staging/main libjasper1 armhf 1.900.1-debian1-2 [109 kB]
Get:48 http://172.17.0.1/private/ jessie-staging/main liblcms2-2 armhf 2.6-3 [113 kB]
Get:49 http://172.17.0.1/private/ jessie-staging/main libpaper1 armhf 1.1.24+nmu3 [20.7 kB]
Get:50 http://172.17.0.1/private/ jessie-staging/main libpixman-1-0 armhf 0.32.4-1 [476 kB]
Get:51 http://172.17.0.1/private/ jessie-staging/main libopenjpeg5 armhf 1.5.2-2 [93.5 kB]
Get:52 http://172.17.0.1/private/ jessie-staging/main libpoppler46 armhf 0.26.2-2 [1073 kB]
Get:53 http://172.17.0.1/private/ jessie-staging/main libsigsegv2 armhf 2.10-4 [28.2 kB]
Get:54 http://172.17.0.1/private/ jessie-staging/main libsm6 armhf 2:1.2.1-2 [32.5 kB]
Get:55 http://172.17.0.1/private/ jessie-staging/main libunistring0 armhf 0.9.3-5 [408 kB]
Get:56 http://172.17.0.1/private/ jessie-staging/main libxau6 armhf 1:1.0.8-1 [19.9 kB]
Get:57 http://172.17.0.1/private/ jessie-staging/main libxdmcp6 armhf 1:1.1.1-1 [24.6 kB]
Get:58 http://172.17.0.1/private/ jessie-staging/main libxcb1 armhf 1.10-3 [38.1 kB]
Get:59 http://172.17.0.1/private/ jessie-staging/main libx11-data all 2:1.6.2-2 [126 kB]
Get:60 http://172.17.0.1/private/ jessie-staging/main libx11-6 armhf 2:1.6.2-2 [657 kB]
Get:61 http://172.17.0.1/private/ jessie-staging/main libxext6 armhf 2:1.3.2-1 [51.1 kB]
Get:62 http://172.17.0.1/private/ jessie-staging/main libxt6 armhf 1:1.1.4-1 [183 kB]
Get:63 http://172.17.0.1/private/ jessie-staging/main libxmu6 armhf 2:1.1.2-1 [50.8 kB]
Get:64 http://172.17.0.1/private/ jessie-staging/main libxpm4 armhf 1:3.5.10-1 [44.9 kB]
Get:65 http://172.17.0.1/private/ jessie-staging/main libxaw7 armhf 2:1.0.12-1 [158 kB]
Get:66 http://172.17.0.1/private/ jessie-staging/main libxi6 armhf 2:1.7.2-1 [76.8 kB]
Get:67 http://172.17.0.1/private/ jessie-staging/main libzzip-0-13 armhf 0.13.62-2 [51.0 kB]
Get:68 http://172.17.0.1/private/ jessie-staging/main poppler-data all 0.4.6-5 [1489 kB]
Get:69 http://172.17.0.1/private/ jessie-staging/main file armhf 1:5.19-1 [57.7 kB]
Get:70 http://172.17.0.1/private/ jessie-staging/main gettext-base armhf 0.18.3.2-3 [111 kB]
Get:71 http://172.17.0.1/private/ jessie-staging/main m4 armhf 1.4.17-4 [238 kB]
Get:72 http://172.17.0.1/private/ jessie-staging/main autoconf all 2.69-7 [340 kB]
Get:73 http://172.17.0.1/private/ jessie-staging/main autotools-dev all 20140510.1 [70.3 kB]
Get:74 http://172.17.0.1/private/ jessie-staging/main automake all 1:1.14.1-3 [725 kB]
Get:75 http://172.17.0.1/private/ jessie-staging/main autopoint all 0.18.3.2-3 [393 kB]
Get:76 http://172.17.0.1/private/ jessie-staging/main gettext armhf 0.18.3.2-3 [1133 kB]
Get:77 http://172.17.0.1/private/ jessie-staging/main intltool-debian all 0.35.0+20060710.1 [29.8 kB]
Get:78 http://172.17.0.1/private/ jessie-staging/main po-debconf all 1.0.16+nmu3 [220 kB]
Get:79 http://172.17.0.1/private/ jessie-staging/main debhelper all 9.20140613 [692 kB]
Get:80 http://172.17.0.1/private/ jessie-staging/main libtool armhf 2.4.2-1.7 [505 kB]
Get:81 http://172.17.0.1/private/ jessie-staging/main dh-autoreconf all 9 [15.5 kB]
Get:82 http://172.17.0.1/private/ jessie-staging/main gap-gapdoc all 1.5.1-1 [1640 kB]
Get:83 http://172.17.0.1/private/ jessie-staging/main gap-libs all 4r7p5-1 [2520 kB]
Get:84 http://172.17.0.1/private/ jessie-staging/main gap-core armhf 4r7p5-1 [575 kB]
Get:85 http://172.17.0.1/private/ jessie-staging/main gap-online-help all 4r7p5-1 [1189 kB]
Get:86 http://172.17.0.1/private/ jessie-staging/main gap all 4r7p5-1 [9934 B]
Get:87 http://172.17.0.1/private/ jessie-staging/main libgmp-dev armhf 2:6.0.0+dfsg-4+rpi1 [553 kB]
Get:88 http://172.17.0.1/private/ jessie-staging/main gap-dev armhf 4r7p5-1 [1774 kB]
Get:89 http://172.17.0.1/private/ jessie-staging/main libjbig2dec0 armhf 0.11+20120125-1 [46.4 kB]
Get:90 http://172.17.0.1/private/ jessie-staging/main libgs9-common all 9.05~dfsg-8.1 [1981 kB]
Get:91 http://172.17.0.1/private/ jessie-staging/main libgs9 armhf 9.05~dfsg-8.1 [1564 kB]
Get:92 http://172.17.0.1/private/ jessie-staging/main libkpathsea6 armhf 2014.20140528.34243-4 [143 kB]
Get:93 http://172.17.0.1/private/ jessie-staging/main libpaper-utils armhf 1.1.24+nmu3 [17.0 kB]
Get:94 http://172.17.0.1/private/ jessie-staging/main libpotrace0 armhf 1.11-2 [22.6 kB]
Get:95 http://172.17.0.1/private/ jessie-staging/main libptexenc1 armhf 2014.20140528.34243-4 [51.3 kB]
Get:96 http://172.17.0.1/private/ jessie-staging/main libsynctex1 armhf 2014.20140528.34243-4 [53.9 kB]
Get:97 http://172.17.0.1/private/ jessie-staging/main tex-common all 5.02 [625 kB]
Get:98 http://172.17.0.1/private/ jessie-staging/main preview-latex-style all 11.87-1 [317 kB]
Get:99 http://172.17.0.1/private/ jessie-staging/main xdg-utils all 1.1.0~rc1+git20111210-7.1 [64.6 kB]
Get:100 http://172.17.0.1/private/ jessie-staging/main texlive-binaries armhf 2014.20140528.34243-4 [5261 kB]
Get:101 http://172.17.0.1/private/ jessie-staging/main texlive-base all 2014.20140626-1 [17.7 MB]
Get:102 http://172.17.0.1/private/ jessie-staging/main texlive-fonts-recommended all 2014.20140626-1 [5747 kB]
Get:103 http://172.17.0.1/private/ jessie-staging/main texlive-latex-base all 2014.20140626-1 [866 kB]
Get:104 http://172.17.0.1/private/ jessie-staging/main texlive-latex-recommended all 2014.20140626-1 [7522 kB]
Get:105 http://172.17.0.1/private/ jessie-staging/main texlive-pictures all 2014.20140626-1 [3008 kB]
Get:106 http://172.17.0.1/private/ jessie-staging/main texlive-latex-extra all 2014.20140626-1 [7363 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 89.6 MB in 24s (3607 kB/s)
Selecting previously unselected package libpipeline1:armhf.
(Reading database ... 11827 files and directories currently installed.)
Preparing to unpack .../libpipeline1_1.3.0-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.3.0-1) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../groff-base_1.22.2-6_armhf.deb ...
Unpacking groff-base (1.22.2-6) ...
Selecting previously unselected package bsdmainutils.
Preparing to unpack .../bsdmainutils_9.0.5_armhf.deb ...
Unpacking bsdmainutils (9.0.5) ...
Selecting previously unselected package man-db.
Preparing to unpack .../man-db_2.6.7.1-1_armhf.deb ...
Unpacking man-db (2.6.7.1-1) ...
Selecting previously unselected package libasprintf0c2:armhf.
Preparing to unpack .../libasprintf0c2_0.18.3.2-3_armhf.deb ...
Unpacking libasprintf0c2:armhf (0.18.3.2-3) ...
Selecting previously unselected package libnettle4:armhf.
Preparing to unpack .../libnettle4_2.7.1-2_armhf.deb ...
Unpacking libnettle4:armhf (2.7.1-2) ...
Selecting previously unselected package libhogweed2:armhf.
Preparing to unpack .../libhogweed2_2.7.1-2_armhf.deb ...
Unpacking libhogweed2:armhf (2.7.1-2) ...
Selecting previously unselected package libffi6:armhf.
Preparing to unpack .../libffi6_3.1-2_armhf.deb ...
Unpacking libffi6:armhf (3.1-2) ...
Selecting previously unselected package libp11-kit0:armhf.
Preparing to unpack .../libp11-kit0_0.20.2-5_armhf.deb ...
Unpacking libp11-kit0:armhf (0.20.2-5) ...
Selecting previously unselected package libtasn1-6:armhf.
Preparing to unpack .../libtasn1-6_4.0-2_armhf.deb ...
Unpacking libtasn1-6:armhf (4.0-2) ...
Selecting previously unselected package libgnutls-deb0-28:armhf.
Preparing to unpack .../libgnutls-deb0-28_3.2.15-2_armhf.deb ...
Unpacking libgnutls-deb0-28:armhf (3.2.15-2) ...
Selecting previously unselected package libkeyutils1:armhf.
Preparing to unpack .../libkeyutils1_1.5.9-4_armhf.deb ...
Unpacking libkeyutils1:armhf (1.5.9-4) ...
Selecting previously unselected package libkrb5support0:armhf.
Preparing to unpack .../libkrb5support0_1.12.1+dfsg-3_armhf.deb ...
Unpacking libkrb5support0:armhf (1.12.1+dfsg-3) ...
Selecting previously unselected package libk5crypto3:armhf.
Preparing to unpack .../libk5crypto3_1.12.1+dfsg-3_armhf.deb ...
Unpacking libk5crypto3:armhf (1.12.1+dfsg-3) ...
Selecting previously unselected package libkrb5-3:armhf.
Preparing to unpack .../libkrb5-3_1.12.1+dfsg-3_armhf.deb ...
Unpacking libkrb5-3:armhf (1.12.1+dfsg-3) ...
Selecting previously unselected package libgssapi-krb5-2:armhf.
Preparing to unpack .../libgssapi-krb5-2_1.12.1+dfsg-3_armhf.deb ...
Unpacking libgssapi-krb5-2:armhf (1.12.1+dfsg-3) ...
Selecting previously unselected package libidn11:armhf.
Preparing to unpack .../libidn11_1.28-2_armhf.deb ...
Unpacking libidn11:armhf (1.28-2) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../libmagic1_1%3a5.19-1_armhf.deb ...
Unpacking libmagic1:armhf (1:5.19-1) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../libxml2_2.9.1+dfsg1-3_armhf.deb ...
Unpacking libxml2:armhf (2.9.1+dfsg1-3) ...
Selecting previously unselected package autoconf-archive.
Preparing to unpack .../autoconf-archive_20140228-1_all.deb ...
Unpacking autoconf-archive (20140228-1) ...
Selecting previously unselected package libavahi-common-data:armhf.
Preparing to unpack .../libavahi-common-data_0.6.31-4_armhf.deb ...
Unpacking libavahi-common-data:armhf (0.6.31-4) ...
Selecting previously unselected package libavahi-common3:armhf.
Preparing to unpack .../libavahi-common3_0.6.31-4_armhf.deb ...
Unpacking libavahi-common3:armhf (0.6.31-4) ...
Selecting previously unselected package libavahi-client3:armhf.
Preparing to unpack .../libavahi-client3_0.6.31-4_armhf.deb ...
Unpacking libavahi-client3:armhf (0.6.31-4) ...
Selecting previously unselected package libglib2.0-0:armhf.
Preparing to unpack .../libglib2.0-0_2.40.0-3_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.40.0-3) ...
Selecting previously unselected package libcroco3:armhf.
Preparing to unpack .../libcroco3_0.6.8-2_armhf.deb ...
Unpacking libcroco3:armhf (0.6.8-2) ...
Selecting previously unselected package libcups2:armhf.
Preparing to unpack .../libcups2_1.7.3-6_armhf.deb ...
Unpacking libcups2:armhf (1.7.3-6) ...
Selecting previously unselected package libcupsimage2:armhf.
Preparing to unpack .../libcupsimage2_1.7.3-6_armhf.deb ...
Unpacking libcupsimage2:armhf (1.7.3-6) ...
Selecting previously unselected package libjpeg8:armhf.
Preparing to unpack .../libjpeg8_8d1-1_armhf.deb ...
Unpacking libjpeg8:armhf (8d1-1) ...
Selecting previously unselected package libpng12-0:armhf.
Preparing to unpack .../libpng12-0_1.2.50-1_armhf.deb ...
Unpacking libpng12-0:armhf (1.2.50-1) ...
Selecting previously unselected package libjbig0:armhf.
Preparing to unpack .../libjbig0_2.0-2.1_armhf.deb ...
Unpacking libjbig0:armhf (2.0-2.1) ...
Selecting previously unselected package libtiff5:armhf.
Preparing to unpack .../libtiff5_4.0.3-9_armhf.deb ...
Unpacking libtiff5:armhf (4.0.3-9) ...
Selecting previously unselected package libcupsfilters1:armhf.
Preparing to unpack .../libcupsfilters1_1.0.54-3+b1_armhf.deb ...
Unpacking libcupsfilters1:armhf (1.0.54-3+b1) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../libexpat1_2.1.0-6_armhf.deb ...
Unpacking libexpat1:armhf (2.1.0-6) ...
Selecting previously unselected package libfreetype6:armhf.
Preparing to unpack .../libfreetype6_2.5.2-1_armhf.deb ...
Unpacking libfreetype6:armhf (2.5.2-1) ...
Selecting previously unselected package ucf.
Preparing to unpack .../archives/ucf_3.0030_all.deb ...
Moving old data out of the way
Unpacking ucf (3.0030) ...
Selecting previously unselected package fonts-dejavu-core.
Preparing to unpack .../fonts-dejavu-core_2.34-1_all.deb ...
Unpacking fonts-dejavu-core (2.34-1) ...
Selecting previously unselected package fontconfig-config.
Preparing to unpack .../fontconfig-config_2.11.0-5_all.deb ...
Unpacking fontconfig-config (2.11.0-5) ...
Selecting previously unselected package libfontconfig1:armhf.
Preparing to unpack .../libfontconfig1_2.11.0-5_armhf.deb ...
Unpacking libfontconfig1:armhf (2.11.0-5) ...
Selecting previously unselected package libgmpxx4ldbl:armhf.
Preparing to unpack .../libgmpxx4ldbl_2%3a6.0.0+dfsg-4+rpi1_armhf.deb ...
Unpacking libgmpxx4ldbl:armhf (2:6.0.0+dfsg-4+rpi1) ...
Selecting previously unselected package libgraphite2-3:armhf.
Preparing to unpack .../libgraphite2-3_1.2.4-3_armhf.deb ...
Unpacking libgraphite2-3:armhf (1.2.4-3) ...
Selecting previously unselected package libharfbuzz0b:armhf.
Preparing to unpack .../libharfbuzz0b_0.9.29-1_armhf.deb ...
Unpacking libharfbuzz0b:armhf (0.9.29-1) ...
Selecting previously unselected package libicu52:armhf.
Preparing to unpack .../libicu52_52.1-4_armhf.deb ...
Unpacking libicu52:armhf (52.1-4) ...
Selecting previously unselected package libharfbuzz-icu0:armhf.
Preparing to unpack .../libharfbuzz-icu0_0.9.29-1_armhf.deb ...
Unpacking libharfbuzz-icu0:armhf (0.9.29-1) ...
Selecting previously unselected package x11-common.
Preparing to unpack .../x11-common_1%3a7.7+7_all.deb ...
Unpacking x11-common (1:7.7+7) ...
Selecting previously unselected package libice6:armhf.
Preparing to unpack .../libice6_2%3a1.0.8-2_armhf.deb ...
Unpacking libice6:armhf (2:1.0.8-2) ...
Selecting previously unselected package libijs-0.35:armhf.
Preparing to unpack .../libijs-0.35_0.35-10_armhf.deb ...
Unpacking libijs-0.35:armhf (0.35-10) ...
Selecting previously unselected package libjasper1:armhf.
Preparing to unpack .../libjasper1_1.900.1-debian1-2_armhf.deb ...
Unpacking libjasper1:armhf (1.900.1-debian1-2) ...
Selecting previously unselected package liblcms2-2:armhf.
Preparing to unpack .../liblcms2-2_2.6-3_armhf.deb ...
Unpacking liblcms2-2:armhf (2.6-3) ...
Selecting previously unselected package libpaper1:armhf.
Preparing to unpack .../libpaper1_1.1.24+nmu3_armhf.deb ...
Unpacking libpaper1:armhf (1.1.24+nmu3) ...
Selecting previously unselected package libpixman-1-0:armhf.
Preparing to unpack .../libpixman-1-0_0.32.4-1_armhf.deb ...
Unpacking libpixman-1-0:armhf (0.32.4-1) ...
Selecting previously unselected package libopenjpeg5:armhf.
Preparing to unpack .../libopenjpeg5_1.5.2-2_armhf.deb ...
Unpacking libopenjpeg5:armhf (1.5.2-2) ...
Selecting previously unselected package libpoppler46:armhf.
Preparing to unpack .../libpoppler46_0.26.2-2_armhf.deb ...
Unpacking libpoppler46:armhf (0.26.2-2) ...
Selecting previously unselected package libsigsegv2:armhf.
Preparing to unpack .../libsigsegv2_2.10-4_armhf.deb ...
Unpacking libsigsegv2:armhf (2.10-4) ...
Selecting previously unselected package libsm6:armhf.
Preparing to unpack .../libsm6_2%3a1.2.1-2_armhf.deb ...
Unpacking libsm6:armhf (2:1.2.1-2) ...
Selecting previously unselected package libunistring0:armhf.
Preparing to unpack .../libunistring0_0.9.3-5_armhf.deb ...
Unpacking libunistring0:armhf (0.9.3-5) ...
Selecting previously unselected package libxau6:armhf.
Preparing to unpack .../libxau6_1%3a1.0.8-1_armhf.deb ...
Unpacking libxau6:armhf (1:1.0.8-1) ...
Selecting previously unselected package libxdmcp6:armhf.
Preparing to unpack .../libxdmcp6_1%3a1.1.1-1_armhf.deb ...
Unpacking libxdmcp6:armhf (1:1.1.1-1) ...
Selecting previously unselected package libxcb1:armhf.
Preparing to unpack .../libxcb1_1.10-3_armhf.deb ...
Unpacking libxcb1:armhf (1.10-3) ...
Selecting previously unselected package libx11-data.
Preparing to unpack .../libx11-data_2%3a1.6.2-2_all.deb ...
Unpacking libx11-data (2:1.6.2-2) ...
Selecting previously unselected package libx11-6:armhf.
Preparing to unpack .../libx11-6_2%3a1.6.2-2_armhf.deb ...
Unpacking libx11-6:armhf (2:1.6.2-2) ...
Selecting previously unselected package libxext6:armhf.
Preparing to unpack .../libxext6_2%3a1.3.2-1_armhf.deb ...
Unpacking libxext6:armhf (2:1.3.2-1) ...
Selecting previously unselected package libxt6:armhf.
Preparing to unpack .../libxt6_1%3a1.1.4-1_armhf.deb ...
Unpacking libxt6:armhf (1:1.1.4-1) ...
Selecting previously unselected package libxmu6:armhf.
Preparing to unpack .../libxmu6_2%3a1.1.2-1_armhf.deb ...
Unpacking libxmu6:armhf (2:1.1.2-1) ...
Selecting previously unselected package libxpm4:armhf.
Preparing to unpack .../libxpm4_1%3a3.5.10-1_armhf.deb ...
Unpacking libxpm4:armhf (1:3.5.10-1) ...
Selecting previously unselected package libxaw7:armhf.
Preparing to unpack .../libxaw7_2%3a1.0.12-1_armhf.deb ...
Unpacking libxaw7:armhf (2:1.0.12-1) ...
Selecting previously unselected package libxi6:armhf.
Preparing to unpack .../libxi6_2%3a1.7.2-1_armhf.deb ...
Unpacking libxi6:armhf (2:1.7.2-1) ...
Selecting previously unselected package libzzip-0-13:armhf.
Preparing to unpack .../libzzip-0-13_0.13.62-2_armhf.deb ...
Unpacking libzzip-0-13:armhf (0.13.62-2) ...
Selecting previously unselected package poppler-data.
Preparing to unpack .../poppler-data_0.4.6-5_all.deb ...
Unpacking poppler-data (0.4.6-5) ...
Selecting previously unselected package file.
Preparing to unpack .../file_1%3a5.19-1_armhf.deb ...
Unpacking file (1:5.19-1) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../gettext-base_0.18.3.2-3_armhf.deb ...
Unpacking gettext-base (0.18.3.2-3) ...
Selecting previously unselected package m4.
Preparing to unpack .../archives/m4_1.4.17-4_armhf.deb ...
Unpacking m4 (1.4.17-4) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../autoconf_2.69-7_all.deb ...
Unpacking autoconf (2.69-7) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../autotools-dev_20140510.1_all.deb ...
Unpacking autotools-dev (20140510.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../automake_1%3a1.14.1-3_all.deb ...
Unpacking automake (1:1.14.1-3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../autopoint_0.18.3.2-3_all.deb ...
Unpacking autopoint (0.18.3.2-3) ...
Selecting previously unselected package gettext.
Preparing to unpack .../gettext_0.18.3.2-3_armhf.deb ...
Unpacking gettext (0.18.3.2-3) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../intltool-debian_0.35.0+20060710.1_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.1) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../po-debconf_1.0.16+nmu3_all.deb ...
Unpacking po-debconf (1.0.16+nmu3) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../debhelper_9.20140613_all.deb ...
Unpacking debhelper (9.20140613) ...
Selecting previously unselected package libtool.
Preparing to unpack .../libtool_2.4.2-1.7_armhf.deb ...
Unpacking libtool (2.4.2-1.7) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../dh-autoreconf_9_all.deb ...
Unpacking dh-autoreconf (9) ...
Selecting previously unselected package gap-gapdoc.
Preparing to unpack .../gap-gapdoc_1.5.1-1_all.deb ...
Unpacking gap-gapdoc (1.5.1-1) ...
Selecting previously unselected package gap-libs.
Preparing to unpack .../gap-libs_4r7p5-1_all.deb ...
Unpacking gap-libs (4r7p5-1) ...
Selecting previously unselected package gap-core.
Preparing to unpack .../gap-core_4r7p5-1_armhf.deb ...
Unpacking gap-core (4r7p5-1) ...
Selecting previously unselected package gap-online-help.
Preparing to unpack .../gap-online-help_4r7p5-1_all.deb ...
Unpacking gap-online-help (4r7p5-1) ...
Selecting previously unselected package gap.
Preparing to unpack .../archives/gap_4r7p5-1_all.deb ...
Unpacking gap (4r7p5-1) ...
Selecting previously unselected package libgmp-dev:armhf.
Preparing to unpack .../libgmp-dev_2%3a6.0.0+dfsg-4+rpi1_armhf.deb ...
Unpacking libgmp-dev:armhf (2:6.0.0+dfsg-4+rpi1) ...
Selecting previously unselected package gap-dev.
Preparing to unpack .../gap-dev_4r7p5-1_armhf.deb ...
Unpacking gap-dev (4r7p5-1) ...
Selecting previously unselected package libjbig2dec0.
Preparing to unpack .../libjbig2dec0_0.11+20120125-1_armhf.deb ...
Unpacking libjbig2dec0 (0.11+20120125-1) ...
Selecting previously unselected package libgs9-common.
Preparing to unpack .../libgs9-common_9.05~dfsg-8.1_all.deb ...
Unpacking libgs9-common (9.05~dfsg-8.1) ...
Selecting previously unselected package libgs9.
Preparing to unpack .../libgs9_9.05~dfsg-8.1_armhf.deb ...
Unpacking libgs9 (9.05~dfsg-8.1) ...
Selecting previously unselected package libkpathsea6.
Preparing to unpack .../libkpathsea6_2014.20140528.34243-4_armhf.deb ...
Unpacking libkpathsea6 (2014.20140528.34243-4) ...
Selecting previously unselected package libpaper-utils.
Preparing to unpack .../libpaper-utils_1.1.24+nmu3_armhf.deb ...
Unpacking libpaper-utils (1.1.24+nmu3) ...
Selecting previously unselected package libpotrace0.
Preparing to unpack .../libpotrace0_1.11-2_armhf.deb ...
Unpacking libpotrace0 (1.11-2) ...
Selecting previously unselected package libptexenc1.
Preparing to unpack .../libptexenc1_2014.20140528.34243-4_armhf.deb ...
Unpacking libptexenc1 (2014.20140528.34243-4) ...
Selecting previously unselected package libsynctex1.
Preparing to unpack .../libsynctex1_2014.20140528.34243-4_armhf.deb ...
Unpacking libsynctex1 (2014.20140528.34243-4) ...
Selecting previously unselected package tex-common.
Preparing to unpack .../tex-common_5.02_all.deb ...
Unpacking tex-common (5.02) ...
Selecting previously unselected package preview-latex-style.
Preparing to unpack .../preview-latex-style_11.87-1_all.deb ...
Unpacking preview-latex-style (11.87-1) ...
Selecting previously unselected package xdg-utils.
Preparing to unpack .../xdg-utils_1.1.0~rc1+git20111210-7.1_all.deb ...
Unpacking xdg-utils (1.1.0~rc1+git20111210-7.1) ...
Selecting previously unselected package texlive-binaries.
Preparing to unpack .../texlive-binaries_2014.20140528.34243-4_armhf.deb ...
Unpacking texlive-binaries (2014.20140528.34243-4) ...
Selecting previously unselected package texlive-base.
Preparing to unpack .../texlive-base_2014.20140626-1_all.deb ...
Unpacking texlive-base (2014.20140626-1) ...
Selecting previously unselected package texlive-fonts-recommended.
Preparing to unpack .../texlive-fonts-recommended_2014.20140626-1_all.deb ...
Unpacking texlive-fonts-recommended (2014.20140626-1) ...
Selecting previously unselected package texlive-latex-base.
Preparing to unpack .../texlive-latex-base_2014.20140626-1_all.deb ...
Unpacking texlive-latex-base (2014.20140626-1) ...
Selecting previously unselected package texlive-latex-recommended.
Preparing to unpack .../texlive-latex-recommended_2014.20140626-1_all.deb ...
Unpacking texlive-latex-recommended (2014.20140626-1) ...
Selecting previously unselected package texlive-pictures.
Preparing to unpack .../texlive-pictures_2014.20140626-1_all.deb ...
Unpacking texlive-pictures (2014.20140626-1) ...
Selecting previously unselected package texlive-latex-extra.
Preparing to unpack .../texlive-latex-extra_2014.20140626-1_all.deb ...
Unpacking texlive-latex-extra (2014.20140626-1) ...
Selecting previously unselected package sbuild-build-depends-gap-io-dummy.
Preparing to unpack .../sbuild-build-depends-gap-io-dummy.deb ...
Unpacking sbuild-build-depends-gap-io-dummy (0.invalid.0) ...
Setting up libpipeline1:armhf (1.3.0-1) ...
Setting up groff-base (1.22.2-6) ...
Setting up bsdmainutils (9.0.5) ...
update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode
update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode
Setting up man-db (2.6.7.1-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up libasprintf0c2:armhf (0.18.3.2-3) ...
Setting up libnettle4:armhf (2.7.1-2) ...
Setting up libhogweed2:armhf (2.7.1-2) ...
Setting up libffi6:armhf (3.1-2) ...
Setting up libp11-kit0:armhf (0.20.2-5) ...
Setting up libtasn1-6:armhf (4.0-2) ...
Setting up libgnutls-deb0-28:armhf (3.2.15-2) ...
Setting up libkeyutils1:armhf (1.5.9-4) ...
Setting up libkrb5support0:armhf (1.12.1+dfsg-3) ...
Setting up libk5crypto3:armhf (1.12.1+dfsg-3) ...
Setting up libkrb5-3:armhf (1.12.1+dfsg-3) ...
Setting up libgssapi-krb5-2:armhf (1.12.1+dfsg-3) ...
Setting up libidn11:armhf (1.28-2) ...
Setting up libmagic1:armhf (1:5.19-1) ...
Setting up libxml2:armhf (2.9.1+dfsg1-3) ...
Setting up autoconf-archive (20140228-1) ...
Setting up libavahi-common-data:armhf (0.6.31-4) ...
Setting up libavahi-common3:armhf (0.6.31-4) ...
Setting up libavahi-client3:armhf (0.6.31-4) ...
Setting up libglib2.0-0:armhf (2.40.0-3) ...
No schema files found: doing nothing.
Setting up libcroco3:armhf (0.6.8-2) ...
Setting up libcups2:armhf (1.7.3-6) ...
Setting up libjpeg8:armhf (8d1-1) ...
Setting up libpng12-0:armhf (1.2.50-1) ...
Setting up libjbig0:armhf (2.0-2.1) ...
Setting up libtiff5:armhf (4.0.3-9) ...
Setting up libexpat1:armhf (2.1.0-6) ...
Setting up libfreetype6:armhf (2.5.2-1) ...
Setting up ucf (3.0030) ...
Setting up fonts-dejavu-core (2.34-1) ...
Setting up fontconfig-config (2.11.0-5) ...
Setting up libfontconfig1:armhf (2.11.0-5) ...
Setting up libgmpxx4ldbl:armhf (2:6.0.0+dfsg-4+rpi1) ...
Setting up libgraphite2-3:armhf (1.2.4-3) ...
Setting up libharfbuzz0b:armhf (0.9.29-1) ...
Setting up libicu52:armhf (52.1-4) ...
Setting up libharfbuzz-icu0:armhf (0.9.29-1) ...
Setting up x11-common (1:7.7+7) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
All runlevel operations denied by policy
invoke-rc.d: policy-rc.d denied execution of start.
Setting up libice6:armhf (2:1.0.8-2) ...
Setting up libijs-0.35:armhf (0.35-10) ...
Setting up libjasper1:armhf (1.900.1-debian1-2) ...
Setting up liblcms2-2:armhf (2.6-3) ...
Setting up libpaper1:armhf (1.1.24+nmu3) ...
Creating config file /etc/papersize with new version
Setting up libpixman-1-0:armhf (0.32.4-1) ...
Setting up libopenjpeg5:armhf (1.5.2-2) ...
Setting up libpoppler46:armhf (0.26.2-2) ...
Setting up libsigsegv2:armhf (2.10-4) ...
Setting up libsm6:armhf (2:1.2.1-2) ...
Setting up libunistring0:armhf (0.9.3-5) ...
Setting up libxau6:armhf (1:1.0.8-1) ...
Setting up libxdmcp6:armhf (1:1.1.1-1) ...
Setting up libxcb1:armhf (1.10-3) ...
Setting up libx11-data (2:1.6.2-2) ...
Setting up libx11-6:armhf (2:1.6.2-2) ...
Setting up libxext6:armhf (2:1.3.2-1) ...
Setting up libxt6:armhf (1:1.1.4-1) ...
Setting up libxmu6:armhf (2:1.1.2-1) ...
Setting up libxpm4:armhf (1:3.5.10-1) ...
Setting up libxaw7:armhf (2:1.0.12-1) ...
Setting up libxi6:armhf (2:1.7.2-1) ...
Setting up libzzip-0-13:armhf (0.13.62-2) ...
Setting up poppler-data (0.4.6-5) ...
Setting up file (1:5.19-1) ...
Setting up gettext-base (0.18.3.2-3) ...
Setting up m4 (1.4.17-4) ...
Setting up autoconf (2.69-7) ...
Setting up autotools-dev (20140510.1) ...
Setting up automake (1:1.14.1-3) ...
update-alternatives: using /usr/bin/automake-1.14 to provide /usr/bin/automake (automake) in auto mode
Setting up autopoint (0.18.3.2-3) ...
Setting up gettext (0.18.3.2-3) ...
Setting up intltool-debian (0.35.0+20060710.1) ...
Setting up po-debconf (1.0.16+nmu3) ...
Setting up debhelper (9.20140613) ...
Setting up libtool (2.4.2-1.7) ...
Setting up dh-autoreconf (9) ...
Setting up gap-gapdoc (1.5.1-1) ...
Setting up gap-libs (4r7p5-1) ...
Setting up gap-core (4r7p5-1) ...
Setting up gap-online-help (4r7p5-1) ...
Setting up gap (4r7p5-1) ...
Setting up libgmp-dev:armhf (2:6.0.0+dfsg-4+rpi1) ...
Setting up gap-dev (4r7p5-1) ...
Setting up libjbig2dec0 (0.11+20120125-1) ...
Setting up libgs9-common (9.05~dfsg-8.1) ...
Setting up libkpathsea6 (2014.20140528.34243-4) ...
Setting up libpaper-utils (1.1.24+nmu3) ...
Setting up libpotrace0 (1.11-2) ...
Setting up libptexenc1 (2014.20140528.34243-4) ...
Setting up libsynctex1 (2014.20140528.34243-4) ...
Setting up tex-common (5.02) ...
Setting up preview-latex-style (11.87-1) ...
Setting up xdg-utils (1.1.0~rc1+git20111210-7.1) ...
Setting up libcupsimage2:armhf (1.7.3-6) ...
Setting up libcupsfilters1:armhf (1.0.54-3+b1) ...
Setting up libgs9 (9.05~dfsg-8.1) ...
Setting up texlive-binaries (2014.20140528.34243-4) ...
update-alternatives: using /usr/bin/xdvi-xaw to provide /usr/bin/xdvi.bin (xdvi.bin) in auto mode
update-alternatives: using /usr/bin/bibtex.original to provide /usr/bin/bibtex (bibtex) in auto mode
Building format(s) --refresh.
This may take some time... done.
Setting up texlive-base (2014.20140626-1) ...
/usr/bin/tl-paper: setting paper size for dvips to a4.
/usr/bin/tl-paper: setting paper size for dvipdfmx to a4.
/usr/bin/tl-paper: setting paper size for xdvi to a4.
/usr/bin/tl-paper: setting paper size for pdftex to a4.
Running mktexlsr. This may take some time... done.
Building format(s) --all.
This may take some time... done.
Processing triggers for tex-common (5.02) ...
Running mktexlsr. This may take some time... done.
Running updmap-sys. This may take some time... done.
Running mktexlsr /var/lib/texmf ... done.
Setting up texlive-fonts-recommended (2014.20140626-1) ...
Setting up texlive-latex-base (2014.20140626-1) ...
Running mktexlsr. This may take some time... done.
Building format(s) --all --cnffile /etc/texmf/fmt.d/10texlive-latex-base.cnf.
This may take some time... done.
Processing triggers for tex-common (5.02) ...
Running mktexlsr. This may take some time... done.
Running updmap-sys. This may take some time... done.
Running mktexlsr /var/lib/texmf ... done.
Setting up texlive-latex-recommended (2014.20140626-1) ...
Processing triggers for tex-common (5.02) ...
Running mktexlsr. This may take some time... done.
Setting up texlive-pictures (2014.20140626-1) ...
Processing triggers for tex-common (5.02) ...
Running mktexlsr. This may take some time... done.
Running updmap-sys. This may take some time... done.
Running mktexlsr /var/lib/texmf ... done.
Setting up texlive-latex-extra (2014.20140626-1) ...
Processing triggers for tex-common (5.02) ...
Running mktexlsr. This may take some time... done.
Running updmap-sys. This may take some time... done.
Running mktexlsr /var/lib/texmf ... done.
Setting up sbuild-build-depends-gap-io-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.19-5) ...
┌──────────────────────────────────────────────────────────────────────────────┐
│ Build environment │
└──────────────────────────────────────────────────────────────────────────────┘
Kernel: Linux 3.15-trunk-armmp armhf (armv7l)
Toolchain package versions: binutils_2.24.51.20140617-1 dpkg-dev_1.17.10 g++-4.9_4.9.0-7 gcc-4.8_4.8.3-4 gcc-4.9_4.9.0-7 libc6-dev_2.19-5 libstdc++-4.9-dev_4.9.0-7 libstdc++6_4.9.0-7 linux-libc-dev_3.14.4-1+rpi1
Package versions: apt_1.0.5 autoconf_2.69-7 autoconf-archive_20140228-1 automake_1:1.14.1-3 autopoint_0.18.3.2-3 autotools-dev_20140510.1 base-files_7.3+rpi1 base-passwd_3.5.28 bash_4.3-7 binutils_2.24.51.20140617-1 bsdmainutils_9.0.5 bsdutils_1:2.20.1-5.8 build-essential_11.6 bzip2_1.0.6-5 coreutils_8.21-1.2 cpio_2.11+dfsg-2 cpp_4:4.9.0-4 cpp-4.8_4.8.3-4 cpp-4.9_4.9.0-7 dash_0.5.7-4 debconf_1.5.53 debconf-i18n_1.5.53 debfoster_2.7-1.2 debhelper_9.20140613 debianutils_4.4 dh-autoreconf_9 diffutils_1:3.3-1 dpkg_1.17.10 dpkg-dev_1.17.10 e2fslibs_1.42.10-1.1 e2fsprogs_1.42.10-1.1 fakeroot_1.18.4-2 file_1:5.19-1 findutils_4.4.2-9 fontconfig-config_2.11.0-5 fonts-dejavu-core_2.34-1 g++_4:4.9.0-4 g++-4.9_4.9.0-7 gap_4r7p5-1 gap-core_4r7p5-1 gap-dev_4r7p5-1 gap-gapdoc_1.5.1-1 gap-libs_4r7p5-1 gap-online-help_4r7p5-1 gcc_4:4.9.0-4 gcc-4.5-base_4.5.3-12+rpi1 gcc-4.6-base_4.6.4-5+rpi1 gcc-4.7-base_4.7.3-11+rpi1 gcc-4.8_4.8.3-4 gcc-4.8-base_4.8.3-4 gcc-4.9_4.9.0-7 gcc-4.9-base_4.9.0-7 gettext_0.18.3.2-3 gettext-base_0.18.3.2-3 gnupg_1.4.18-2 gpgv_1.4.18-2 grep_2.18-2 groff-base_1.22.2-6 gzip_1.6-3 hostname_3.15 init-system-helpers_1.19 initramfs-tools_0.115 initscripts_2.88dsf-53.2 insserv_1.14.0-5 intltool-debian_0.35.0+20060710.1 klibc-utils_2.0.3-1+rpi1 kmod_16-2 libacl1_2.2.52-1 libapt-pkg4.12_1.0.5 libasan0_4.8.3-4 libasan1_4.9.0-7 libasprintf0c2_0.18.3.2-3 libatomic1_4.9.0-7 libattr1_1:2.4.47-1 libaudit-common_1:2.3.7-1 libaudit1_1:2.3.7-1 libavahi-client3_0.6.31-4 libavahi-common-data_0.6.31-4 libavahi-common3_0.6.31-4 libblkid1_2.20.1-5.8 libbz2-1.0_1.0.6-5 libc-bin_2.19-5 libc-dev-bin_2.19-5 libc6_2.19-5 libc6-dev_2.19-5 libcap2_1:2.22-1.2 libcloog-isl4_0.18.2-1 libcomerr2_1.42.10-1.1 libcroco3_0.6.8-2 libcups2_1.7.3-6 libcupsfilters1_1.0.54-3+b1 libcupsimage2_1.7.3-6 libdb5.1_5.1.29-6 libdb5.3_5.3.28-5 libdbus-1-3_1.8.6-1 libdpkg-perl_1.17.10 libexpat1_2.1.0-6 libffi6_3.1-2 libfontconfig1_2.11.0-5 libfreetype6_2.5.2-1 libgc1c2_1:7.2d-6 libgcc-4.8-dev_4.8.3-4 libgcc-4.9-dev_4.9.0-7 libgcc1_1:4.9.0-7 libgdbm3_1.8.3-12 libglib2.0-0_2.40.0-3 libgmp-dev_2:6.0.0+dfsg-4+rpi1 libgmp10_2:6.0.0+dfsg-4+rpi1 libgmpxx4ldbl_2:6.0.0+dfsg-4+rpi1 libgnutls-deb0-28_3.2.15-2 libgomp1_4.9.0-7 libgraphite2-3_1.2.4-3 libgs9_9.05~dfsg-8.1 libgs9-common_9.05~dfsg-8.1 libgssapi-krb5-2_1.12.1+dfsg-3 libharfbuzz-icu0_0.9.29-1 libharfbuzz0b_0.9.29-1 libhogweed2_2.7.1-2 libice6_2:1.0.8-2 libicu52_52.1-4 libidn11_1.28-2 libijs-0.35_0.35-10 libisl10_0.12.2-2 libjasper1_1.900.1-debian1-2 libjbig0_2.0-2.1 libjbig2dec0_0.11+20120125-1 libjpeg8_8d1-1 libk5crypto3_1.12.1+dfsg-3 libkeyutils1_1.5.9-4 libklibc_2.0.3-1+rpi1 libkmod2_16-2 libkpathsea6_2014.20140528.34243-4 libkrb5-3_1.12.1+dfsg-3 libkrb5support0_1.12.1+dfsg-3 liblcms2-2_2.6-3 liblocale-gettext-perl_1.05-8 liblzma5_5.1.1alpha+20120614-2 libmagic1_1:5.19-1 libmount1_2.20.1-5.8 libmpc3_1.0.1-1 libmpfr4_3.1.2-1 libncurses5_5.9+20140118-1 libncursesw5_5.9+20140118-1 libnettle4_2.7.1-2 libopenjpeg5_1.5.2-2 libp11-kit0_0.20.2-5 libpam-modules_1.1.8-3 libpam-modules-bin_1.1.8-3 libpam-runtime_1.1.8-3 libpam0g_1.1.8-3 libpaper-utils_1.1.24+nmu3 libpaper1_1.1.24+nmu3 libpcre3_1:8.31-5 libpipeline1_1.3.0-1 libpixman-1-0_0.32.4-1 libpng12-0_1.2.50-1 libpoppler46_0.26.2-2 libpotrace0_1.11-2 libprocps0_1:3.3.4-2 libprocps3_1:3.3.9-5 libptexenc1_2014.20140528.34243-4 libreadline6_6.3-6 libselinux1_2.3-1 libsemanage-common_2.3-1 libsemanage1_2.3-1 libsepol1_2.3-1 libsigsegv2_2.10-4 libslang2_2.2.4-17 libsm6_2:1.2.1-2 libss2_1.42.10-1.1 libstdc++-4.9-dev_4.9.0-7 libstdc++6_4.9.0-7 libsynctex1_2014.20140528.34243-4 libtasn1-6_4.0-2 libtext-charwidth-perl_0.04-7+b3 libtext-iconv-perl_1.7-5+b3 libtext-wrapi18n-perl_0.06-7 libtiff5_4.0.3-9 libtimedate-perl_2.3000-2 libtinfo5_5.9+20140118-1 libtool_2.4.2-1.7 libubsan0_4.9.0-7 libudev1_204-14 libunistring0_0.9.3-5 libusb-0.1-4_2:0.1.12-24 libustr-1.0-1_1.0.4-3 libuuid1_2.20.1-5.8 libx11-6_2:1.6.2-2 libx11-data_2:1.6.2-2 libxau6_1:1.0.8-1 libxaw7_2:1.0.12-1 libxcb1_1.10-3 libxdmcp6_1:1.1.1-1 libxext6_2:1.3.2-1 libxi6_2:1.7.2-1 libxml2_2.9.1+dfsg1-3 libxmu6_2:1.1.2-1 libxpm4_1:3.5.10-1 libxt6_1:1.1.4-1 libzzip-0-13_0.13.62-2 linux-libc-dev_3.14.4-1+rpi1 login_1:4.2-2 lsb-base_4.1+Debian13+rpi1 m4_1.4.17-4 make_4.0-8 makedev_2.3.1-93 man-db_2.6.7.1-1 mawk_1.3.3-17 mount_2.20.1-5.8 multiarch-support_2.19-5 nano_2.2.6-1.1 ncurses-base_5.9+20140118-1 ncurses-bin_5.9+20140118-1 passwd_1:4.2-2 patch_2.7.1-5 perl_5.18.2-6 perl-base_5.18.2-6 perl-modules_5.18.2-6 plymouth_0.9.0-4 po-debconf_1.0.16+nmu3 poppler-data_0.4.6-5 preview-latex-style_11.87-1 procps_1:3.3.9-5 raspbian-archive-keyring_20120528.2 readline-common_6.3-6 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-gap-io-dummy_0.invalid.0 sed_4.2.2-4 sensible-utils_0.0.9 startpar_0.59-3 sysv-rc_2.88dsf-53.2 sysvinit_2.88dsf-53.2 sysvinit-core_2.88dsf-53.2 sysvinit-utils_2.88dsf-53.2 tar_1.27.1-2 tex-common_5.02 texlive-base_2014.20140626-1 texlive-binaries_2014.20140528.34243-4 texlive-fonts-recommended_2014.20140626-1 texlive-latex-base_2014.20140626-1 texlive-latex-extra_2014.20140626-1 texlive-latex-recommended_2014.20140626-1 texlive-pictures_2014.20140626-1 tzdata_2014e-1 ucf_3.0030 udev_204-14 util-linux_2.20.1-5.8 x11-common_1:7.7+7 xdg-utils_1.1.0~rc1+git20111210-7.1 xz-utils_5.1.1alpha+20120614-2 zlib1g_1:1.2.8.dfsg-1+rpi1
┌──────────────────────────────────────────────────────────────────────────────┐
│ Build │
└──────────────────────────────────────────────────────────────────────────────┘
Unpack source
─────────────
gpgv: keyblock resource `/sbuild-nonexistent/.gnupg/trustedkeys.gpg': file open error
gpgv: Signature made Sun Jul 6 15:30:00 2014 UTC using RSA key ID 974B3E96
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./gap-io_4.3.1+ds-1.dsc
dpkg-source: info: extracting gap-io in gap-io-4.3.1+ds
dpkg-source: info: unpacking gap-io_4.3.1+ds.orig.tar.xz
dpkg-source: info: unpacking gap-io_4.3.1+ds-1.debian.tar.xz
dpkg-source: info: applying debianization.patch
Check disc space
────────────────
Sufficient free space for build
User Environment
────────────────
APT_CONFIG=/var/lib/sbuild/apt.conf
COLUMNS=80
CONSOLE=/dev/console
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
INIT_VERSION=sysvinit-2.88
LC_ALL=POSIX
LINES=24
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PREVLEVEL=N
PWD=/
RUNLEVEL=2
SCHROOT_ALIAS_NAME=jessie-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=jessie-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=109
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=jessie-staging-armhf-sbuild-dca13abf-1724-458a-93f7-62ffe35ec9b2
SCHROOT_UID=104
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=linux
USER=buildd
init=/sbin/init
previous=N
rootmnt=/root
runlevel=2
dpkg-buildpackage
─────────────────
dpkg-buildpackage: source package gap-io
dpkg-buildpackage: source version 4.3.1+ds-1
dpkg-buildpackage: source distribution unstable
dpkg-source --before-build gap-io-4.3.1+ds
dpkg-buildpackage: host architecture armhf
dpkg-source: info: using options from gap-io-4.3.1+ds/debian/source/options: --compression=xz --compression-level=9
fakeroot debian/rules clean
dh clean --with autoreconf
dh_testdir
dh_auto_clean
dh_autoreconf_clean
dh_clean
debian/rules build-arch
dh build-arch --with autoreconf
dh_testdir -a
dh_autoreconf -a
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `cnf'.
libtoolize: copying file `cnf/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
configure.ac:13: installing 'cnf/ar-lib'
configure.ac:12: installing 'cnf/compile'
configure.ac:15: installing 'cnf/config.guess'
configure.ac:15: installing 'cnf/config.sub'
configure.ac:8: installing 'cnf/install-sh'
configure.ac:8: installing 'cnf/missing'
Makefile.am: installing 'cnf/depcomp'
debian/rules override_dh_auto_configure
make[1]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_auto_configure -- --with-gaproot=/usr/lib/gap
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... arm-unknown-linux-gnueabihf
checking host system type... arm-unknown-linux-gnueabihf
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert arm-unknown-linux-gnueabihf file names to arm-unknown-linux-gnueabihf format... func_convert_file_noop
checking how to convert arm-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for C compiler vendor... gnu
checking for CONFIGNAME... none
checking for GAP root directory... /usr/lib/gap
checking for GAP architecture... arm-unknown-linux-gnueabihf-gcc-default32
checking for GAP include files... /usr/lib/gap/src/compiled.h
checking for GAP config.h... /usr/lib/gap/bin/arm-unknown-linux-gnueabihf-gcc-default32/config.h
checking for GAP's gmp.h location... not found, GAP was compiled without GMP
checking size of void **... 4
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for stdlib.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking for an ANSI C-conforming const... yes
checking for pid_t... yes
checking for struct stat.st_blksize... yes
checking for struct stat.st_blocks... yes
checking for struct stat.st_rdev... yes
checking whether time.h and sys/time.h may both be included... yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether closedir returns void... no
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether lstat correctly handles trailing slash... yes
checking whether lstat accepts an empty string... no
checking whether lstat correctly handles trailing slash... (cached) yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/socket.h... (cached) yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... void
checking whether stat accepts an empty string... no
checking for dup2... yes
checking for gethostbyname... yes
checking for lchown... yes
checking for memset... yes
checking for mkdir... yes
checking for mkfifo... yes
checking for rmdir... yes
checking for select... yes
checking for socket... yes
checking for getprotobyname... yes
checking for signal... yes
checking for sigaction... yes
checking for opendir... yes
checking for readdir... yes
checking for closedir... yes
checking for rewinddir... yes
checking for telldir... yes
checking for seekdir... yes
checking for unlink... yes
checking for link... yes
checking for rename... yes
checking for symlink... yes
checking for readlink... yes
checking for accept... yes
checking for bind... yes
checking for chmod... yes
checking for connect... yes
checking for dup... yes
checking for fchmod... yes
checking for fchown... yes
checking for stat... yes
checking for fstat... yes
checking for lstat... yes
checking for getsockopt... yes
checking for listen... yes
checking for lstat... (cached) yes
checking for mknod... yes
checking for recv... yes
checking for recvfrom... yes
checking for send... yes
checking for sendto... yes
checking for setsockopt... yes
checking for gettimeofday... yes
checking for gmtime... yes
checking for localtime... yes
checking for getpid... yes
checking for getppid... yes
checking for kill... yes
checking for gethostname... yes
checking for getsockname... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/pkgconfig.h
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_auto_build -a
make[1]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
CC src/io_la-io.lo
CCLD io.la
cat makedoc.g | /usr/bin/gap -A -q -T
true
#I #I Composing XML document . . .
#I #I Parsing XML document . . .
#I #I Checking XML structure . . .
#I #I Text version (also produces labels for hyperlinks):
#I #I First run, collecting cross references, index, toc, bib and so on . . .
#I #I Table of contents complete.
#I #I Producing the index . . .
#I #I Second run through document . . .
#I #I Producing simplified search strings and labels for hyperlinks . . .
#I #I Constructing LaTeX version and calling pdflatex:
#I #I Writing LaTeX file,
#I 3 x pdflatex with bibtex and makeindex,
#I
#W There are overfull boxes:
#I Overfull \hbox (3.9136pt too wide) in paragraph at lines 2461--2462
#I
#I #I Writing manual.six file ...
#I
#I #I Finally the HTML version . . .
#I #I First run, collecting cross references, index, toc, bib and so on . . .
#I #I Table of contents complete.
#I #I Producing the index . . .
#I #I Second run through document . . .
rec( Name := "IO", attributes := rec( ), bibkeys := [ ],
bibpath := dir("doc/"), bookname := "IO",
chapsectlinks :=
rec(
1 := "<div class=\"ChapSects\"><a href=\"chap1.html#X874E1D45845007FE\">\
1 <span class=\"Heading\">Preface</span></a>\n</div>\n",
10 := "<div class=\"ChapSects\"><a href=\"chap10.html#X7EADF566874177D8\
\">10 <span class=\"Heading\">Examples of usage</span></a>\n<div class=\"ContS\
ect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"cha\
p10.html#X7EC25CA68794860A\">10.1 <span class=\"Heading\">Writing and reading \
a file</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"tocl\
ine\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7AECE665813D6E\
4D\">10.2 <span class=\"Heading\">Using filtering programs to read and write f\
iles</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"toclin\
e\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7A8A180D7B335151\
\">10.3 <span class=\"Heading\">Using filters when reading or writing files se\
quentially</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"\
tocline\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7BD2BF7F87\
573C69\">10.4 <span class=\"Heading\">Accessing a web page</span></a>\n</span>\
\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap10.html#X81BD8400832EE20B\">10.5 <span class=\"H\
eading\">(Un-)Pickling</span></a>\n</span>\n</div>\n</div>\n",
11 := "<div class=\"ChapSects\"><a href=\"chap11.html#X861E5DF986F89AE2\
\">11 <span class=\"Heading\">License</span></a>\n</div>\n",
2 := "<div class=\"ChapSects\"><a href=\"chap2.html#X87D1C7D0861CBE25\">\
2 <span class=\"Heading\">Installation of the <strong class=\"pkg\">IO</strong\
>-package</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span cl\
ass=\"nocss\"> </span><a href=\"chap2.html#X7FB00ED2787027A3\">2.1 <span \
class=\"Heading\">Recompiling the documentation</span></a>\n</span>\n</div>\n<\
/div>\n",
3 := "<div class=\"ChapSects\"><a href=\"chap3.html#X85DE7F82801DDA50\">\
3 <span class=\"Heading\">Functions directly available from the C library</spa\
n></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\">\
</span><a href=\"chap3.html#X85D3551379BA32FC\">3.1 <span class=\"Headin\
g\">Differences in arguments - an overview</span></a>\n</span>\n</div>\n<div c\
lass=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><\
a href=\"chap3.html#X800F9F3E810A7228\">3.2 <span class=\"Heading\">The low-le\
vel functions in detail</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap3.html#X7E474E9787012FE4\">3.2-1 IO_accept</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X791A63\
41852001F8\">3.2-2 IO_bind</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X790139B37E87FA61\">3.2-3 \
IO_chdir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X83D4CB2681674FA4\">3.2-4 IO_chmod</a></span\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap3.html#X85C0617479E4D952\">3.2-5 IO_chown</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8\
20DA9C97C2E80BA\">3.2-6 IO_close</a></span>\n<span class=\"ContSS\"><br /><spa\
n class=\"nocss\"> </span><a href=\"chap3.html#X8078699B84F082A4\">\
3.2-7 IO_closedir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X7DE9D8B387D3A3D5\">3.2-8 IO_connec\
t</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> <\
/span><a href=\"chap3.html#X78FCF69C7FCF3BD7\">3.2-9 IO_creat</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap3.html#X7DAAD93A80F76681\">3.2-10 IO_dup</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7F7B8FAC7\
ABA285B\">3.2-11 IO_dup2</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap3.html#X7B30A7FA84692EC5\">3.2-12 I\
O_execv</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &\
nbsp;</span><a href=\"chap3.html#X875D9A9E8201D461\">3.2-13 IO_execve</a></spa\
n>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a h\
ref=\"chap3.html#X818044D07C64A412\">3.2-14 IO_execvp</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html\
#X843634347E88C357\">3.2-15 IO_exit</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X7F08E1187BDB619A\
\">3.2-16 IO_fchmod</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X791C4B4A81059A88\">3.2-17 IO_fch\
own</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap3.html#X7870647E866D29A4\">3.2-18 IO_fcntl</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap3.html#X86C819F37D07ECF7\">3.2-19 IO_fork</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7E27\
748983EC7B5C\">3.2-20 IO_fstat</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap3.html#X7DD25BDC79EE65AD\">3.\
2-21 IO_gethostbyname</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap3.html#X7B7164EF8307D26B\">3.2-22 IO_g\
ethostname</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X7ECF948083E38BD0\">3.2-23 IO_getpid</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap3.html#X7EC6ABAB7AB9F40F\">3.2-24 IO_getppid</a></span>\n<span cl\
ass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.\
html#X877A161482FC1769\">3.2-25 IO_getsockname</a></span>\n<span class=\"ContS\
S\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X79021\
3D885BAB495\">3.2-26 IO_getsockopt</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap3.html#X7BC965198011083B\
\">3.2-27 IO_gettimeofday</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap3.html#X7DC156EA86F3F356\">3.2-28 \
IO_gmtime</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X7D0439128512FBF6\">3.2-29 IO_kill</a></spa\
n>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a h\
ref=\"chap3.html#X8305F97C87FE448E\">3.2-30 IO_lchown</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html\
#X7E1C65EB84497185\">3.2-31 IO_link</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X7957063B807025C7\
\">3.2-32 IO_listen</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X7B7D3D64805F335F\">3.2-33 IO_loc\
altime</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap3.html#X85C475187C824830\">3.2-34 IO_lseek</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X7A8C75038517A55A\">3.2-35 IO_lstat</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8\
3D968AB84F00ABF\">3.2-36 IO_mkdir</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap3.html#X80BFF17A8099815F\"\
>3.2-37 IO_mkfifo</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X7928F1DB8379F850\">3.2-38 IO_mknod\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap3.html#X8731A44E8032D9D2\">3.2-39 IO_open</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p3.html#X78E234797EB01883\">3.2-40 IO_opendir</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7C8F0A\
44837BBE8C\">3.2-41 IO_pipe</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap3.html#X84F3D862836BF17C\">3.2-4\
2 IO_read</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X8410C6F17DE9302D\">3.2-43 IO_readdir</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap3.html#X7943F25E7EBA9A6B\">3.2-44 IO_readlink</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3\
.html#X78EB295E78B363B2\">3.2-45 IO_recv</a></span>\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap3.html#X84C617887EE\
02EB4\">3.2-46 IO_recvfrom</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X78EC95007A92AB69\">3.2-47\
IO_rename</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X7F86DBEB7876FBA5\">3.2-48 IO_rewinddir</a\
></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </spa\
n><a href=\"chap3.html#X7FA4DD537C83A199\">3.2-49 IO_rmdir</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3\
.html#X84A98D2380BF6574\">3.2-50 IO_seekdir</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X81CA6EE8\
8062010E\">3.2-51 IO_select</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap3.html#X87019FD887F55C27\">3.2-5\
2 IO_send</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X8388B0147B5745EC\">3.2-53 IO_sendto</a></s\
pan>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a\
href=\"chap3.html#X7BE641C1784D0899\">3.2-54 IO_setsockopt</a></span>\n<span \
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap\
3.html#X852B16CF82B96C84\">3.2-55 IO_socket</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7F7D2386\
7B45D525\">3.2-56 IO_stat</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap3.html#X7B0D9CEF7A3CD431\">3.2-57 \
IO_symlink</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X81FF8B678748900B\">3.2-58 IO_telldir</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap3.html#X78C93B6587B478C2\">3.2-59 IO_unlink</a></span>\n<span cl\
ass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.\
html#X80737A008450184F\">3.2-60 IO_WaitPid</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap3.html#X84EB06707\
D1BD3F1\">3.2-61 IO_write</a></span>\n</div></div>\n<div class=\"ContSect\"><s\
pan class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap3.html#\
X85065AD381BD8E0F\">3.3 <span class=\"Heading\">Further C level functions</spa\
n></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap3.html#X878007A67E806CEF\"\
>3.3-1 IO_make_sockaddr_in</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X7F3E88AD7EFD52F4\">3.3-2 \
IO_environ</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X8383E62D86BE30C6\">3.3-3 IO_InstallSIGCHL\
DHandler</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X7EEB7471816B64DF\">3.3-4 IO_RestoreSIGCHLDH\
andler</a></span>\n</div></div>\n</div>\n",
4 := "<div class=\"ChapSects\"><a href=\"chap4.html#X7D6A3F7178CB6169\">\
4 <span class=\"Heading\">High level functions for buffered I/O</span></a>\n<d\
iv class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </sp\
an><a href=\"chap4.html#X7F697A8884B57F27\">4.1 <span class=\"Heading\">Types \
and the creation of <code class=\"code\">File</code> objects</span></a>\n</spa\
n>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap4.html#X80C9B80A80E3A555\">4.1-1 IsFile\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap4.html#X7DDB0BA6836DA208\">4.1-2 IO_WrapFD</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap4.html#X7EC160D07E815DBB\">4.1-3 IO_File</a></span>\n</div></div>\n<div clas\
s=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a h\
ref=\"chap4.html#X818FA8A37C8BBB95\">4.2 <span class=\"Heading\">Reading and w\
riting</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X865A87\
3E78C822B7\">4.2-1 IO_ReadUntilEOF</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap4.html#X7D2686ED854BEF95\
\">4.2-2 IO_ReadBlock</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap4.html#X8738708E7B9DF8DB\">4.2-3 IO_Re\
adLine</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap4.html#X81E72756806C0945\">4.2-4 IO_ReadLines</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap4.html#X87E0AC547835F21D\">4.2-5 IO_HasData</a></span>\n<span class\
=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.htm\
l#X84F3D862836BF17C\">4.2-6 IO_Read</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap4.html#X84EB06707D1BD3F1\
\">4.2-7 IO_Write</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap4.html#X83A03ACB81F53BB1\">4.2-8 IO_WriteL\
ine</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap4.html#X87CE6EC17C1573AC\">4.2-9 IO_WriteLines</a></span\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap4.html#X7873A49F7CC7ECFB\">4.2-10 IO_Flush</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X\
7870634278F6C69F\">4.2-11 IO_WriteFlush</a></span>\n<span class=\"ContSS\"><br\
/><span class=\"nocss\"> </span><a href=\"chap4.html#X80CF240F7866\
4DF4\">4.2-12 IO_ReadyForWrite</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap4.html#X84052F9886ADED0D\">4.\
2-13 IO_WriteNonBlocking</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap4.html#X7C5786E07813434B\">4.2-14 I\
O_ReadyForFlush</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"\
> </span><a href=\"chap4.html#X80E977B48771D207\">4.2-15 IO_FlushNo\
nBlocking</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap4.html#X820DA9C97C2E80BA\">4.2-16 IO_Close</a></sp\
an>\n</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class\
=\"nocss\"> </span><a href=\"chap4.html#X87C3D1B984960984\">4.3 <span cla\
ss=\"Heading\">Other functions</span></a>\n</span>\n<div class=\"ContSSBlock\"\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap4.html#X7F893EFC7D0C7BF2\">4.3-1 IO_GetFD</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X8\
6666C9681EA7297\">4.3-2 IO_GetWBuf</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap4.html#X81CA6EE88062010E\
\">4.3-3 IO_Select</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap4.html#X84B16DB878265F02\">4.3-4 IO_ListD\
ir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap4.html#X7D849D987800A0F6\">4.3-5 ChangeCurrentDirectory</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap4.html#X8568CE6684C90CE5\">4.3-6 IO_MakeIPAddressPort</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap4.html#X7F9AAE018474E1D8\">4.3-7 IO_Environment</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4\
.html#X7CF3DB5081A91600\">4.3-8 IO_MakeEnvList</a></span>\n</div></div>\n<div \
class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span>\
<a href=\"chap4.html#X85BB2BA684485CD6\">4.4 <span class=\"Heading\">Inter pro\
cess communication</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.h\
tml#X84E91FE27A7860F3\">4.4-1 IO_FindExecutable</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X7C43\
017E7AC5973A\">4.4-2 IO_CloseAllFDs</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap4.html#X7891F56386C008CE\
\">4.4-3 IO_Popen</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap4.html#X7E05CF6481CBC0A1\">4.4-4 IO_Popen2\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap4.html#X7975BC6D80BC71E5\">4.4-5 IO_Popen3</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap4.html#X813219C17FB54731\">4.4-6 IO_StartPipeline</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X\
86D61FAE871B23E8\">4.4-7 IO_StringFilterFile</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X83E765\
D783531845\">4.4-8 IO_FileFilterString</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap4.html#X801CE3708656F\
B00\">4.4-9 IO_FilteredFile</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap4.html#X7D62E9C57F1F96FB\">4.4-1\
0 IO_SendStringBackground</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap4.html#X8484B0CD7836A19E\">4.4-11 \
IO_PipeThrough</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap4.html#X7A9ACA3979635506\">4.4-12 IO_PipeThro\
ughWithError</a></span>\n</div></div>\n</div>\n",
5 := "<div class=\"ChapSects\"><a href=\"chap5.html#X81BBA46880EBFC7D\">\
5 <span class=\"Heading\">Object serialisation (Pickling)</span></a>\n<div cla\
ss=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a \
href=\"chap5.html#X7E504814811605B7\">5.1 <span class=\"Heading\">Result objec\
ts</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap5.html#X86E06A12851\
1BA25\">5.1-1 IO_Error</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap5.html#X7887BFCF824B439B\">5.1-2 IO_N\
othing</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap5.html#X7D4D092B8401EA0F\">5.1-3 IO_OK</a></span>\n</\
div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocs\
s\"> </span><a href=\"chap5.html#X7F68A8F47F87B243\">5.2 <span class=\"He\
ading\">Pickling and unpickling</span></a>\n</span>\n<div class=\"ContSSBlock\
\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap5.html#X7E01770481297DF1\">5.2-1 IO_Pickle</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap5.html\
#X8228EE63809A6DEF\">5.2-2 IO_Unpickle</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap5.html#X844736FB80F6E\
E97\">5.2-3 IO_ClearPickleCache</a></span>\n</div></div>\n<div class=\"ContSec\
t\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap5\
.html#X7B1C9A9C7D3C0312\">5.3 <span class=\"Heading\">Extending the pickling f\
ramework</span></a>\n</span>\n</div>\n</div>\n",
6 := "<div class=\"ChapSects\"><a href=\"chap6.html#X78A8811F7BD55ABA\">\
6 <span class=\"Heading\">Really random sources</span></a>\n<div class=\"ContS\
ect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"cha\
p6.html#X8173135A7D187358\">6.1 <span class=\"Heading\">The functions</span></\
a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span c\
lass=\"nocss\"> </span><a href=\"chap6.html#X7CB0B5BC82F8FD8F\">6.1\
-1 RandomSource</a></span>\n</div></div>\n</div>\n",
7 := "<div class=\"ChapSects\"><a href=\"chap7.html#X79DA05BB7CCC1749\">\
7 <span class=\"Heading\">A client side implementation of the HTTP protocol</s\
pan></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap7.html#X7E8B5F0A87F2C1F7\">7.1 <span class=\"Hea\
ding\">Functions for client side HTTP</span></a>\n</span>\n<div class=\"ContSS\
Block\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </spa\
n><a href=\"chap7.html#X7B5588D5856BE6DD\">7.1-1 OpenHTTPConnection</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap7.html#X80FF9E307BDA0659\">7.1-2 HTTPRequest</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap7.html\
#X83526BF378B3D8F2\">7.1-3 HTTPTimeoutForSelect</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap7.html#X8170\
2FA07F2AF472\">7.1-4 CloseHTTPConnection</a></span>\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap7.html#X7DBCB0B4801\
E4D6D\">7.1-5 SingleHTTPRequest</a></span>\n<span class=\"ContSS\"><br /><span\
class=\"nocss\"> </span><a href=\"chap7.html#X78BAF7A77F6BE631\">7\
.1-6 CheckForUpdates</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap7.html#X872B174F7FFD345B\">7.1-7 ReadWe\
b</a></span>\n</div></div>\n</div>\n",
8 := "<div class=\"ChapSects\"><a href=\"chap8.html#X7E9E9B3F7B585BA7\">\
8 <span class=\"Heading\">Background jobs using fork</span></a>\n<div class=\"\
ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\
\"chap8.html#X7CCAF66D7E7E098E\">8.1 <span class=\"Heading\">Background jobs</\
span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap8.html#X7FE0061F8484814\
B\">8.1-1 BackgroundJobByFork</a></span>\n<span class=\"ContSS\"><br /><span c\
lass=\"nocss\"> </span><a href=\"chap8.html#X7B7D934583257B9A\">8.1\
-2 IsIdle</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap8.html#X86E1283D7AD05169\">8.1-3 HasTerminated</a>\
</span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span\
><a href=\"chap8.html#X7C139805804E6FE1\">8.1-4 WaitUntilIdle</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap8.html#X7F4B8B9078D0E18E\">8.1-5 Pickup</a></span>\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap8.html#X864492F37E\
858197\">8.1-6 Submit</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap8.html#X841B3A1A7967DEA4\">8.1-7 Kill<\
/a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><spa\
n class=\"nocss\"> </span><a href=\"chap8.html#X7AF7D78B7F6F1212\">8.2 <s\
pan class=\"Heading\">Parallel programming skeletons</span></a>\n</span>\n<div\
class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\">&n\
bsp; </span><a href=\"chap8.html#X78A59A628449960F\">8.2-1 ParTakeFirstRe\
sultByFork</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap8.html#X7A1F40D1841C36D2\">8.2-2 ParDoByFork</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap8.html#X80DA6945873DCC66\">8.2-3 ParListByFork</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p8.html#X7AD5D85283BC41AC\">8.2-4 ParMapReduceByFork</a></span>\n</div></div>\
\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> \
</span><a href=\"chap8.html#X7D18519B879047B3\">8.3 <span class=\"Heading\">Wo\
rker farms</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"Con\
tSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html#X878\
96E477DCB9C55\">8.3-1 ParWorkerFarmByFork</a></span>\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap8.html#X7ED2CE687E\
A7FC66\">8.3-2 DoQueues</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap8.html#X83289405792FF902\">8.3-3 Ki\
ll</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap8.html#X7C4E3D5A7FE617FE\">8.3-4 IsIdle</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p8.html#X81773CEC8246EDF3\">8.3-5 Submit</a></span>\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap8.html#X7878258F841\
38DEA\">8.3-6 Pickup</a></span>\n</div></div>\n</div>\n",
9 := "<div class=\"ChapSects\"><a href=\"chap9.html#X7A466B907B882CA0\">\
9 <span class=\"Heading\">I/O multiplexing</span></a>\n<div class=\"ContSect\"\
><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap9.ht\
ml#X7DFB63A97E67C0A1\">9.1 <span class=\"Heading\">Introduction</span></a>\n</\
span>\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"n\
ocss\"> </span><a href=\"chap9.html#X853D93B47EA82379\">9.2 <span class=\
\"Heading\">The operations for <code class=\"code\">IOHub</code> objects</span\
></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><spa\
n class=\"nocss\"> </span><a href=\"chap9.html#X83C0523D8538E866\">\
9.2-1 IOHub</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap9.html#X7D1D9A8D837ECCEB\">9.2-2 NewConnection</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap9.html#X8553D2E47C05797F\">9.2-3 CloseConnection</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap9.html#X7F7FD824866CB582\">9.2-4 AttachServingSocket</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9\
.html#X7866F9DA8358968C\">9.2-5 ShutdownServingSocket</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9.html\
#X84AFBD658118ABB8\">9.2-6 Shutdown</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap9.html#X7BE1B9FD82C9B8E0\
\">9.2-7 AcceptNewConnection</a></span>\n<span class=\"ContSS\"><br /><span cl\
ass=\"nocss\"> </span><a href=\"chap9.html#X85F634D4826D89F1\">9.2-\
8 SubmitOutput</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap9.html#X837629707DF9B60E\">9.2-9 GetInput</a>\
</span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span\
><a href=\"chap9.html#X79031BC687502CB6\">9.2-10 NewTCPConnection</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap9.html#X7F8C7F5782213A71\">9.2-11 OutputQueue</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9.html#X\
7972FF1C7B59D0A4\">9.2-12 InputQueue</a></span>\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap9.html#X810D418A802D09D\
1\">9.2-13 DoIO</a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\
\"tocline\"><span class=\"nocss\"> </span><a href=\"chap9.html#X7A489A5D7\
9DA9E5C\">9.3 <span class=\"Heading\"> Examples </span></a>\n</span>\n</div>\n\
</div>\n" ),
chapsectlinkstext :=
rec(
1 := "<div class=\"ChapSects\"><a href=\"chap1.html#X874E1D45845007FE\">\
1 <span class=\"Heading\">Preface</span></a>\n</div>\n",
10 := "<div class=\"ChapSects\"><a href=\"chap10.html#X7EADF566874177D8\
\">10 <span class=\"Heading\">Examples of usage</span></a>\n<div class=\"ContS\
ect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"cha\
p10.html#X7EC25CA68794860A\">10.1 <span class=\"Heading\">Writing and reading \
a file</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"tocl\
ine\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7AECE665813D6E\
4D\">10.2 <span class=\"Heading\">Using filtering programs to read and write f\
iles</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"toclin\
e\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7A8A180D7B335151\
\">10.3 <span class=\"Heading\">Using filters when reading or writing files se\
quentially</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"\
tocline\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7BD2BF7F87\
573C69\">10.4 <span class=\"Heading\">Accessing a web page</span></a>\n</span>\
\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap10.html#X81BD8400832EE20B\">10.5 <span class=\"H\
eading\">(Un-)Pickling</span></a>\n</span>\n</div>\n</div>\n",
11 := "<div class=\"ChapSects\"><a href=\"chap11.html#X861E5DF986F89AE2\
\">11 <span class=\"Heading\">License</span></a>\n</div>\n",
2 := "<div class=\"ChapSects\"><a href=\"chap2.html#X87D1C7D0861CBE25\">\
2 <span class=\"Heading\">Installation of the <strong class=\"pkg\">IO</strong\
>-package</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span cl\
ass=\"nocss\"> </span><a href=\"chap2.html#X7FB00ED2787027A3\">2.1 <span \
class=\"Heading\">Recompiling the documentation</span></a>\n</span>\n</div>\n<\
/div>\n",
3 := "<div class=\"ChapSects\"><a href=\"chap3.html#X85DE7F82801DDA50\">\
3 <span class=\"Heading\">Functions directly available from the C library</spa\
n></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\">\
</span><a href=\"chap3.html#X85D3551379BA32FC\">3.1 <span class=\"Headin\
g\">Differences in arguments - an overview</span></a>\n</span>\n</div>\n<div c\
lass=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><\
a href=\"chap3.html#X800F9F3E810A7228\">3.2 <span class=\"Heading\">The low-le\
vel functions in detail</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap3.html#X7E474E9787012FE4\">3.2-1 IO_accept</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X791A63\
41852001F8\">3.2-2 IO_bind</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X790139B37E87FA61\">3.2-3 \
IO_chdir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X83D4CB2681674FA4\">3.2-4 IO_chmod</a></span\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap3.html#X85C0617479E4D952\">3.2-5 IO_chown</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8\
20DA9C97C2E80BA\">3.2-6 IO_close</a></span>\n<span class=\"ContSS\"><br /><spa\
n class=\"nocss\"> </span><a href=\"chap3.html#X8078699B84F082A4\">\
3.2-7 IO_closedir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X7DE9D8B387D3A3D5\">3.2-8 IO_connec\
t</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> <\
/span><a href=\"chap3.html#X78FCF69C7FCF3BD7\">3.2-9 IO_creat</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap3.html#X7DAAD93A80F76681\">3.2-10 IO_dup</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7F7B8FAC7\
ABA285B\">3.2-11 IO_dup2</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap3.html#X7B30A7FA84692EC5\">3.2-12 I\
O_execv</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &\
nbsp;</span><a href=\"chap3.html#X875D9A9E8201D461\">3.2-13 IO_execve</a></spa\
n>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a h\
ref=\"chap3.html#X818044D07C64A412\">3.2-14 IO_execvp</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html\
#X843634347E88C357\">3.2-15 IO_exit</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X7F08E1187BDB619A\
\">3.2-16 IO_fchmod</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X791C4B4A81059A88\">3.2-17 IO_fch\
own</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap3.html#X7870647E866D29A4\">3.2-18 IO_fcntl</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap3.html#X86C819F37D07ECF7\">3.2-19 IO_fork</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7E27\
748983EC7B5C\">3.2-20 IO_fstat</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap3.html#X7DD25BDC79EE65AD\">3.\
2-21 IO_gethostbyname</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap3.html#X7B7164EF8307D26B\">3.2-22 IO_g\
ethostname</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X7ECF948083E38BD0\">3.2-23 IO_getpid</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap3.html#X7EC6ABAB7AB9F40F\">3.2-24 IO_getppid</a></span>\n<span cl\
ass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.\
html#X877A161482FC1769\">3.2-25 IO_getsockname</a></span>\n<span class=\"ContS\
S\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X79021\
3D885BAB495\">3.2-26 IO_getsockopt</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap3.html#X7BC965198011083B\
\">3.2-27 IO_gettimeofday</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap3.html#X7DC156EA86F3F356\">3.2-28 \
IO_gmtime</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X7D0439128512FBF6\">3.2-29 IO_kill</a></spa\
n>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a h\
ref=\"chap3.html#X8305F97C87FE448E\">3.2-30 IO_lchown</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html\
#X7E1C65EB84497185\">3.2-31 IO_link</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X7957063B807025C7\
\">3.2-32 IO_listen</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X7B7D3D64805F335F\">3.2-33 IO_loc\
altime</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap3.html#X85C475187C824830\">3.2-34 IO_lseek</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X7A8C75038517A55A\">3.2-35 IO_lstat</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8\
3D968AB84F00ABF\">3.2-36 IO_mkdir</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap3.html#X80BFF17A8099815F\"\
>3.2-37 IO_mkfifo</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X7928F1DB8379F850\">3.2-38 IO_mknod\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap3.html#X8731A44E8032D9D2\">3.2-39 IO_open</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p3.html#X78E234797EB01883\">3.2-40 IO_opendir</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7C8F0A\
44837BBE8C\">3.2-41 IO_pipe</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap3.html#X84F3D862836BF17C\">3.2-4\
2 IO_read</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X8410C6F17DE9302D\">3.2-43 IO_readdir</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap3.html#X7943F25E7EBA9A6B\">3.2-44 IO_readlink</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3\
.html#X78EB295E78B363B2\">3.2-45 IO_recv</a></span>\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap3.html#X84C617887EE\
02EB4\">3.2-46 IO_recvfrom</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X78EC95007A92AB69\">3.2-47\
IO_rename</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X7F86DBEB7876FBA5\">3.2-48 IO_rewinddir</a\
></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </spa\
n><a href=\"chap3.html#X7FA4DD537C83A199\">3.2-49 IO_rmdir</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3\
.html#X84A98D2380BF6574\">3.2-50 IO_seekdir</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X81CA6EE8\
8062010E\">3.2-51 IO_select</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap3.html#X87019FD887F55C27\">3.2-5\
2 IO_send</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X8388B0147B5745EC\">3.2-53 IO_sendto</a></s\
pan>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a\
href=\"chap3.html#X7BE641C1784D0899\">3.2-54 IO_setsockopt</a></span>\n<span \
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap\
3.html#X852B16CF82B96C84\">3.2-55 IO_socket</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7F7D2386\
7B45D525\">3.2-56 IO_stat</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap3.html#X7B0D9CEF7A3CD431\">3.2-57 \
IO_symlink</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X81FF8B678748900B\">3.2-58 IO_telldir</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap3.html#X78C93B6587B478C2\">3.2-59 IO_unlink</a></span>\n<span cl\
ass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.\
html#X80737A008450184F\">3.2-60 IO_WaitPid</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap3.html#X84EB06707\
D1BD3F1\">3.2-61 IO_write</a></span>\n</div></div>\n<div class=\"ContSect\"><s\
pan class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap3.html#\
X85065AD381BD8E0F\">3.3 <span class=\"Heading\">Further C level functions</spa\
n></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap3.html#X878007A67E806CEF\"\
>3.3-1 IO_make_sockaddr_in</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X7F3E88AD7EFD52F4\">3.3-2 \
IO_environ</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap3.html#X8383E62D86BE30C6\">3.3-3 IO_InstallSIGCHL\
DHandler</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X7EEB7471816B64DF\">3.3-4 IO_RestoreSIGCHLDH\
andler</a></span>\n</div></div>\n</div>\n",
4 := "<div class=\"ChapSects\"><a href=\"chap4.html#X7D6A3F7178CB6169\">\
4 <span class=\"Heading\">High level functions for buffered I/O</span></a>\n<d\
iv class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </sp\
an><a href=\"chap4.html#X7F697A8884B57F27\">4.1 <span class=\"Heading\">Types \
and the creation of <code class=\"code\">File</code> objects</span></a>\n</spa\
n>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap4.html#X80C9B80A80E3A555\">4.1-1 IsFile\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap4.html#X7DDB0BA6836DA208\">4.1-2 IO_WrapFD</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap4.html#X7EC160D07E815DBB\">4.1-3 IO_File</a></span>\n</div></div>\n<div clas\
s=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a h\
ref=\"chap4.html#X818FA8A37C8BBB95\">4.2 <span class=\"Heading\">Reading and w\
riting</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X865A87\
3E78C822B7\">4.2-1 IO_ReadUntilEOF</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap4.html#X7D2686ED854BEF95\
\">4.2-2 IO_ReadBlock</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap4.html#X8738708E7B9DF8DB\">4.2-3 IO_Re\
adLine</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap4.html#X81E72756806C0945\">4.2-4 IO_ReadLines</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap4.html#X87E0AC547835F21D\">4.2-5 IO_HasData</a></span>\n<span class\
=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.htm\
l#X84F3D862836BF17C\">4.2-6 IO_Read</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap4.html#X84EB06707D1BD3F1\
\">4.2-7 IO_Write</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap4.html#X83A03ACB81F53BB1\">4.2-8 IO_WriteL\
ine</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap4.html#X87CE6EC17C1573AC\">4.2-9 IO_WriteLines</a></span\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap4.html#X7873A49F7CC7ECFB\">4.2-10 IO_Flush</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X\
7870634278F6C69F\">4.2-11 IO_WriteFlush</a></span>\n<span class=\"ContSS\"><br\
/><span class=\"nocss\"> </span><a href=\"chap4.html#X80CF240F7866\
4DF4\">4.2-12 IO_ReadyForWrite</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap4.html#X84052F9886ADED0D\">4.\
2-13 IO_WriteNonBlocking</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap4.html#X7C5786E07813434B\">4.2-14 I\
O_ReadyForFlush</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"\
> </span><a href=\"chap4.html#X80E977B48771D207\">4.2-15 IO_FlushNo\
nBlocking</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap4.html#X820DA9C97C2E80BA\">4.2-16 IO_Close</a></sp\
an>\n</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class\
=\"nocss\"> </span><a href=\"chap4.html#X87C3D1B984960984\">4.3 <span cla\
ss=\"Heading\">Other functions</span></a>\n</span>\n<div class=\"ContSSBlock\"\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap4.html#X7F893EFC7D0C7BF2\">4.3-1 IO_GetFD</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X8\
6666C9681EA7297\">4.3-2 IO_GetWBuf</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap4.html#X81CA6EE88062010E\
\">4.3-3 IO_Select</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap4.html#X84B16DB878265F02\">4.3-4 IO_ListD\
ir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap4.html#X7D849D987800A0F6\">4.3-5 ChangeCurrentDirectory</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap4.html#X8568CE6684C90CE5\">4.3-6 IO_MakeIPAddressPort</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap4.html#X7F9AAE018474E1D8\">4.3-7 IO_Environment</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4\
.html#X7CF3DB5081A91600\">4.3-8 IO_MakeEnvList</a></span>\n</div></div>\n<div \
class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span>\
<a href=\"chap4.html#X85BB2BA684485CD6\">4.4 <span class=\"Heading\">Inter pro\
cess communication</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.h\
tml#X84E91FE27A7860F3\">4.4-1 IO_FindExecutable</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X7C43\
017E7AC5973A\">4.4-2 IO_CloseAllFDs</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap4.html#X7891F56386C008CE\
\">4.4-3 IO_Popen</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap4.html#X7E05CF6481CBC0A1\">4.4-4 IO_Popen2\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap4.html#X7975BC6D80BC71E5\">4.4-5 IO_Popen3</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap4.html#X813219C17FB54731\">4.4-6 IO_StartPipeline</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X\
86D61FAE871B23E8\">4.4-7 IO_StringFilterFile</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X83E765\
D783531845\">4.4-8 IO_FileFilterString</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap4.html#X801CE3708656F\
B00\">4.4-9 IO_FilteredFile</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap4.html#X7D62E9C57F1F96FB\">4.4-1\
0 IO_SendStringBackground</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap4.html#X8484B0CD7836A19E\">4.4-11 \
IO_PipeThrough</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap4.html#X7A9ACA3979635506\">4.4-12 IO_PipeThro\
ughWithError</a></span>\n</div></div>\n</div>\n",
5 := "<div class=\"ChapSects\"><a href=\"chap5.html#X81BBA46880EBFC7D\">\
5 <span class=\"Heading\">Object serialisation (Pickling)</span></a>\n<div cla\
ss=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a \
href=\"chap5.html#X7E504814811605B7\">5.1 <span class=\"Heading\">Result objec\
ts</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap5.html#X86E06A12851\
1BA25\">5.1-1 IO_Error</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap5.html#X7887BFCF824B439B\">5.1-2 IO_N\
othing</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap5.html#X7D4D092B8401EA0F\">5.1-3 IO_OK</a></span>\n</\
div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocs\
s\"> </span><a href=\"chap5.html#X7F68A8F47F87B243\">5.2 <span class=\"He\
ading\">Pickling and unpickling</span></a>\n</span>\n<div class=\"ContSSBlock\
\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap5.html#X7E01770481297DF1\">5.2-1 IO_Pickle</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap5.html\
#X8228EE63809A6DEF\">5.2-2 IO_Unpickle</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap5.html#X844736FB80F6E\
E97\">5.2-3 IO_ClearPickleCache</a></span>\n</div></div>\n<div class=\"ContSec\
t\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap5\
.html#X7B1C9A9C7D3C0312\">5.3 <span class=\"Heading\">Extending the pickling f\
ramework</span></a>\n</span>\n</div>\n</div>\n",
6 := "<div class=\"ChapSects\"><a href=\"chap6.html#X78A8811F7BD55ABA\">\
6 <span class=\"Heading\">Really random sources</span></a>\n<div class=\"ContS\
ect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"cha\
p6.html#X8173135A7D187358\">6.1 <span class=\"Heading\">The functions</span></\
a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span c\
lass=\"nocss\"> </span><a href=\"chap6.html#X7CB0B5BC82F8FD8F\">6.1\
-1 RandomSource</a></span>\n</div></div>\n</div>\n",
7 := "<div class=\"ChapSects\"><a href=\"chap7.html#X79DA05BB7CCC1749\">\
7 <span class=\"Heading\">A client side implementation of the HTTP protocol</s\
pan></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap7.html#X7E8B5F0A87F2C1F7\">7.1 <span class=\"Hea\
ding\">Functions for client side HTTP</span></a>\n</span>\n<div class=\"ContSS\
Block\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </spa\
n><a href=\"chap7.html#X7B5588D5856BE6DD\">7.1-1 OpenHTTPConnection</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap7.html#X80FF9E307BDA0659\">7.1-2 HTTPRequest</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap7.html\
#X83526BF378B3D8F2\">7.1-3 HTTPTimeoutForSelect</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap7.html#X8170\
2FA07F2AF472\">7.1-4 CloseHTTPConnection</a></span>\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap7.html#X7DBCB0B4801\
E4D6D\">7.1-5 SingleHTTPRequest</a></span>\n<span class=\"ContSS\"><br /><span\
class=\"nocss\"> </span><a href=\"chap7.html#X78BAF7A77F6BE631\">7\
.1-6 CheckForUpdates</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap7.html#X872B174F7FFD345B\">7.1-7 ReadWe\
b</a></span>\n</div></div>\n</div>\n",
8 := "<div class=\"ChapSects\"><a href=\"chap8.html#X7E9E9B3F7B585BA7\">\
8 <span class=\"Heading\">Background jobs using fork</span></a>\n<div class=\"\
ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\
\"chap8.html#X7CCAF66D7E7E098E\">8.1 <span class=\"Heading\">Background jobs</\
span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap8.html#X7FE0061F8484814\
B\">8.1-1 BackgroundJobByFork</a></span>\n<span class=\"ContSS\"><br /><span c\
lass=\"nocss\"> </span><a href=\"chap8.html#X7B7D934583257B9A\">8.1\
-2 IsIdle</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap8.html#X86E1283D7AD05169\">8.1-3 HasTerminated</a>\
</span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span\
><a href=\"chap8.html#X7C139805804E6FE1\">8.1-4 WaitUntilIdle</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap8.html#X7F4B8B9078D0E18E\">8.1-5 Pickup</a></span>\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap8.html#X864492F37E\
858197\">8.1-6 Submit</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap8.html#X841B3A1A7967DEA4\">8.1-7 Kill<\
/a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><spa\
n class=\"nocss\"> </span><a href=\"chap8.html#X7AF7D78B7F6F1212\">8.2 <s\
pan class=\"Heading\">Parallel programming skeletons</span></a>\n</span>\n<div\
class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\">&n\
bsp; </span><a href=\"chap8.html#X78A59A628449960F\">8.2-1 ParTakeFirstRe\
sultByFork</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap8.html#X7A1F40D1841C36D2\">8.2-2 ParDoByFork</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap8.html#X80DA6945873DCC66\">8.2-3 ParListByFork</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p8.html#X7AD5D85283BC41AC\">8.2-4 ParMapReduceByFork</a></span>\n</div></div>\
\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> \
</span><a href=\"chap8.html#X7D18519B879047B3\">8.3 <span class=\"Heading\">Wo\
rker farms</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"Con\
tSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html#X878\
96E477DCB9C55\">8.3-1 ParWorkerFarmByFork</a></span>\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap8.html#X7ED2CE687E\
A7FC66\">8.3-2 DoQueues</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap8.html#X83289405792FF902\">8.3-3 Ki\
ll</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap8.html#X7C4E3D5A7FE617FE\">8.3-4 IsIdle</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p8.html#X81773CEC8246EDF3\">8.3-5 Submit</a></span>\n<span class=\"ContSS\"><b\
r /><span class=\"nocss\"> </span><a href=\"chap8.html#X7878258F841\
38DEA\">8.3-6 Pickup</a></span>\n</div></div>\n</div>\n",
9 := "<div class=\"ChapSects\"><a href=\"chap9.html#X7A466B907B882CA0\">\
9 <span class=\"Heading\">I/O multiplexing</span></a>\n<div class=\"ContSect\"\
><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap9.ht\
ml#X7DFB63A97E67C0A1\">9.1 <span class=\"Heading\">Introduction</span></a>\n</\
span>\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"n\
ocss\"> </span><a href=\"chap9.html#X853D93B47EA82379\">9.2 <span class=\
\"Heading\">The operations for <code class=\"code\">IOHub</code> objects</span\
></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><spa\
n class=\"nocss\"> </span><a href=\"chap9.html#X83C0523D8538E866\">\
9.2-1 IOHub</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap9.html#X7D1D9A8D837ECCEB\">9.2-2 NewConnection</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap9.html#X8553D2E47C05797F\">9.2-3 CloseConnection</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap9.html#X7F7FD824866CB582\">9.2-4 AttachServingSocket</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9\
.html#X7866F9DA8358968C\">9.2-5 ShutdownServingSocket</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9.html\
#X84AFBD658118ABB8\">9.2-6 Shutdown</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap9.html#X7BE1B9FD82C9B8E0\
\">9.2-7 AcceptNewConnection</a></span>\n<span class=\"ContSS\"><br /><span cl\
ass=\"nocss\"> </span><a href=\"chap9.html#X85F634D4826D89F1\">9.2-\
8 SubmitOutput</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap9.html#X837629707DF9B60E\">9.2-9 GetInput</a>\
</span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span\
><a href=\"chap9.html#X79031BC687502CB6\">9.2-10 NewTCPConnection</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap9.html#X7F8C7F5782213A71\">9.2-11 OutputQueue</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9.html#X\
7972FF1C7B59D0A4\">9.2-12 InputQueue</a></span>\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap9.html#X810D418A802D09D\
1\">9.2-13 DoIO</a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\
\"tocline\"><span class=\"nocss\"> </span><a href=\"chap9.html#X7A489A5D7\
9DA9E5C\">9.3 <span class=\"Heading\"> Examples </span></a>\n</span>\n</div>\n\
</div>\n" ), chaptitle := rec( 1 := "<span class=\"Heading\">Preface</span>",
10 := "<span class=\"Heading\">Examples of usage</span>",
11 := "<span class=\"Heading\">License</span>",
2 := "<span class=\"Heading\">Installation of the <strong class=\"pkg\">\
IO</strong>-package</span>",
3 := "<span class=\"Heading\">Functions directly available from the C li\
brary</span>",
4 := "<span class=\"Heading\">High level functions for buffered I/O</spa\
n>", 5 := "<span class=\"Heading\">Object serialisation (Pickling)</span>",
6 := "<span class=\"Heading\">Really random sources</span>",
7 := "<span class=\"Heading\">A client side implementation of the HTTP p\
rotocol</span>",
8 := "<span class=\"Heading\">Background jobs using fork</span>",
9 := "<span class=\"Heading\">I/O multiplexing</span>" ),
content :=
[
rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"",
count := [ 0, 0, 0, 1 ], name := "XMLPI", root := ~ ),
rec( content := "Book SYSTEM \"gapdoc.dtd\"", count := [ 0, 0, 0, 1 ],
name := "XMLDOCTYPE", root := ~ ),
rec(
content := "\n\n io.xml IO package documentation \
Max Neunhoeffer\n\n Copyright (C) 2006-2012 Max Neunhoeffer, Lehrstuhl\
D f. Math., RWTH Aachen\n This file is free software, see license informatio\
n at the end.\n\n", count := [ 0, 0, 0, 1 ], name := "XMLCOMMENT", root := ~ )
,
rec( attributes := rec( Name := "IO" ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "GAP 4 Package ",
count := [ 0, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 0, 0, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 0, 1 ], mathmode := "Text",
name := "Package", next := 385, root := ~,
start := 364, stop := 384 ) ],
count := [ 0, 0, 0, 1 ], name := "Title",
next := 393, root := ~, start := 343, stop := 392 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Bindings for low level C library \
I/O routines", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 0, 0, 0, 1 ],
name := "Subtitle", next := 464, root := ~,
start := 398, stop := 463 ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n Version 4.3.1\n ",
count := [ 0, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 0, 1 ], name := "Version",
next := 513, root := ~, start := 469, stop := 512 ),
rec( attributes := rec( ),
content :=
[
rec( content := "Max Neunhöffer\n",
count := [ 0, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSchool of Mathematics a\
nd Statistics\nMathematical Institute\nUniversity of St Andrews\nNorth Haugh\n\
St Andrews, Fife KY16 9SS\nScotland, UK\n", count := [ 0, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 0, 2 ], name := "Address",
next := 698, root := ~, start := 542,
stop := 697 ),
rec( content := "\n ",
count := [ 0, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "neunhoef@mcs.st-and.ac.uk\
", count := [ 0, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
], count := [ 0, 0, 0, 3 ],
mathmode := "Text", name := "Email",
next := 743, root := ~, start := 703,
stop := 742 ),
rec( content := "\n ",
count := [ 0, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "http://www-groups.mcs.st-\
and.ac.uk/~neunhoef", count := [ 0, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 0, 3 ], mathmode := "Text",
name := "Homepage", next := 819, root := ~,
start := 748, stop := 818 ),
rec( content := "\n ",
count := [ 0, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 0, 1 ], name := "Author",
next := 833, root := ~, start := 518, stop := 832 ),
rec( attributes := rec( ),
content :=
[
rec( content := "March 2014",
count := [ 0, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 0, 3 ], name := "Date",
next := 861, root := ~, start := 838, stop := 860 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n © 2005-2012 by Max Neunhö\
ffer", count := [ 0, 0, 1, 1 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 0, 0, 1, 2 ], mathmode := "Text",
name := "P", next := 923, root := ~,
start := 919, stop := 922 ),
rec(
content := "\n\n This package may be distri\
buted under the terms and conditions of the\n GNU Public License Version 3 or\
later.\n", count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 0, 0, 1, 1 ],
name := "Copyright", next := 1050, root := ~,
start := 863, stop := 1049 ) ],
count := [ 0, 0, 0, 1 ], mathmode := "Text",
name := "TitlePage", next := 1063, root := ~, start := 327,
stop := 1062 ),
rec(
content := " TableOfContents . . . . . . generate a table\
of contents ", count := [ 0, 0, 1, 2 ], mathmode := "Text",
name := "XMLCOMMENT", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 0, 0, 2, 1 ], mathmode := "Text",
name := "TableOfContents", next := 1154, root := ~,
start := 1136, stop := 1153 ),
rec( content := " The only chapter of the book ",
count := [ 0, 0, 2, 1 ], mathmode := "Text",
name := "XMLCOMMENT", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n", count := [ 0, 0, 2, 1 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
content := " \n\n main.xml IO package do\
cumentation Max Neunhoeffer\n\n Copyright (C) 2006-2010 Max Neunho\
effer\n This file is free software, see license information at the end.\n\nTh\
is is the main chapter of the documentation.\n\n", count := [ 0, 0, 2, 1 ],
mathmode := "Text", name := "XMLCOMMENT", root := ~
),
rec( content := "\n\n", count := [ 0, 0, 2, 1 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( Label := "Chap-Preface" ),
content :=
[
rec( content := "\n", count := [ 1, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Preface",
count := [ 1, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 1505, root := ~,
start := 1479, stop := 1504 ),
rec( content := "\n", count := [ 1, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 1, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 1, 0, 0, 3 ],
mathmode := "Text",
name := "Package", next := 1534,
root := ~, start := 1513,
stop := 1533 ) ],
count := [ 1, 0, 0, 3 ], mathmode := "Text",
name := "Index", next := 1542, root := ~,
start := 1506, stop := 1541 ),
rec(
content := "\n\nThe purpose of this package \
is to allow efficient and flexible input/output\noperations from ",
count := [ 1, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 1, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := ". This is achieved by providing \
bindings to the\nlow-level I/O functions in the C-library. On top of this an i\
mplementation\nof buffered I/O in the ", count := [ 1, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 1, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " language is provided. Further, \
a framework\nfor serialisation of arbitrary ", count := [ 1, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 1, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " objects is implemented.\nFinall\
y, an implementation of the client side of the HTTP protocol is\nincluded in t\
he package.", count := [ 1, 0, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 1, 0, 0, 4 ], mathmode := "Text",
name := "P", next := 1995, root := ~,
start := 1991, stop := 1994 ),
rec(
content := "\n\nThis package allows to use f\
ile based I/O, access to links and file\nsystems, pipes, sockets, and the UDP \
and TCP/IP protocols.", count := [ 1, 0, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "P", next := 2127, root := ~,
start := 2123, stop := 2126 ),
rec( content := "\n\nBy default the ",
count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 1, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "Package", next := 2165, root := ~,
start := 2144, stop := 2164 ),
rec(
content := " package is not automatically \
loaded\nby ", count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 1, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " when it is installed. \
You must load the package\nwith ", count := [ 1, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "LoadPackage(\"IO\");",
count := [ 1, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "C", next := 2312, root := ~,
start := 2287, stop := 2311 ),
rec(
content := " before its functions bec\
ome\navailable.", count := [ 1, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 1, 0, 0, 6 ], mathmode := "Text",
name := "P", next := 2362, root := ~,
start := 2358, stop := 2361 ),
rec(
content := "\n\nFor bug reports, feature req\
uests and suggestions, please use our\n", count := [ 1, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes := rec( Text := "issue tracker" )
,
content :=
[
rec(
content := "https://github.com/neunho\
ef/io/issues", count := [ 1, 0, 0, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 1, 0, 0, 6 ], mathmode := "Text",
name := "URL", next := 2499, root := ~,
start := 2430, stop := 2498 ),
rec( content := ".\n\n",
count := [ 1, 0, 0, 6 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 1, 0, 0, 1 ], mathmode := "Text",
name := "Chapter", next := 2512, root := ~,
start := 1448, stop := 2511 ),
rec( content := "\n\n", count := [ 1, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( Label := "Chap-Install" ),
content :=
[
rec( content := "\n", count := [ 2, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Installation of the ",
count := [ 2, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 2, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 2, 0, 0, 2 ],
mathmode := "Text",
name := "Package", next := 2595,
root := ~, start := 2574,
stop := 2594 ),
rec( content := "-package",
count := [ 2, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 2613, root := ~,
start := 2545, stop := 2612 ),
rec(
content := "\n\nTo get the newest version of\
this ", count := [ 2, 0, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " 4 package download one of the\n\
archive files\n", count := [ 2, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count := [ 2, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
),
rec( attributes := rec( ),
content :=
[
rec(
content := "io-x.x.ta\
r.gz", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 2, 0, 0, 5 ],
mathmode := "Text",
name := "F", next := 2733,
root := ~, start := 2713,
stop := 2732 ),
rec( content := " ",
count := [ 2, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 2, 0, 0, 5 ],
name := "Item", next := 2741,
root := ~, start := 2706,
stop := 2740 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count := [ 2, 0, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
),
rec( attributes := rec( ),
content :=
[
rec(
content := "io-x.x.ta\
r.bz2", count := [ 2, 0, 0, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 2, 0, 0, 7 ],
mathmode := "Text",
name := "F", next := 2770,
root := ~, start := 2749,
stop := 2769 ),
rec( content := " ",
count := [ 2, 0, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 2, 0, 0, 7 ],
name := "Item", next := 2778,
root := ~, start := 2742,
stop := 2777 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count := [ 2, 0, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
),
rec( attributes := rec( ),
content :=
[
rec(
content := "io-x.x.zi\
p", count := [ 2, 0, 0, 9 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 9 ],
mathmode := "Text",
name := "F", next := 2803,
root := ~, start := 2786,
stop := 2802 ),
rec( content := " ",
count := [ 2, 0, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 2, 0, 0, 9 ],
name := "Item", next := 2811,
root := ~, start := 2779,
stop := 2810 ) ],
count := [ 2, 0, 0, 4 ], mathmode := "Text",
name := "List", next := 2819, root := ~,
start := 2699, stop := 2818 ),
rec( content := "\nand unpack it using \n",
count := [ 2, 0, 0, 11 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngunzip io-x.x.tar.gz; t\
ar xvf io-x.x.tar\n", count := [ 2, 0, 0, 12 ], name := "PCDATA", root := ~ )
], count := [ 2, 0, 0, 12 ],
mathmode := "Text", name := "Verb",
next := 2896, root := ~, start := 2841,
stop := 2895 ),
rec( content := "\nor\n",
count := [ 2, 0, 0, 13 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nbzip2 -d io-x.x.tar.bz2\
; tar xvf io-x.x.tar\n", count := [ 2, 0, 0, 14 ], name := "PCDATA",
root := ~ ) ],
count := [ 2, 0, 0, 14 ],
mathmode := "Text", name := "Verb",
next := 2958, root := ~, start := 2900,
stop := 2957 ),
rec( content := "\nor\n",
count := [ 2, 0, 0, 15 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\nunzip -x io-x.x.zip\n"
, count := [ 2, 0, 0, 16 ],
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 16 ],
mathmode := "Text", name := "Verb",
next := 2996, root := ~, start := 2962,
stop := 2995 ),
rec( content := "\nrespectively.\n",
count := [ 2, 0, 0, 17 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "P",
next := 3015, root := ~, start := 3011,
stop := 3014 ),
rec(
content := "\n\nDo this in a directory calle\
d ", count := [ 2, 0, 0, 18 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "pkg",
count := [ 2, 0, 0, 18 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "F",
next := 3060, root := ~,
start := 3050, stop := 3059 ) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "Q",
next := 3064, root := ~, start := 3047,
stop := 3063 ),
rec(
content := ", preferably (but not necessaril\
y)\nin the ", count := [ 2, 0, 0, 18 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "pkg",
count := [ 2, 0, 0, 18 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "F",
next := 3119, root := ~,
start := 3109, stop := 3118 ) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "Q",
next := 3123, root := ~, start := 3106,
stop := 3122 ),
rec( content := " subdirectory of your ",
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 18 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " 4 installation. It creates a\ns\
ubdirectory called ", count := [ 2, 0, 0, 18 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "io",
count := [ 2, 0, 0, 18 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "F",
next := 3212, root := ~,
start := 3203, stop := 3211 ) ],
count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "Q",
next := 3216, root := ~, start := 3200,
stop := 3215 ),
rec( content := ".", count := [ 2, 0, 0, 18 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 2, 0, 0, 19 ],
mathmode := "Text", name := "P",
next := 3221, root := ~, start := 3217,
stop := 3220 ),
rec(
content := "\n\nThe package will not work w\
ithout the following compilation step.", count := [ 2, 0, 0, 19 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 2, 0, 0, 20 ],
mathmode := "Text", name := "P",
next := 3293, root := ~, start := 3289,
stop := 3292 ),
rec(
content := "\n\nTo compile the C part of the\
package do (in the ", count := [ 2, 0, 0, 20 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "pkg",
count := [ 2, 0, 0, 20 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 20 ],
mathmode := "Text", name := "F",
next := 3353, root := ~, start := 3343,
stop := 3352 ),
rec( content := " directory)\n\n",
count := [ 2, 0, 0, 20 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n cd io\n ./config\
ure\n make\n", count := [ 2, 0, 0, 21 ], name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 21 ],
mathmode := "Text", name := "Verb",
next := 3415, root := ~, start := 3366,
stop := 3414 ),
rec(
content := "\n\nIf you installed the package\
in another ", count := [ 2, 0, 0, 22 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "pkg",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "F",
next := 3470, root := ~,
start := 3460, stop := 3469 ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "Q",
next := 3474, root := ~, start := 3457,
stop := 3473 ),
rec( content := " directory than\nthe standard "
, count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "pkg",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "F",
next := 3516, root := ~,
start := 3506, stop := 3515 ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "Q",
next := 3520, root := ~, start := 3503,
stop := 3519 ),
rec( content := " directory in your ",
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " 4 installation,\nthen you have \
to do two things. Firstly during compilation \nyou have to use the option\n",
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "--with-gaproot=PATH",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "C",
next := 3674, root := ~, start := 3648,
stop := 3673 ),
rec( content := " of the ",
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "configure",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "F",
next := 3698, root := ~, start := 3682,
stop := 3697 ),
rec( content := " script\nwhere ",
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "PATH",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "Q",
next := 3723, root := ~, start := 3712,
stop := 3722 ),
rec( content := " is a path to the main ",
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " root directory \n(if not given \
the\ndefault ", count := [ 2, 0, 0, 22 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "../..",
count := [ 2, 0, 0, 22 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "F",
next := 3809, root := ~,
start := 3797, stop := 3808 ) ],
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "Q",
next := 3813, root := ~, start := 3794,
stop := 3812 ),
rec( content := " is assumed). ",
count := [ 2, 0, 0, 22 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "P",
next := 3831, root := ~, start := 3827,
stop := 3830 ),
rec(
content := "\nSecondly you have to \nspecify\
the path to the directory containing your\n", count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "pkg",
count := [ 2, 0, 0, 23 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "F",
next := 3917, root := ~,
start := 3907, stop := 3916 ) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "Q",
next := 3921, root := ~, start := 3904,
stop := 3920 ),
rec( content := "\ndirectory to ",
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 23 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := "'s list of directories. This can\
be done by starting\n", count := [ 2, 0, 0, 23 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 23 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec( content := " with the ",
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "-l",
count := [ 2, 0, 0, 23 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "F",
next := 4020, root := ~,
start := 4011, stop := 4019 ) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "Q",
next := 4024, root := ~, start := 4008,
stop := 4023 ),
rec(
content := " command line option followed by\
the name\nof the directory and a semicolon. Then your directory is prepended \
to\nthe list of directories searched. Otherwise the package is not found by\n"
, count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 23 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := ". Of course, you can add this op\
tion to your ", count := [ 2, 0, 0, 23 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 23 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec( content := " startup script.\n",
count := [ 2, 0, 0, 23 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "P",
next := 4284, root := ~, start := 4280,
stop := 4283 ),
rec( content := "\n\nIf you installed ",
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " on several architectures, you m\
ust execute the\nconfigure/make step for each of the architectures. You can ei\
ther\ndo this immediately after configuring and compiling ",
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " itself on\nthis architecture, o\
r alternatively (when using version 4.5 of ", count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " or\nnewer) set the environment \
variable\n", count := [ 2, 0, 0, 24 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "CONFIGNAME",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "C",
next := 4615, root := ~, start := 4598,
stop := 4614 ),
rec(
content := " to the name of the configuratio\
n you used when\ncompiling ", count := [ 2, 0, 0, 24 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec( content := " before running ",
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "./configure",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "C",
next := 4712, root := ~, start := 4694,
stop := 4711 ),
rec(
content := ". \nNote however that your compi\
ler choice and flags\n(environment variables ", count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "CC",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "C",
next := 4796, root := ~, start := 4787,
stop := 4795 ),
rec( content := " and ",
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "CFLAGS",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "C",
next := 4814, root := ~, start := 4801,
stop := 4813 ),
rec(
content := ") need to be\nchosen to match th\
e setup of the original ", count := [ 2, 0, 0, 24 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 2, 0, 0, 24 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "Package",
next := 23, root := ~, start := 1,
stop := 22 ),
rec(
content := " compilation. For\nexample you h\
ave to specify 32-bit or 64-bit mode correctly!", count := [ 2, 0, 0, 24 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 2, 0, 0, 25 ],
mathmode := "Text", name := "P",
next := 4956, root := ~, start := 4952,
stop := 4955 ),
rec( content := "\n\n\n",
count := [ 2, 0, 0, 25 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
content := "\n<Section>\n<Heading>Static lin\
king</Heading>\n\n\nThis feature does not work in this version of the package.\
\nWe leave the old documentation here for the case that the\nfeature will be r\
eenabled inthe future.<P/>\n\nThis might be interesting for M$ Windows \
users, as\ndynamic loading of binary modules does not always work there.\nYou \
can also create a new statically linked <Q><F>gap</F></Q> binary as follows:\n\
<P/>\n\nGo into the main &GAP; directory and then into <F>bin/BINDIR</F>. Here\
\n<F>BINDIR</F> means the directory containing the <Q><F>gap</F></Q> \nexecuta\
ble after\ncompiling <Q><F>gap</F></Q>. This directory also contains the &GAP;\
compiler script\n<Q><F>gac</F></Q>. Assuming IO in the standard location you \
can then say\n\n<Verb>\n ./gac -o gap-static -p \"-DIOSTATIC -I../../pkg/io\
/bin/BINDIR\" \\\n -P \"-static\" ../../pkg/io/src/io.c\n</Verb>\n\nThe\
n copy your <Q><F>gap</F></Q> start script to, say, <Q><F>gaps</F></Q> and cha\
nge the\nreferences to the &GAP; binary to <Q><F>gap-static</F></Q>.<P/>\n\nNo\
te that you have to replace <F>BINDIR</F> by the name containing the \n<Q><F>g\
ap</F></Q>\nexecutable after compiling GAP as above. If you have installed the\
\npackage in a different place than the standard, you have to replace\n<Q><F>.\
./..</F></Q> in the above command by the path to the directory containing\nthe\
<Q><F>pkg</F></Q> directory into which you installed\n<Package>IO</Package>.\
\n\nIf you want to install more than one package with a C-part like this\npack\
age, you can still create a statically linked &GAP; executable by\ncombining a\
ll the compile and link options and all the .c files as\nin the ./gac command \
above. For the IO package, you have to add\n<Verb>\n -DIOSTATIC -I../../pkg\
/io/bin/BINDIR\n</Verb>\nto the string of the -p option and the file\n<Verb>\n\
../../pkg/io/src/io.c\n</Verb>\nsomewhere on the command line. As above, <Q>\
<F>../..</F></Q> and \n<Q><F>BINDIR</F></Q> have to be replaced if you install\
ed in a\nnon-standard location.\n\n\n</Section>\n", count := [ 2, 0, 0, 25 ],
mathmode := "Text", name := "XMLCOMMENT",
root := ~ ),
rec( content := "\n\n",
count := [ 2, 0, 0, 25 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 2, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Recompiling the d\
ocumentation", count := [ 2, 1, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 2, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 6998,
root := ~, start := 6950,
stop := 6997 ),
rec(
content := "\n\nRecompiling the docu\
mentation is possible by the command ", count := [ 2, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec(
content := "gap\nmake\
doc.g", count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 2, 1, 0, 3 ],
mathmode := "Text",
name := "F", next := 7080,
root := ~, start := 7060,
stop := 7079 ) ],
count := [ 2, 1, 0, 3 ],
mathmode := "Text", name := "Q",
next := 7084, root := ~,
start := 7057, stop := 7083 ),
rec( content := "\nin the ",
count := [ 2, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "io",
count := [ 2, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 2, 1, 0, 3 ],
mathmode := "Text", name := "F",
next := 7101, root := ~,
start := 7092, stop := 7100 ),
rec(
content := " directory. But this sho\
uld not be necessary.\n\n", count := [ 2, 1, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 2, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 7158, root := ~,
start := 6940, stop := 7157 ),
rec( content := "\n\n", count := [ 2, 1, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 2, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 7170, root := ~, start := 2514,
stop := 7169 ),
rec( content := "\n\n", count := [ 2, 1, 0, 3 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
content := " #######################################\
##################### ", count := [ 2, 1, 0, 3 ], mathmode := "Text",
name := "XMLCOMMENT", root := ~ ),
rec( content := "\n", count := [ 2, 1, 0, 3 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( Label := "Chap-CLibFuncs" ),
content :=
[
rec( content := "\n", count := [ 3, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Functions directly availa\
ble from the C library", count := [ 3, 0, 0, 2 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 7341, root := ~,
start := 7275, stop := 7340 ),
rec(
content := "\n\nThe following functions from\
the C library are made available as\n", count := [ 3, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec( content := " functions: ",
count := [ 3, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "P", next := 7429, root := ~,
start := 7425, stop := 7428 ),
rec( content := "\n\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "accept",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7444, root := ~,
start := 7431, stop := 7443 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "bind",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7458, root := ~,
start := 7447, stop := 7457 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "chdir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7473, root := ~,
start := 7461, stop := 7472 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "chmod",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7488, root := ~,
start := 7476, stop := 7487 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "chown",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7503, root := ~,
start := 7491, stop := 7502 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "close",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7518, root := ~,
start := 7506, stop := 7517 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "closedir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7535, root := ~,
start := 7520, stop := 7534 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "connect",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7552, root := ~,
start := 7538, stop := 7551 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "creat",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7567, root := ~,
start := 7555, stop := 7566 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "dup",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7580, root := ~,
start := 7570, stop := 7579 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "dup2",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7594, root := ~,
start := 7583, stop := 7593 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "execv",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7609, root := ~,
start := 7597, stop := 7608 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "execve",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7624, root := ~,
start := 7611, stop := 7623 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "execvp",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7639, root := ~,
start := 7626, stop := 7638 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "exit",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7652, root := ~,
start := 7641, stop := 7651 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fchmod",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7667, root := ~,
start := 7654, stop := 7666 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fchown",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7683, root := ~,
start := 7670, stop := 7682 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fcntl",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7698, root := ~,
start := 7686, stop := 7697 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fork",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7711, root := ~,
start := 7700, stop := 7710 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fstat",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7725, root := ~,
start := 7713, stop := 7724 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "gethostbyname",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7748, root := ~,
start := 7728, stop := 7747 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "gethostname",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7769, root := ~,
start := 7751, stop := 7768 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "getpid",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7784, root := ~,
start := 7771, stop := 7783 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "getppid",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7800, root := ~,
start := 7786, stop := 7799 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "getsockname",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7820, root := ~,
start := 7802, stop := 7819 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "getsockopt",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7839, root := ~,
start := 7822, stop := 7838 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "gettimeofday",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7861, root := ~,
start := 7842, stop := 7860 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "gmtime",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7876, root := ~,
start := 7863, stop := 7875 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "kill",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7889, root := ~,
start := 7878, stop := 7888 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "lchown",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7904, root := ~,
start := 7891, stop := 7903 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "link",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7917, root := ~,
start := 7906, stop := 7916 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "listen",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7933, root := ~,
start := 7920, stop := 7932 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "localtime",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7951, root := ~,
start := 7935, stop := 7950 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "lseek",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7965, root := ~,
start := 7953, stop := 7964 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "lstat",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7980, root := ~,
start := 7968, stop := 7979 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "mkdir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 7994, root := ~,
start := 7982, stop := 7993 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "mkfifo",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8010, root := ~,
start := 7997, stop := 8009 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "mknod",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8025, root := ~,
start := 8013, stop := 8024 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "open",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8039, root := ~,
start := 8028, stop := 8038 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "opendir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8056, root := ~,
start := 8042, stop := 8055 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "pipe",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8070, root := ~,
start := 8059, stop := 8069 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "read",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8083, root := ~,
start := 8072, stop := 8082 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "readdir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8100, root := ~,
start := 8086, stop := 8099 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "readlink",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8118, root := ~,
start := 8103, stop := 8117 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "recv",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8131, root := ~,
start := 8120, stop := 8130 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "recvfrom",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8149, root := ~,
start := 8134, stop := 8148 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "rename",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8165, root := ~,
start := 8152, stop := 8164 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "rewinddir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8184, root := ~,
start := 8168, stop := 8183 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "rmdir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8199, root := ~,
start := 8187, stop := 8198 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "seekdir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8216, root := ~,
start := 8202, stop := 8215 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "select",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8231, root := ~,
start := 8218, stop := 8230 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "send",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8244, root := ~,
start := 8233, stop := 8243 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "sendto",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8260, root := ~,
start := 8247, stop := 8259 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "setsockopt",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8279, root := ~,
start := 8262, stop := 8278 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "socket",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8295, root := ~,
start := 8282, stop := 8294 ),
rec( content := ",\n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "stat",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8308, root := ~,
start := 8297, stop := 8307 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "symlink",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8325, root := ~,
start := 8311, stop := 8324 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "telldir",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8342, root := ~,
start := 8328, stop := 8341 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "unlink",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8358, root := ~,
start := 8345, stop := 8357 ),
rec( content := ", \n", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "write",
count := [ 3, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 8373, root := ~,
start := 8361, stop := 8372 ),
rec( content := ". ", count := [ 3, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 3, 0, 0, 5 ], mathmode := "Text",
name := "P", next := 8379, root := ~,
start := 8375, stop := 8378 ),
rec( content := "\n\nUse the ",
count := [ 3, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "man",
count := [ 3, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 5 ], mathmode := "Text",
name := "C", next := 8399, root := ~,
start := 8389, stop := 8398 ),
rec(
content := " command in your shell to get in\
formation about these\nfunctions.", count := [ 3, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "P", next := 8467, root := ~,
start := 8463, stop := 8466 ),
rec(
content := "\n\nFor each of these functions \
there is a corresponding ", count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " global function \nwith the pref\
ix ", count := [ 3, 0, 0, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO_",
count := [ 3, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "C", next := 8578, root := ~,
start := 8561, stop := 8577 ),
rec(
content := " before its name. Apart from min\
or differences\n(see below) they take exactly the same arguments as their C\nc\
ounterparts. Strings must be specified as ", count := [ 3, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec( content := " strings and integers\nas ",
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " immediate integers. Return valu\
es are in general the same as\nfor the C counterparts. However, an error condi\
tion is indicated by the\nvalue ", count := [ 3, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "C", next := 8914, root := ~,
start := 8903, stop := 8913 ),
rec(
content := " instead of -1, and if the resul\
t can only be success\nor failure, ", count := [ 3, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "true",
count := [ 3, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "C", next := 8991, root := ~,
start := 8980, stop := 8990 ),
rec( content := " indicates success. ",
count := [ 3, 0, 0, 6 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 3, 0, 0, 7 ], mathmode := "Text",
name := "P", next := 9015, root := ~,
start := 9011, stop := 9014 ),
rec(
content := "\n\nAll errors are reported via \
the ", count := [ 3, 0, 0, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( BookName := "ref",
Func := "LastSystemError" ),
content := 0, count := [ 3, 0, 0, 7 ],
mathmode := "Text", name := "Ref",
next := 9093, root := ~, start := 9049,
stop := 9092 ),
rec( content := " function.",
count := [ 3, 0, 0, 7 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 3, 0, 0, 8 ], mathmode := "Text",
name := "P", next := 9107, root := ~,
start := 9103, stop := 9106 ),
rec(
content := "\n\nIn the C library a lot of in\
tegers are defined as macros in header files.\nAll the necessary values for th\
e above functions are bound to their name\nin the global ",
count := [ 3, 0, 0, 8 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 3, 0, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 8 ], mathmode := "Text",
name := "C", next := 9279, root := ~,
start := 9270, stop := 9278 ),
rec( content := " record. ",
count := [ 3, 0, 0, 8 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "P", next := 9292, root := ~,
start := 9288, stop := 9291 ),
rec( content := "\n\n", count := [ 3, 0, 0, 9 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Warning:",
count := [ 3, 0, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "E", next := 9309, root := ~,
start := 9294, stop := 9308 ),
rec(
content := " Existence of many of these func\
tions and constants\nis platform dependent. The compilation process checks exi\
stence and\nthis leads to the situation that on the ",
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 0, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " levels the functions\nand const\
ants are there or not. If you want to develop platform\nindependent ",
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 0, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " code using this package, then y\
ou have to check\nfor existence of the functions and constants you need.\n\n",
count := [ 3, 0, 0, 9 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 3, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Differences in ar\
guments - an overview", count := [ 3, 1, 0, 2 ], mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 9749,
root := ~, start := 9692,
stop := 9748 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "open",
count := [ 3, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 3 ],
mathmode := "Text", name := "C",
next := 9766, root := ~,
start := 9755, stop := 9765 ),
rec(
content := " function has to be call\
ed with three arguments. The\nversion with two arguments is not available on t\
he ", count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " level. ",
count := [ 3, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "P",
next := 9887, root := ~,
start := 9883, stop := 9886 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "read",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "C",
next := 9904, root := ~,
start := 9893, stop := 9903 ),
rec(
content := " function takes four arg\
uments: ", count := [ 3, 1, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fd",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 9945, root := ~,
start := 9936, stop := 9944 ),
rec(
content := " is an integer\nfile des\
criptor, ", count := [ 3, 1, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "st",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 9986, root := ~,
start := 9977, stop := 9985 ),
rec( content := " is a ",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " string, ",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "offset",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 10019, root := ~,
start := 10006, stop := 10018 ),
rec(
content := " is an offset\nwithin th\
is string (zero based), and ", count := [ 3, 1, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "count",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 10082, root := ~,
start := 10070, stop := 10081 ),
rec(
content := " is the maximal number \\
nof bytes to read. The data is read and stored into the string ",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "st",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 10177, root := ~,
start := 10168, stop := 10176 ),
rec(
content := ",\nstarting at position \
", count := [ 3, 1, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "offset",
count :=
[ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "A", next := 10216,
root := ~, start := 10203,
stop := 10215 ),
rec( content := "+1",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "M",
next := 10222, root := ~,
start := 10200, stop := 10221 ),
rec( content := ". The string ",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "st",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 10244, root := ~,
start := 10235, stop := 10243 ),
rec(
content := " is \nmade long enough, \
such that ", count := [ 3, 1, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "count",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "A",
next := 10289, root := ~,
start := 10277, stop := 10288 ),
rec(
content := " bytes would fit into it\
, beginning\nat position ", count := [ 3, 1, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "offset",
count :=
[ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "A", next := 10353,
root := ~, start := 10340,
stop := 10352 ),
rec( content := "+1",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "M",
next := 10359, root := ~,
start := 10337, stop := 10358 ),
rec(
content := ". The number of bytes re\
ad is returned\nor ", count := [ 3, 1, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 4 ],
mathmode := "Text", name := "C",
next := 10412, root := ~,
start := 10401, stop := 10411 ),
rec( content := " in case of an error. "
, count := [ 3, 1, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "P",
next := 10438, root := ~,
start := 10434, stop := 10437 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "write",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "C",
next := 10456, root := ~,
start := 10444, stop := 10455 ),
rec(
content := " function is similar, it\
also takes four arguments:\n", count := [ 3, 1, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fd",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "A",
next := 10517, root := ~,
start := 10508, stop := 10516 ),
rec(
content := " is an integer file desc\
riptor, ", count := [ 3, 1, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "st",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "A",
next := 10558, root := ~,
start := 10549, stop := 10557 ),
rec( content := " is a ",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " string,\n",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "offset",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "A",
next := 10591, root := ~,
start := 10578, stop := 10590 ),
rec(
content := " is an offset within thi\
s string (zero based), and \n", count := [ 3, 1, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "count",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "A",
next := 10655, root := ~,
start := 10643, stop := 10654 ),
rec(
content := " is the number of bytes \
to write, starting from position\n", count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( attributes := rec( ),
content :=
[
rec( content := "offset",
count :=
[ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "A", next := 10728,
root := ~, start := 10715,
stop := 10727 ),
rec( content := "+1",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "M",
next := 10734, root := ~,
start := 10712, stop := 10733 ),
rec( content := " in the string ",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "st",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "A",
next := 10758, root := ~,
start := 10749, stop := 10757 ),
rec(
content := ". The number of bytes\nw\
ritten is returned, or a ", count := [ 3, 1, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 5 ],
mathmode := "Text", name := "C",
next := 10817, root := ~,
start := 10806, stop := 10816 ),
rec( content := " in case of an error. "
, count := [ 3, 1, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 6 ],
mathmode := "Text", name := "P",
next := 10843, root := ~,
start := 10839, stop := 10842 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "opendir",
count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 6 ],
mathmode := "Text", name := "C",
next := 10863, root := ~,
start := 10849, stop := 10862 ),
rec(
content := " function only returns "
, count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "true",
count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 6 ],
mathmode := "Text", name := "C",
next := 10897, root := ~,
start := 10886, stop := 10896 ),
rec( content := " or ",
count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 6 ],
mathmode := "Text", name := "C",
next := 10912, root := ~,
start := 10901, stop := 10911 ),
rec( content := ". ",
count := [ 3, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 7 ],
mathmode := "Text", name := "P",
next := 10918, root := ~,
start := 10914, stop := 10917 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "readdir",
count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 7 ],
mathmode := "Text", name := "C",
next := 10938, root := ~,
start := 10924, stop := 10937 ),
rec(
content := " function takes no argum\
ent. It reads the directory that\nwas specified in the last call to ",
count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "opendir",
count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 7 ],
mathmode := "Text", name := "C",
next := 11043, root := ~,
start := 11029, stop := 11042 ),
rec(
content := ". It just returns a stri\
ng,\nwhich is the name of a file or subdirectory in the corresponding director\
y.\nIt returns ", count := [ 3, 1, 0, 7 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "false",
count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 7 ],
mathmode := "Text", name := "C",
next := 11170, root := ~,
start := 11158, stop := 11169 ),
rec(
content := " after the last file nam\
e in the directory or\n", count := [ 3, 1, 0, 7 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 7 ],
mathmode := "Text", name := "C",
next := 11227, root := ~,
start := 11216, stop := 11226 ),
rec( content := " in case of an error. "
, count := [ 3, 1, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 8 ],
mathmode := "Text", name := "P",
next := 11253, root := ~,
start := 11249, stop := 11252 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "closedir",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 8 ],
mathmode := "Text", name := "C",
next := 11274, root := ~,
start := 11259, stop := 11273 ),
rec(
content := " function takes no argum\
ent. It should be called after\n", count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "readdir",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 8 ],
mathmode := "Text", name := "C",
next := 11343, root := ~,
start := 11329, stop := 11342 ),
rec( content := " returned ",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "false",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 8 ],
mathmode := "Text", name := "C",
next := 11365, root := ~,
start := 11353, stop := 11364 ),
rec( content := " or ",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 8 ],
mathmode := "Text", name := "C",
next := 11380, root := ~,
start := 11369, stop := 11379 ),
rec(
content := " to avoid excessive\nuse\
of file descriptors. ", count := [ 3, 1, 0, 8 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 9 ],
mathmode := "Text", name := "P",
next := 11429, root := ~,
start := 11425, stop := 11428 ),
rec( content := "\n\nThe functions ",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "stat",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 9 ],
mathmode := "Text", name := "C",
next := 11456, root := ~,
start := 11445, stop := 11455 ),
rec( content := ", ",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fstat",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 9 ],
mathmode := "Text", name := "C",
next := 11470, root := ~,
start := 11458, stop := 11469 ),
rec( content := ", and ",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "lstat",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 9 ],
mathmode := "Text", name := "C",
next := 11488, root := ~,
start := 11476, stop := 11487 ),
rec(
content := " only take one\nargument\
and return a ", count := [ 3, 1, 0, 9 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " record that has the sam\
e entries as\na ", count := [ 3, 1, 0, 9 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "struct stat",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 1, 0, 9 ],
mathmode := "Text", name := "C",
next := 11587, root := ~,
start := 11569, stop := 11586 ),
rec( content := ".",
count := [ 3, 1, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 10 ],
mathmode := "Text", name := "P",
next := 11592, root := ~,
start := 11588, stop := 11591 ),
rec( content := "\n\nThe function ",
count := [ 3, 1, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "socket",
count := [ 3, 1, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 10 ],
mathmode := "Text", name := "C",
next := 11620, root := ~,
start := 11607, stop := 11619 ),
rec(
content := " can optionally take a s\
tring as third argument.\nIn that case it automatically calls ",
count := [ 3, 1, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "getprotobyname",
count := [ 3, 1, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 10 ],
mathmode := "Text", name := "C",
next := 11726, root := ~,
start := 11705, stop := 11725 ),
rec(
content := " to look up the\nprotoco\
l name.", count := [ 3, 1, 0, 10 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 11 ],
mathmode := "Text", name := "P",
next := 11760, root := ~,
start := 11756, stop := 11759 ),
rec( content := "\n\nThe functions ",
count := [ 3, 1, 0, 11 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "bind",
count := [ 3, 1, 0, 11 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 11 ],
mathmode := "Text", name := "C",
next := 11787, root := ~,
start := 11776, stop := 11786 ),
rec( content := " and ",
count := [ 3, 1, 0, 11 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "connect",
count := [ 3, 1, 0, 11 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 11 ],
mathmode := "Text", name := "C",
next := 11806, root := ~,
start := 11792, stop := 11805 ),
rec(
content := " take only one string ar\
gument\nas address field, because the string already encodes the length.",
count := [ 3, 1, 0, 11 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "P",
next := 11905, root := ~,
start := 11901, stop := 11904 ),
rec(
content := "\n\nThere are two conven\
ience functions ", count := [ 3, 1, 0, 12 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec(
Func := "IO_make_sockaddr_in" ),
content := 0,
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "Ref",
next := 11976, root := ~,
start := 11943, stop := 11975 ),
rec( content := " and\n",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec(
Func := "IO_MakeIPAddressPort" )
, content := 0,
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "Ref",
next := 12015, root := ~,
start := 11981, stop := 12014 ),
rec(
content := " to create such addresse\
s. The first takes\ntwo arguments ", count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "addr",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "A",
next := 12083, root := ~,
start := 12072, stop := 12082 ),
rec( content := " and ",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "port",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "A",
next := 12099, root := ~,
start := 12088, stop := 12098 ),
rec( content := ", where ",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "addr",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "A",
next := 12118, root := ~,
start := 12107, stop := 12117 ),
rec(
content := " is\na string of length \
4, containing the 4 bytes of the IP address and\n", count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "port",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "A",
next := 12200, root := ~,
start := 12189, stop := 12199 ),
rec( content := " is a port number as ",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " integer. The function\n\
", count := [ 3, 1, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec(
Func := "IO_MakeIPAddressPort" )
, content := 0,
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "Ref",
next := 12283, root := ~,
start := 12249, stop := 12282 ),
rec(
content := " takes the same argument\
s, but the first can\nbe a string containing an IP address in dot notation lik\
e\n", count := [ 3, 1, 0, 12 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "137.226.152.77",
count := [ 3, 1, 0, 12 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 12 ],
mathmode := "Text", name := "Q",
next := 12407, root := ~,
start := 12386, stop := 12406 ),
rec(
content := " or a hostname to be loo\
ked up.", count := [ 3, 1, 0, 12 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 13 ],
mathmode := "Text", name := "P",
next := 12442, root := ~,
start := 12438, stop := 12441 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 13 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "setsockopt",
count := [ 3, 1, 0, 13 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 13 ],
mathmode := "Text", name := "C",
next := 12465, root := ~,
start := 12448, stop := 12464 ),
rec(
content := " function has no argumen\
t ", count := [ 3, 1, 0, 13 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "optlen",
count := [ 3, 1, 0, 13 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 13 ],
mathmode := "Text", name := "A",
next := 12504, root := ~,
start := 12491, stop := 12503 ),
rec(
content := ". The length\nof the str\
ing ", count := [ 3, 1, 0, 13 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "optval",
count := [ 3, 1, 0, 13 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 13 ],
mathmode := "Text", name := "A",
next := 12544, root := ~,
start := 12531, stop := 12543 ),
rec( content := " is taken.",
count := [ 3, 1, 0, 13 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 14 ],
mathmode := "Text", name := "P",
next := 12558, root := ~,
start := 12554, stop := 12557 ),
rec( content := "\n\nThe ",
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "select",
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 14 ],
mathmode := "Text", name := "C",
next := 12577, root := ~,
start := 12564, stop := 12576 ),
rec(
content := " function works as the f\
unction ", count := [ 3, 1, 0, 14 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "UNIXSelect",
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 14 ],
mathmode := "Text", name := "C",
next := 12626, root := ~,
start := 12609, stop := 12625 ),
rec( content := " in the\n",
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " library.",
count := [ 3, 1, 0, 14 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 3, 1, 0, 15 ],
mathmode := "Text", name := "P",
next := 12652, root := ~,
start := 12648, stop := 12651 ),
rec(
content := "\n\nAs of now, the file \
locking mechanisms of ", count := [ 3, 1, 0, 15 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fcntl",
count := [ 3, 1, 0, 15 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 15 ],
mathmode := "Text", name := "C",
next := 12708, root := ~,
start := 12696, stop := 12707 ),
rec( content := " using \n",
count := [ 3, 1, 0, 15 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "struct flock",
count := [ 3, 1, 0, 15 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 15 ],
mathmode := "Text", name := "C",
next := 12735, root := ~,
start := 12716, stop := 12734 ),
rec(
content := " are not yet implemented\
on the ", count := [ 3, 1, 0, 15 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 1, 0, 15 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 3, 1, 0, 15 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " level.\n",
count := [ 3, 1, 0, 15 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 12790,
root := ~, start := 9682, stop := 12789 ),
rec( content := "\n\n",
count := [ 3, 1, 0, 15 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 3, 2, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "The low-level fun\
ctions in detail", count := [ 3, 2, 0, 2 ], mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 12858,
root := ~, start := 12806,
stop := 12857 ),
rec(
content := "\n\nNearly all of this f\
unctions return an integer result in the C library.\nOn the ",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " level this is either re\
turned as a non-negative integer\nin case of success or as ",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text", name := "K",
next := 13037, root := ~,
start := 13026, stop := 13036 ),
rec(
content := " in case of an error (wh\
ere on the\nC level ", count := [ 3, 2, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "-1",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text", name := "M",
next := 13089, root := ~,
start := 13080, stop := 13088 ),
rec(
content := " would be returned). If \
the integer can only be ", count := [ 3, 2, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "0",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text", name := "M",
next := 13145, root := ~,
start := 13137, stop := 13144 ),
rec( content := "\nfor ",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "no error",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text", name := "Q",
next := 13165, root := ~,
start := 13150, stop := 13164 ),
rec( content := " this is changed to ",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "true",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text", name := "K",
next := 13196, root := ~,
start := 13185, stop := 13195 ),
rec( content := " on the ",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " level.\n\n",
count := [ 3, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd, addr",
Comm := "Accepts an inco\
ming network connection", Name := "IO_accept" ), content := 0,
count := [ 3, 2, 1, 2 ],
mathmode := "Text",
name := "Func",
next := 13322, root := ~,
start := 13231,
stop := 13321 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 1, 3 ],
mathmode := "Text",
name := "K",
next := 13358,
root := ~,
start := 13347,
stop := 13357 ),
rec( content := " ",
count :=
[ 3, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 13369, root := ~,
start := 13323,
stop := 13368 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nAccepts\
an incoming network connection.\nFor details see ", count := [ 3, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 accept", count := [ 3, 2, 1, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 1, 3 ],
mathmode := \
"Text", name := "C", next := 13462, root := ~, start := 13443, stop := 13461
) ],
count :=
[ 3, 2, 1, 3 ],
mathmode := "Text",
name := "Q",
next := 13466,
root := ~,
start := 13440,
stop := 13465 ),
rec(
content := ". The ar\
gument ", count := [ 3, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ddr", count := [ 3, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 13492,
root := ~,
start := 13481,
stop := 13491 ),
rec(
content := " can be\\
nmade with ", count := [ 3, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_make\
_sockaddr_in" ), content := 0, count := [ 3, 2, 1, 3 ], mathmode := "Text",
name := "Ref",
next := 13543,
root := ~,
start := 13510,
stop := 13542 ),
rec(
content := " and con\
tains its length such\nthat no third argument is necessary.\n",
count :=
[ 3, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 13624, root := ~,
start := 13370,
stop := 13623 ) ],
count := [ 3, 2, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 13638, root := ~,
start := 13218, stop := 13637 ),
rec( content := "\n\n",
count := [ 3, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd, my_addr",
Comm := "Binds a local a\
ddress to a socket.", Name := "IO_bind" ), content := 0,
count := [ 3, 2, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 13741, root := ~,
start := 13653,
stop := 13740 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 2, 3 ],
mathmode := "Text",
name := "K",
next := 13777,
root := ~,
start := 13766,
stop := 13776 ),
rec( content := " ",
count :=
[ 3, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 13788, root := ~,
start := 13742,
stop := 13787 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nBinds a\
local address to a socket.\nFor details see ", count := [ 3, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 bind", count := [ 3, 2, 2, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 2, 3 ],
mathmode := \
"Text", name := "C", next := 13874, root := ~, start := 13857, stop := 13873
) ],
count :=
[ 3, 2, 2, 3 ],
mathmode := "Text",
name := "Q",
next := 13878,
root := ~,
start := 13854,
stop := 13877 ),
rec(
content := ". The ar\
gument\n", count := [ 3, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
y_addr", count := [ 3, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 13914,
root := ~,
start := 13893,
stop := 13913 ),
rec(
content := " can be \
made with ", count := [ 3, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_make\
_sockaddr_in" ), content := 0, count := [ 3, 2, 2, 3 ], mathmode := "Text",
name := "Ref",
next := 13965,
root := ~,
start := 13932,
stop := 13964 ),
rec(
content := "\nand co\
ntains its length such that no third argument is necessary.\n",
count :=
[ 3, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 14046, root := ~,
start := 13789,
stop := 14045 ) ],
count := [ 3, 2, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 14060, root := ~,
start := 13640, stop := 14059 ),
rec( content := "\n\n",
count := [ 3, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "path",
Comm := "Changes the cur\
rent working directory.", Name := "IO_chdir" ), content := 0,
count := [ 3, 2, 3, 2 ],
mathmode := "Text",
name := "Func",
next := 14161, root := ~,
start := 14075,
stop := 14160 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "K",
next := 14183,
root := ~,
start := 14172,
stop := 14182 ),
rec( content := " or ",
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "K",
next := 14198,
root := ~,
start := 14187,
stop := 14197 ),
rec( content := " ",
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 14209, root := ~,
start := 14162,
stop := 14208 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nChanges\
the current working directory.\nFor details see ", count := [ 3, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 chdir", count := [ 3, 2, 3, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 3, 3 ],
mathmode := \
"Text", name := "C", next := 14300, root := ~, start := 14282, stop := 14299
) ],
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "Q",
next := 14304,
root := ~,
start := 14279,
stop := 14303 ),
rec( content := ".\n",
count :=
[ 3, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 14320, root := ~,
start := 14210,
stop := 14319 ) ],
count := [ 3, 2, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 14335, root := ~,
start := 14062, stop := 14334 ),
rec( content := "\n \n",
count := [ 3, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "pathname, mode",
Comm := "Changes the mod\
e of a file.", Name := "IO_chmod" ), content := 0, count := [ 3, 2, 4, 2 ],
mathmode := "Text",
name := "Func",
next := 14436, root := ~,
start := 14351,
stop := 14435 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 14458,
root := ~,
start := 14447,
stop := 14457 ),
rec( content := " or ",
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 14473,
root := ~,
start := 14462,
stop := 14472 ),
rec( content := " ",
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 14484, root := ~,
start := 14437,
stop := 14483 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nChanges\
the mode of a file.\nFor details see ", count := [ 3, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 chmod", count := [ 3, 2, 4, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 4, 3 ],
mathmode := \
"Text", name := "C", next := 14564, root := ~, start := 14546, stop := 14563
) ],
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "Q",
next := 14568,
root := ~,
start := 14543,
stop := 14567 ),
rec( content := ".\n",
count :=
[ 3, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 14584, root := ~,
start := 14485,
stop := 14583 ) ],
count := [ 3, 2, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 14599, root := ~,
start := 14338, stop := 14598 ),
rec( content := "\n \n",
count := [ 3, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "path, owner, gro\
up", Comm := "Sets owner and/or group of file.", Name := "IO_chown" ),
content := 0,
count := [ 3, 2, 5, 2 ],
mathmode := "Text",
name := "Func",
next := 14709, root := ~,
start := 14615,
stop := 14708 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 14731,
root := ~,
start := 14720,
stop := 14730 ),
rec( content := " or ",
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 14746,
root := ~,
start := 14735,
stop := 14745 ),
rec( content := " ",
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 14757, root := ~,
start := 14710,
stop := 14756 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSets ow\
ner and/or group of file.\nFor details see ", count := [ 3, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 chown", count := [ 3, 2, 5, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 5, 3 ],
mathmode := \
"Text", name := "C", next := 14842, root := ~, start := 14824, stop := 14841
) ],
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "Q",
next := 14846,
root := ~,
start := 14821,
stop := 14845 ),
rec( content := ".\n",
count :=
[ 3, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 14862, root := ~,
start := 14758,
stop := 14861 ) ],
count := [ 3, 2, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 14877, root := ~,
start := 14602, stop := 14876 ),
rec( content := "\n \n",
count := [ 3, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd",
Comm := "Closes a file d\
escriptor.", Name := "IO_close" ), content := 0, count := [ 3, 2, 6, 2 ],
mathmode := "Text",
name := "Func",
next := 14964, root := ~,
start := 14893,
stop := 14963 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "K",
next := 14986,
root := ~,
start := 14975,
stop := 14985 ),
rec( content := " or ",
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "K",
next := 15001,
root := ~,
start := 14990,
stop := 15000 ),
rec( content := " ",
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 15012, root := ~,
start := 14965,
stop := 15011 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCloses \
a file descriptor.\nFor details see ", count := [ 3, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 close", count := [ 3, 2, 6, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 6, 3 ],
mathmode := \
"Text", name := "C", next := 15090, root := ~, start := 15072, stop := 15089
) ],
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "Q",
next := 15094,
root := ~,
start := 15069,
stop := 15093 ),
rec( content := ".\n",
count :=
[ 3, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 15110, root := ~,
start := 15013,
stop := 15109 ) ],
count := [ 3, 2, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 15125, root := ~,
start := 14880, stop := 15124 ),
rec( content := "\n \n",
count := [ 3, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Closes a direct\
ory.", Name := "IO_closedir" ), content := 0, count := [ 3, 2, 7, 2 ],
mathmode := "Text",
name := "Func",
next := 15207, root := ~,
start := 15141,
stop := 15206 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "K",
next := 15229,
root := ~,
start := 15218,
stop := 15228 ),
rec( content := " or ",
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "K",
next := 15244,
root := ~,
start := 15233,
stop := 15243 ),
rec( content := " ",
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 15255, root := ~,
start := 15208,
stop := 15254 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCloses \
a directory.\nFor details see ", count := [ 3, 2, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 closedir", count := [ 3, 2, 7, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 7,
3 ],
mathmode := \
"Text", name := "C", next := 15330, root := ~, start := 15309, stop := 15329
) ],
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "Q",
next := 15334,
root := ~,
start := 15306,
stop := 15333 ),
rec(
content := ". Has no\
arguments, because we only\nhave one ", count := [ 3, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "D\
IR", count := [ 3, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 3, 2, 7, 3 ],
mathmode := "Text",
name := "C",
next := 15389,
root := ~,
start := 15379,
stop := 15388 ),
rec(
content := " struct \
in the C part.\n", count := [ 3, 2, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 15426, root := ~,
start := 15256,
stop := 15425 ) ],
count := [ 3, 2, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 15441, root := ~,
start := 15128, stop := 15440 ),
rec( content := "\n \n",
count := [ 3, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, serv_addr",
Comm := "Connects to a r\
emote socket.", Name := "IO_connect" ), content := 0, count := [ 3, 2, 8, 2 ],
mathmode := "Text",
name := "Func",
next := 15544, root := ~,
start := 15457,
stop := 15543 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "K",
next := 15566,
root := ~,
start := 15555,
stop := 15565 ),
rec( content := " or ",
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "K",
next := 15581,
root := ~,
start := 15570,
stop := 15580 ),
rec( content := " ",
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 8, 3 ],
mathmode := "Text",
name := "Returns",
next := 15592, root := ~,
start := 15545,
stop := 15591 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nConnect\
s to a remote socket.\nFor details see ", count := [ 3, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 connect", count := [ 3, 2, 8, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 8, 3 ],
mathmode := \
"Text", name := "C", next := 15675, root := ~, start := 15655, stop := 15674
) ],
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "Q",
next := 15679,
root := ~,
start := 15652,
stop := 15678 ),
rec(
content := ". The ar\
gument\n", count := [ 3, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
erv_addr", count := [ 3, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 15717,
root := ~,
start := 15694,
stop := 15716 ),
rec(
content := " can be \
made with ", count := [ 3, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_make\
_sockaddr_in" ), content := 0, count := [ 3, 2, 8, 3 ], mathmode := "Text",
name := "Ref",
next := 15768,
root := ~,
start := 15735,
stop := 15767 ),
rec(
content := "\nand co\
ntains its length such that no third argument is necessary.\n",
count :=
[ 3, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 8, 3 ],
mathmode := "Text",
name := "Description",
next := 15849, root := ~,
start := 15593,
stop := 15848 ) ],
count := [ 3, 2, 8, 1 ],
mathmode := "Text",
name := "ManSection",
next := 15864, root := ~,
start := 15444, stop := 15863 ),
rec( content := "\n \n",
count := [ 3, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "pathname, mode",
Comm := "Creates a new f\
ile.", Name := "IO_creat" ), content := 0, count := [ 3, 2, 9, 2 ],
mathmode := "Text",
name := "Func",
next := 15957, root := ~,
start := 15880,
stop := 15956 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 9, 3 ],
mathmode := "Text",
name := "K",
next := 15993,
root := ~,
start := 15982,
stop := 15992 ),
rec( content := " ",
count :=
[ 3, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 9, 3 ],
mathmode := "Text",
name := "Returns",
next := 16004, root := ~,
start := 15958,
stop := 16003 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreates\
a new file. For details see ", count := [ 3, 2, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 creat", count := [ 3, 2, 9, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 9, 3 ],
mathmode := \
"Text", name := "C", next := 16076, root := ~, start := 16058, stop := 16075
) ],
count :=
[ 3, 2, 9, 3 ],
mathmode := "Text",
name := "Q",
next := 16080,
root := ~,
start := 16055,
stop := 16079 ),
rec( content := ".\n",
count :=
[ 3, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 9, 3 ],
mathmode := "Text",
name := "Description",
next := 16096, root := ~,
start := 16005,
stop := 16095 ) ],
count := [ 3, 2, 9, 1 ],
mathmode := "Text",
name := "ManSection",
next := 16111, root := ~,
start := 15867, stop := 16110 ),
rec( content := "\n \n",
count := [ 3, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "oldfd",
Comm := "Duplicates a fi\
le descriptor.", Name := "IO_dup" ), content := 0, count := [ 3, 2, 10, 2 ],
mathmode := "Text",
name := "Func",
next := 16203, root := ~,
start := 16127,
stop := 16202 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 16239,
root := ~,
start := 16228,
stop := 16238 ),
rec( content := " ",
count :=
[ 3, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 10, 3 ],
mathmode := "Text",
name := "Returns",
next := 16250, root := ~,
start := 16204,
stop := 16249 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nDuplica\
tes a file descriptor. \nFor details see ", count := [ 3, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 dup", count := [ 3, 2, 10, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 10, 3 ],
mathmode := \
"Text", name := "C", next := 16331, root := ~, start := 16315, stop := 16330
) ],
count :=
[ 3, 2, 10, 3 ],
mathmode := "Text",
name := "Q",
next := 16335,
root := ~,
start := 16312,
stop := 16334 ),
rec( content := ".\n",
count :=
[ 3, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 10, 3 ],
mathmode := "Text",
name := "Description",
next := 16351, root := ~,
start := 16251,
stop := 16350 ) ],
count := [ 3, 2, 10, 1 ],
mathmode := "Text",
name := "ManSection",
next := 16366, root := ~,
start := 16114, stop := 16365 ),
rec( content := "\n \n",
count := [ 3, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "oldfd, newfd",
Comm := "Duplicates a fi\
le descriptor to a new one.", Name := "IO_dup2" ), content := 0,
count := [ 3, 2, 11, 2 ],
mathmode := "Text",
name := "Func",
next := 16479, root := ~,
start := 16382,
stop := 16478 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "K",
next := 16501,
root := ~,
start := 16490,
stop := 16500 ),
rec( content := " or ",
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "K",
next := 16516,
root := ~,
start := 16505,
stop := 16515 ),
rec( content := " ",
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 11, 3 ],
mathmode := "Text",
name := "Returns",
next := 16527, root := ~,
start := 16480,
stop := 16526 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nDuplica\
tes a file descriptor to a new one.\nFor details see ", count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 dup2", count := [ 3, 2, 11, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 11, 3 ],
mathmode := \
"Text", name := "C", next := 16621, root := ~, start := 16604, stop := 16620
) ],
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "Q",
next := 16625,
root := ~,
start := 16601,
stop := 16624 ),
rec( content := ".\n",
count :=
[ 3, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 11, 3 ],
mathmode := "Text",
name := "Description",
next := 16641, root := ~,
start := 16528,
stop := 16640 ) ],
count := [ 3, 2, 11, 1 ],
mathmode := "Text",
name := "ManSection",
next := 16656, root := ~,
start := 16369, stop := 16655 ),
rec( content := "\n \n",
count := [ 3, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "path, argv",
Comm := "Replaces the pr\
ocess with another process.", Name := "IO_execv" ), content := 0,
count := [ 3, 2, 12, 2 ],
mathmode := "Text",
name := "Func",
next := 16768, root := ~,
start := 16672,
stop := 16767 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 12, 3 ],
mathmode := "Text",
name := "K",
next := 16790,
root := ~,
start := 16779,
stop := 16789 ),
rec(
content := " or does\
not return ", count := [ 3, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 12, 3 ],
mathmode := "Text",
name := "Returns",
next := 16820, root := ~,
start := 16769,
stop := 16819 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReplace\
s the process with another process.\nFor details see ", count :=
[ 3, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 execv", count := [ 3, 2, 12, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 12, 3 ],
mathmode := \
"Text", name := "C", next := 16915, root := ~, start := 16897, stop := 16914
) ],
count :=
[ 3, 2, 12, 3 ],
mathmode := "Text",
name := "Q",
next := 16919,
root := ~,
start := 16894,
stop := 16918 ),
rec(
content := ". The ar\
gument ", count := [ 3, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgv", count := [ 3, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 12, 3 ],
mathmode := "Text",
name := "A",
next := 16945,
root := ~,
start := 16934,
stop := 16944 ),
rec(
content := " is a li\
st\nof strings. The called program does not have to be the first argument\nin \
this list.\n", count := [ 3, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 12, 3 ],
mathmode := "Text",
name := "Description",
next := 17054, root := ~,
start := 16821,
stop := 17053 ) ],
count := [ 3, 2, 12, 1 ],
mathmode := "Text",
name := "ManSection",
next := 17069, root := ~,
start := 16659, stop := 17068 ),
rec( content := "\n \n",
count := [ 3, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "path, argv, envp\
", Comm := "Replaces the process with another process.", Name := "IO_execve" )
, content := 0,
count := [ 3, 2, 13, 2 ],
mathmode := "Text",
name := "Func",
next := 17188, root := ~,
start := 17085,
stop := 17187 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 17210,
root := ~,
start := 17199,
stop := 17209 ),
rec(
content := " or does\
not return ", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 13, 3 ],
mathmode := "Text",
name := "Returns",
next := 17240, root := ~,
start := 17189,
stop := 17239 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReplace\
s the process with another process.\nFor details see ", count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 execve", count := [ 3, 2, 13, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 13, 3 ],
mathmode := \
"Text", name := "C", next := 17336, root := ~, start := 17317, stop := 17335
) ],
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "Q",
next := 17340,
root := ~,
start := 17314,
stop := 17339 ),
rec(
content := ". The ar\
guments ", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgv", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 17367,
root := ~,
start := 17356,
stop := 17366 ),
rec(
content := " and\n",
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
nvp", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 17383,
root := ~,
start := 17372,
stop := 17382 ),
rec(
content := " are bot\
h lists of strings. The called program does not have to\nbe the first argument\
in ", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgv", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 17483,
root := ~,
start := 17472,
stop := 17482 ),
rec(
content := ". The li\
st ", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
nvp", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 17505,
root := ~,
start := 17494,
stop := 17504 ),
rec(
content := " can be \
made\nwith ", count := [ 3, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Make\
EnvList" ), content := 0, count := [ 3, 2, 13, 3 ], mathmode := "Text",
name := "Ref",
next := 17551,
root := ~,
start := 17523,
stop := 17550 ),
rec(
content := " from a \
record acquired from ", count := [ 3, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Envi\
ronment" ), content := 0, count := [ 3, 2, 13, 3 ], mathmode := "Text",
name := "Ref",
next := 17608,
root := ~,
start := 17580,
stop := 17607 ),
rec(
content := " and mod\
ified later.\n", count := [ 3, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 13, 3 ],
mathmode := "Text",
name := "Description",
next := 17643, root := ~,
start := 17241,
stop := 17642 ) ],
count := [ 3, 2, 13, 1 ],
mathmode := "Text",
name := "ManSection",
next := 17658, root := ~,
start := 17072, stop := 17657 ),
rec( content := "\n \n",
count := [ 3, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "path, argv",
Comm := "Replaces the pr\
ocess with another process.", Name := "IO_execvp" ), content := 0,
count := [ 3, 2, 14, 2 ],
mathmode := "Text",
name := "Func",
next := 17771, root := ~,
start := 17674,
stop := 17770 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 14, 3 ],
mathmode := "Text",
name := "K",
next := 17793,
root := ~,
start := 17782,
stop := 17792 ),
rec(
content := " or does\
not return ", count := [ 3, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 14, 3 ],
mathmode := "Text",
name := "Returns",
next := 17823, root := ~,
start := 17772,
stop := 17822 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReplace\
s the process with another process.\nFor details see ", count :=
[ 3, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 execvp", count := [ 3, 2, 14, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 14, 3 ],
mathmode := \
"Text", name := "C", next := 17919, root := ~, start := 17900, stop := 17918
) ],
count :=
[ 3, 2, 14, 3 ],
mathmode := "Text",
name := "Q",
next := 17923,
root := ~,
start := 17897,
stop := 17922 ),
rec(
content := ". The ar\
gument ", count := [ 3, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgv", count := [ 3, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 14, 3 ],
mathmode := "Text",
name := "A",
next := 17949,
root := ~,
start := 17938,
stop := 17948 ),
rec(
content := " is a li\
st\nof strings. The called program does not have to be the first argument\nin \
this list.\n", count := [ 3, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 14, 3 ],
mathmode := "Text",
name := "Description",
next := 18058, root := ~,
start := 17824,
stop := 18057 ) ],
count := [ 3, 2, 14, 1 ],
mathmode := "Text",
name := "ManSection",
next := 18073, root := ~,
start := 17661, stop := 18072 ),
rec( content := "\n \n",
count := [ 3, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "status",
Comm := "Stops process i\
mmediately with return code status.", Name := "IO_exit" ), content := 0,
count := [ 3, 2, 15, 2 ],
mathmode := "Text",
name := "Func",
next := 18188, root := ~,
start := 18089,
stop := 18187 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nStops p\
rocess immediately with return code ", count := [ 3, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatus", count := [ 3, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 15, 3 ],
mathmode := "Text",
name := "A",
next := 18259,
root := ~,
start := 18246,
stop := 18258 ),
rec(
content := ".\nFor d\
etails see ", count := [ 3, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 exit", count := [ 3, 2, 15, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 15, 3 ],
mathmode := \
"Text", name := "C", next := 18297, root := ~, start := 18280, stop := 18296
) ],
count :=
[ 3, 2, 15, 3 ],
mathmode := "Text",
name := "Q",
next := 18301,
root := ~,
start := 18277,
stop := 18300 ),
rec(
content := ". The ar\
gument ", count := [ 3, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatus", count := [ 3, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 15, 3 ],
mathmode := "Text",
name := "A",
next := 18329,
root := ~,
start := 18316,
stop := 18328 ),
rec(
content := " must\nb\
e an integer. Does not return.\n", count := [ 3, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 15, 3 ],
mathmode := "Text",
name := "Description",
next := 18381, root := ~,
start := 18189,
stop := 18380 ) ],
count := [ 3, 2, 15, 1 ],
mathmode := "Text",
name := "ManSection",
next := 18396, root := ~,
start := 18076, stop := 18395 ),
rec( content := "\n\n",
count := [ 3, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd, mode",
Comm := "Changes mode of\
an opened file.", Name := "IO_fchmod" ), content := 0,
count := [ 3, 2, 16, 2 ],
mathmode := "Text",
name := "Func",
next := 18495, root := ~,
start := 18411,
stop := 18494 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "K",
next := 18517,
root := ~,
start := 18506,
stop := 18516 ),
rec( content := " or ",
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "K",
next := 18532,
root := ~,
start := 18521,
stop := 18531 ),
rec( content := " ",
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 16, 3 ],
mathmode := "Text",
name := "Returns",
next := 18543, root := ~,
start := 18496,
stop := 18542 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nChanges\
mode of an opened file.\nFor details see ", count := [ 3, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 fchmod", count := [ 3, 2, 16, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 16, 3 ],
mathmode := \
"Text", name := "C", next := 18628, root := ~, start := 18609, stop := 18627
) ],
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "Q",
next := 18632,
root := ~,
start := 18606,
stop := 18631 ),
rec( content := ".\n",
count :=
[ 3, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 16, 3 ],
mathmode := "Text",
name := "Description",
next := 18648, root := ~,
start := 18544,
stop := 18647 ) ],
count := [ 3, 2, 16, 1 ],
mathmode := "Text",
name := "ManSection",
next := 18663, root := ~,
start := 18398, stop := 18662 ),
rec( content := "\n \n",
count := [ 3, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, owner, group\
", Comm := "Changes owner and/or group of an opened file.",
Name := "IO_fchown" ),
content := 0,
count := [ 3, 2, 17, 2 ],
mathmode := "Text",
name := "Func",
next := 18785, root := ~,
start := 18679,
stop := 18784 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 17, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "K",
next := 18807,
root := ~,
start := 18796,
stop := 18806 ),
rec( content := " or ",
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 17, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "K",
next := 18822,
root := ~,
start := 18811,
stop := 18821 ),
rec( content := " ",
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 17, 3 ],
mathmode := "Text",
name := "Returns",
next := 18833, root := ~,
start := 18786,
stop := 18832 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nChanges\
owner and/or group of an opened file.\nFor details see ",
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 fchown", count := [ 3, 2, 17, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 17, 3 ],
mathmode := \
"Text", name := "C", next := 18932, root := ~, start := 18913, stop := 18931
) ],
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "Q",
next := 18936,
root := ~,
start := 18910,
stop := 18935 ),
rec( content := ".\n",
count :=
[ 3, 2, 17, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 17, 3 ],
mathmode := "Text",
name := "Description",
next := 18952, root := ~,
start := 18834,
stop := 18951 ) ],
count := [ 3, 2, 17, 1 ],
mathmode := "Text",
name := "ManSection",
next := 18967, root := ~,
start := 18666, stop := 18966 ),
rec( content := "\n\n",
count := [ 3, 2, 17, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, cmd, arg",
Comm := "file control",
Name := "IO_fcntl" ),
content := 0,
count := [ 3, 2, 18, 2 ],
mathmode := "Text",
name := "Func",
next := 19050, root := ~,
start := 18982,
stop := 19049 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 18, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 18, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 18, 3 ],
mathmode := "Text",
name := "K",
next := 19086,
root := ~,
start := 19075,
stop := 19085 ),
rec( content := " ",
count :=
[ 3, 2, 18, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 18, 3 ],
mathmode := "Text",
name := "Returns",
next := 19097, root := ~,
start := 19051,
stop := 19096 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Doe\
s various things to control the behaviour of a file descriptor.\n For detai\
ls see ", count := [ 3, 2, 18, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 fcntl", count := [ 3, 2, 18, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 18, 3 ],
mathmode := \
"Text", name := "C", next := 19224, root := ~, start := 19206, stop := 19223
) ],
count :=
[ 3, 2, 18, 3 ],
mathmode := "Text",
name := "Q",
next := 19228,
root := ~,
start := 19203,
stop := 19227 ),
rec( content := ".\n",
count :=
[ 3, 2, 18, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 18, 3 ],
mathmode := "Text",
name := "Description",
next := 19244, root := ~,
start := 19098,
stop := 19243 ) ],
count := [ 3, 2, 18, 1 ],
mathmode := "Text",
name := "ManSection",
next := 19258, root := ~,
start := 18969, stop := 19257 ),
rec( content := "\n\n",
count := [ 3, 2, 18, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Forks off a chi\
ld process, which is an identical copy.", Name := "IO_fork" ), content := 0,
count := [ 3, 2, 19, 2 ],
mathmode := "Text",
name := "Func",
next := 19370, root := ~,
start := 19273,
stop := 19369 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 19, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 19, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "K",
next := 19406,
root := ~,
start := 19395,
stop := 19405 ),
rec( content := " ",
count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 19, 3 ],
mathmode := "Text",
name := "Returns",
next := 19417, root := ~,
start := 19371,
stop := 19416 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nForks o\
ff a child process, which is an identical copy.\nFor details see ",
count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 fork", count := [ 3, 2, 19, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 19, 3 ],
mathmode := \
"Text", name := "C", next := 19523, root := ~, start := 19506, stop := 19522
) ],
count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "Q",
next := 19527,
root := ~,
start := 19503,
stop := 19526 ),
rec(
content := ". Note t\
hat if you want to use the\n", count := [ 3, 2, 19, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 3, 2, 19, 3 ], mathmode := "Text",
name := "Ref",
next := 19586,
root := ~,
start := 19562,
stop := 19585 ),
rec(
content := " functio\
n to wait or check for the termination of\nchild processes, you have to activa\
te the SIGCHLD handler for this\npackage beforehand by using the function ",
count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 3, 2, 19, 3 ],
mathmode := "Text",
name := "Ref",
next := 19782,
root := ~,
start := 19744,
stop := 19781 ),
rec(
content := ". Note f\
urther that after that you cannot use\nthe function ", count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "InputOutputLocalProcess" ), content := 0, count := [ 3, 2, 19, 3 ]
,
mathmode := "Text",
name := "Ref",
next := 19893,
root := ~,
start := 19841,
stop := 19892 ),
rec(
content := "\nany mo\
re, since its SIGCHLD handler does not work any more. To switch\nback to that \
functionality use the function ", count := [ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Rest\
oreSIGCHLDHandler" ), content := 0, count := [ 3, 2, 19, 3 ],
mathmode := "Text",
name := "Ref",
next := 20046,
root := ~,
start := 20008,
stop := 20045 ),
rec( content := ".\n",
count :=
[ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 19, 3 ],
mathmode := "Text",
name := "Description",
next := 20062, root := ~,
start := 19418,
stop := 20061 ) ],
count := [ 3, 2, 19, 1 ],
mathmode := "Text",
name := "ManSection",
next := 20077, root := ~,
start := 19260, stop := 20076 ),
rec( content := "\n \n",
count := [ 3, 2, 19, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd",
Comm := "Returns the fil\
e meta data for an opened file.", Name := "IO_fstat" ), content := 0,
count := [ 3, 2, 20, 2 ],
mathmode := "Text",
name := "Func",
next := 20185, root := ~,
start := 20093,
stop := 20184 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 3, 2, 20, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 20, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "K",
next := 20219,
root := ~,
start := 20208,
stop := 20218 ),
rec( content := " ",
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 20, 3 ],
mathmode := "Text",
name := "Returns",
next := 20230, root := ~,
start := 20186,
stop := 20229 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReturns\
the file meta data for an opened file.\nFor details see ",
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 fstat", count := [ 3, 2, 20, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 20, 3 ],
mathmode := \
"Text", name := "C", next := 20329, root := ~, start := 20311, stop := 20328
) ],
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "Q",
next := 20333,
root := ~,
start := 20308,
stop := 20332 ),
rec( content := ". A ",
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 20, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record \
is returned with\nthe same entries than a ", count := [ 3, 2, 20, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
truct stat", count := [ 3, 2, 20, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "C",
next := 20409,
root := ~,
start := 20391,
stop := 20408 ),
rec( content := ".\n",
count :=
[ 3, 2, 20, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 20, 3 ],
mathmode := "Text",
name := "Description",
next := 20425, root := ~,
start := 20231,
stop := 20424 ) ],
count := [ 3, 2, 20, 1 ],
mathmode := "Text",
name := "ManSection",
next := 20440, root := ~,
start := 20080, stop := 20439 ),
rec( content := "\n \n",
count := [ 3, 2, 20, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "name",
Comm := "Return host inf\
ormation by name.", Name := "IO_gethostbyname" ), content := 0,
count := [ 3, 2, 21, 2 ],
mathmode := "Text",
name := "Func",
next := 20544, root := ~,
start := 20456,
stop := 20543 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 3, 2, 21, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 21, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 21, 3 ],
mathmode := "Text",
name := "K",
next := 20578,
root := ~,
start := 20567,
stop := 20577 ),
rec( content := " ",
count :=
[ 3, 2, 21, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 21, 3 ],
mathmode := "Text",
name := "Returns",
next := 20589, root := ~,
start := 20545,
stop := 20588 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReturn \
host information by name.\nFor details see ", count := [ 3, 2, 21, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 gethostbyname", count := [ 3, 2,\
21, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count :=
[ 3, 2,
21, 3 ],
mathmode := \
"Text", name := "C", next := 20682, root := ~, start := 20656, stop := 20681
) ],
count :=
[ 3, 2, 21, 3 ],
mathmode := "Text",
name := "Q",
next := 20686,
root := ~,
start := 20653,
stop := 20685 ),
rec( content := ". A ",
count :=
[ 3, 2, 21, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 21, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 21, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record \
is returned\nwith all the relevant information about the host.\n",
count :=
[ 3, 2, 21, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 21, 3 ],
mathmode := "Text",
name := "Description",
next := 20779, root := ~,
start := 20590,
stop := 20778 ) ],
count := [ 3, 2, 21, 1 ],
mathmode := "Text",
name := "ManSection",
next := 20794, root := ~,
start := 20443, stop := 20793 ),
rec( content := "\n \n",
count := [ 3, 2, 21, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Return host nam\
e.", Name := "IO_gethostname" ), content := 0, count := [ 3, 2, 22, 2 ],
mathmode := "Text",
name := "Func",
next := 20877, root := ~,
start := 20810,
stop := 20876 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 3, 2, 22, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 22, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 22, 3 ],
mathmode := "Text",
name := "K",
next := 20911,
root := ~,
start := 20900,
stop := 20910 ),
rec( content := " ",
count :=
[ 3, 2, 22, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 22, 3 ],
mathmode := "Text",
name := "Returns",
next := 20922, root := ~,
start := 20878,
stop := 20921 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReturn \
host name.\nFor details see ", count := [ 3, 2, 22, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 gethostname", count := [ 3, 2, 2\
2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count :=
[ 3, 2,
22, 3 ],
mathmode := \
"Text", name := "C", next := 20998, root := ~, start := 20974, stop := 20997
) ],
count :=
[ 3, 2, 22, 3 ],
mathmode := "Text",
name := "Q",
next := 21002,
root := ~,
start := 20971,
stop := 21001 ),
rec( content := ".\n",
count :=
[ 3, 2, 22, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 22, 3 ],
mathmode := "Text",
name := "Description",
next := 21018, root := ~,
start := 20923,
stop := 21017 ) ],
count := [ 3, 2, 22, 1 ],
mathmode := "Text",
name := "ManSection",
next := 21033, root := ~,
start := 20797, stop := 21032 ),
rec( content := "\n \n",
count := [ 3, 2, 22, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Get process ID.\
", Name := "IO_getpid" ), content := 0, count := [ 3, 2, 23, 2 ],
mathmode := "Text",
name := "Func",
next := 21103, root := ~,
start := 21049,
stop := 21102 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er ", count := [ 3, 2, 23, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 23, 3 ],
mathmode := "Text",
name := "Returns",
next := 21135, root := ~,
start := 21104,
stop := 21134 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Ret\
urns the process ID of the current process as an integer. For\n details see\
", count := [ 3, 2, 23, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 getpid", count := [ 3, 2, 23, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 23, 3 ],
mathmode := \
"Text", name := "C", next := 21257, root := ~, start := 21238, stop := 21256
) ],
count :=
[ 3, 2, 23, 3 ],
mathmode := "Text",
name := "Q",
next := 21261,
root := ~,
start := 21235,
stop := 21260 ),
rec( content := ".\n",
count :=
[ 3, 2, 23, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 23, 3 ],
mathmode := "Text",
name := "Description",
next := 21277, root := ~,
start := 21136,
stop := 21276 ) ],
count := [ 3, 2, 23, 1 ],
mathmode := "Text",
name := "ManSection",
next := 21291, root := ~,
start := 21036, stop := 21290 ),
rec( content := "\n\n",
count := [ 3, 2, 23, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Get parent proc\
ess ID.", Name := "IO_getppid" ), content := 0, count := [ 3, 2, 24, 2 ],
mathmode := "Text",
name := "Func",
next := 21368, root := ~,
start := 21306,
stop := 21367 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er ", count := [ 3, 2, 24, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 24, 3 ],
mathmode := "Text",
name := "Returns",
next := 21400, root := ~,
start := 21369,
stop := 21399 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Ret\
urns the process ID of the parent of the current process as an \n integer. \
For details see ", count := [ 3, 2, 24, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 getppid", count := [ 3, 2, 24, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 24,
3 ],
mathmode := \
"Text", name := "C", next := 21538, root := ~, start := 21518, stop := 21537
) ],
count :=
[ 3, 2, 24, 3 ],
mathmode := "Text",
name := "Q",
next := 21542,
root := ~,
start := 21515,
stop := 21541 ),
rec( content := ".\n",
count :=
[ 3, 2, 24, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 24, 3 ],
mathmode := "Text",
name := "Description",
next := 21558, root := ~,
start := 21401,
stop := 21557 ) ],
count := [ 3, 2, 24, 1 ],
mathmode := "Text",
name := "ManSection",
next := 21572, root := ~,
start := 21293, stop := 21571 ),
rec( content := "\n\n",
count := [ 3, 2, 24, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd",
Comm := "Get a socket na\
me.", Name := "IO_getsockname" ), content := 0, count := [ 3, 2, 25, 2 ],
mathmode := "Text",
name := "Func",
next := 21657, root := ~,
start := 21587,
stop := 21656 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 3, 2, 25, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 25, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 25, 3 ],
mathmode := "Text",
name := "K",
next := 21691,
root := ~,
start := 21680,
stop := 21690 ),
rec( content := " ",
count :=
[ 3, 2, 25, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 25, 3 ],
mathmode := "Text",
name := "Returns",
next := 21702, root := ~,
start := 21658,
stop := 21701 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nGet a s\
ocket name. For details see ", count := [ 3, 2, 25, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 getsockname", count := [ 3, 2, 2\
5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count :=
[ 3, 2,
25, 3 ],
mathmode := \
"Text", name := "C", next := 21779, root := ~, start := 21755, stop := 21778
) ],
count :=
[ 3, 2, 25, 3 ],
mathmode := "Text",
name := "Q",
next := 21783,
root := ~,
start := 21752,
stop := 21782 ),
rec( content := ".\n",
count :=
[ 3, 2, 25, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 25, 3 ],
mathmode := "Text",
name := "Description",
next := 21799, root := ~,
start := 21703,
stop := 21798 ) ],
count := [ 3, 2, 25, 1 ],
mathmode := "Text",
name := "ManSection",
next := 21814, root := ~,
start := 21574, stop := 21813 ),
rec( content := "\n \n",
count := [ 3, 2, 25, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, level, optna\
me, optval", Comm := "Get a socket option.", Name := "IO_getsockopt" ),
content := 0,
count := [ 3, 2, 26, 2 ],
mathmode := "Text",
name := "Func",
next := 21925, root := ~,
start := 21830,
stop := 21924 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 26, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "K",
next := 21947,
root := ~,
start := 21936,
stop := 21946 ),
rec( content := " or ",
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 26, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "K",
next := 21963,
root := ~,
start := 21951,
stop := 21962 ),
rec( content := " ",
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 26, 3 ],
mathmode := "Text",
name := "Returns",
next := 21974, root := ~,
start := 21926,
stop := 21973 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nGet a s\
ocket option. For details see ", count := [ 3, 2, 26, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 getsockopt", count := [ 3, 2, 26\
, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count :=
[ 3, 2,
26, 3 ],
mathmode := \
"Text", name := "C", next := 22052, root := ~, start := 22029, stop := 22051
) ],
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "Q",
next := 22056,
root := ~,
start := 22026,
stop := 22055 ),
rec(
content := ".\nNote \
that the argument ", count := [ 3, 2, 26, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ptval", count := [ 3, 2, 26, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "A",
next := 22094,
root := ~,
start := 22081,
stop := 22093 ),
rec(
content := " carries\
its length around, such that\nno 5th argument is necessary.\n",
count :=
[ 3, 2, 26, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 26, 3 ],
mathmode := "Text",
name := "Description",
next := 22176, root := ~,
start := 21975,
stop := 22175 ) ],
count := [ 3, 2, 26, 1 ],
mathmode := "Text",
name := "ManSection",
next := 22191, root := ~,
start := 21817, stop := 22190 ),
rec( content := "\n \n",
count := [ 3, 2, 26, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Get the current\
time.", Name := "IO_gettimeofday" ), content := 0, count := [ 3, 2, 27, 2 ],
mathmode := "Text",
name := "Func",
next := 22279, root := ~,
start := 22207,
stop := 22278 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " A record\
with components ", count := [ 3, 2, 27, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_sec", count := [ 3, 2, 27, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "C",
next := 22328,
root := ~,
start := 22315,
stop := 22327 ),
rec( content := " and ",
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_usec", count := [ 3, 2, 27, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "C",
next := 22347,
root := ~,
start := 22333,
stop := 22346 ),
rec( content := " ",
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 27, 3 ],
mathmode := "Text",
name := "Returns",
next := 22358, root := ~,
start := 22280,
stop := 22357 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis re\
turns the time elapsed since 1.1.1970, 0:00 GMT. The component\n",
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_sec", count := [ 3, 2, 27, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "C",
next := 22456,
root := ~,
start := 22443,
stop := 22455 ),
rec(
content := " contain\
s the number of full seconds and the number\n", count := [ 3, 2, 27, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_usec", count := [ 3, 2, 27, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 27, 3 ],
mathmode := "Text",
name := "C",
next := 22522,
root := ~,
start := 22508,
stop := 22521 ),
rec(
content := " the add\
itional microseconds.\n", count := [ 3, 2, 27, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 27, 3 ],
mathmode := "Text",
name := "Description",
next := 22566, root := ~,
start := 22359,
stop := 22565 ) ],
count := [ 3, 2, 27, 1 ],
mathmode := "Text",
name := "ManSection",
next := 22581, root := ~,
start := 22194, stop := 22580 ),
rec( content := "\n \n",
count := [ 3, 2, 27, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "seconds",
Comm := "Computes broken\
down time.", Name := "IO_gmtime" ), content := 0, count := [ 3, 2, 28, 2 ],
mathmode := "Text",
name := "Func",
next := 22675, root := ~,
start := 22597,
stop := 22674 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " A record\
", count := [ 3, 2, 28, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 3, 2, 28, 3 ],
mathmode := "Text",
name := "Returns",
next := 22705, root := ~,
start := 22676,
stop := 22704 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument is the number of seconds that have elapsed since\n1.1.1970, 0:00 GMT. Th\
e result is a record with the current Greenwich\nmean time\nbroken down into d\
ate and time as in the C-library function\n", count := [ 3, 2, 28, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "g\
mtime", count := [ 3, 2, 28, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 28, 3 ],
mathmode := "Text",
name := "C",
next := 22935,
root := ~,
start := 22922,
stop := 22934 ),
rec( content := ".\n",
count :=
[ 3, 2, 28, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 28, 3 ],
mathmode := "Text",
name := "Description",
next := 22951, root := ~,
start := 22706,
stop := 22950 ) ],
count := [ 3, 2, 28, 1 ],
mathmode := "Text",
name := "ManSection",
next := 22966, root := ~,
start := 22584, stop := 22965 ),
rec( content := "\n \n",
count := [ 3, 2, 28, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "pid, sig",
Comm := "Send signal.",
Name := "IO_kill" ),
content := 0,
count := [ 3, 2, 29, 2 ],
mathmode := "Text",
name := "Func",
next := 23039, root := ~,
start := 22982,
stop := 23038 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "K",
next := 23061,
root := ~,
start := 23050,
stop := 23060 ),
rec( content := " or ",
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "K",
next := 23076,
root := ~,
start := 23065,
stop := 23075 ),
rec( content := " ",
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 29, 3 ],
mathmode := "Text",
name := "Returns",
next := 23087, root := ~,
start := 23040,
stop := 23086 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Sen\
ds the signal ", count := [ 3, 2, 29, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
ig", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "A",
next := 23133,
root := ~,
start := 23123,
stop := 23132 ),
rec(
content := " to the \
process with process ID\n ", count := [ 3, 2, 29, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
id", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "A",
next := 23179,
root := ~,
start := 23169,
stop := 23178 ),
rec(
content := ". For de\
tails see ", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 kill", count := [ 3, 2, 29, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 29, 3 ],
mathmode := \
"Text", name := "C", next := 23217, root := ~, start := 23200, stop := 23216
) ],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "Q",
next := 23221,
root := ~,
start := 23197,
stop := 23220 ),
rec(
content := ".\n T\
he signal numbers available can be found in the global\n ",
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "C",
next := 23296,
root := ~,
start := 23287,
stop := 23295 ),
rec(
content := " record \
with names like ", count := [ 3, 2, 29, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "S\
IGTERM", count := [ 3, 2, 29, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "C",
next := 23334,
root := ~,
start := 23320,
stop := 23333 ),
rec( content := ".\n",
count :=
[ 3, 2, 29, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 29, 3 ],
mathmode := "Text",
name := "Description",
next := 23350, root := ~,
start := 23088,
stop := 23349 ) ],
count := [ 3, 2, 29, 1 ],
mathmode := "Text",
name := "ManSection",
next := 23364, root := ~,
start := 22969, stop := 23363 ),
rec( content := "\n\n",
count := [ 3, 2, 29, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "path, owner, gro\
up", Comm := "Changes owner and/or group of a file not following links.",
Name := "IO_lchown" ),
content := 0,
count := [ 3, 2, 30, 2 ],
mathmode := "Text",
name := "Func",
next := 23499, root := ~,
start := 23379,
stop := 23498 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 30, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "K",
next := 23521,
root := ~,
start := 23510,
stop := 23520 ),
rec( content := " or ",
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 30, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "K",
next := 23537,
root := ~,
start := 23525,
stop := 23536 ),
rec( content := " ",
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 30, 3 ],
mathmode := "Text",
name := "Returns",
next := 23548, root := ~,
start := 23500,
stop := 23547 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nChanges\
owner and/or group of a file not following links.\nFor details see ",
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 lchown", count := [ 3, 2, 30, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 30, 3 ],
mathmode := \
"Text", name := "C", next := 23659, root := ~, start := 23640, stop := 23658
) ],
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "Q",
next := 23663,
root := ~,
start := 23637,
stop := 23662 ),
rec( content := ".\n",
count :=
[ 3, 2, 30, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 30, 3 ],
mathmode := "Text",
name := "Description",
next := 23679, root := ~,
start := 23549,
stop := 23678 ) ],
count := [ 3, 2, 30, 1 ],
mathmode := "Text",
name := "ManSection",
next := 23694, root := ~,
start := 23366, stop := 23693 ),
rec( content := "\n \n",
count := [ 3, 2, 30, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "oldpath, newpath\
", Comm := "Create a hard link.", Name := "IO_link" ), content := 0,
count := [ 3, 2, 31, 2 ],
mathmode := "Text",
name := "Func",
next := 23788, root := ~,
start := 23710,
stop := 23787 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 31, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "K",
next := 23810,
root := ~,
start := 23799,
stop := 23809 ),
rec( content := " or ",
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 31, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "K",
next := 23826,
root := ~,
start := 23814,
stop := 23825 ),
rec( content := " ",
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 31, 3 ],
mathmode := "Text",
name := "Returns",
next := 23837, root := ~,
start := 23789,
stop := 23836 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreate \
a hard link.\nFor details see ", count := [ 3, 2, 31, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 link", count := [ 3, 2, 31, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 31, 3 ],
mathmode := \
"Text", name := "C", next := 23908, root := ~, start := 23891, stop := 23907
) ],
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "Q",
next := 23912,
root := ~,
start := 23888,
stop := 23911 ),
rec( content := ".\n",
count :=
[ 3, 2, 31, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 31, 3 ],
mathmode := "Text",
name := "Description",
next := 23928, root := ~,
start := 23838,
stop := 23927 ) ],
count := [ 3, 2, 31, 1 ],
mathmode := "Text",
name := "ManSection",
next := 23943, root := ~,
start := 23697, stop := 23942 ),
rec( content := "\n \n",
count := [ 3, 2, 31, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fd, backlog",
Comm := "Switch a socket\
to listening.", Name := "IO_listen" ), content := 0,
count := [ 3, 2, 32, 2 ],
mathmode := "Text",
name := "Func",
next := 24044, root := ~,
start := 23959,
stop := 24043 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 32, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "K",
next := 24066,
root := ~,
start := 24055,
stop := 24065 ),
rec( content := " or ",
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 32, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "K",
next := 24082,
root := ~,
start := 24070,
stop := 24081 ),
rec( content := " ",
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 32, 3 ],
mathmode := "Text",
name := "Returns",
next := 24093, root := ~,
start := 24045,
stop := 24092 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSwitch \
a socket to listening.\nFor details see ", count := [ 3, 2, 32, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 listen", count := [ 3, 2, 32, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 32, 3 ],
mathmode := \
"Text", name := "C", next := 24176, root := ~, start := 24157, stop := 24175
) ],
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "Q",
next := 24180,
root := ~,
start := 24154,
stop := 24179 ),
rec( content := ".\n",
count :=
[ 3, 2, 32, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 32, 3 ],
mathmode := "Text",
name := "Description",
next := 24196, root := ~,
start := 24094,
stop := 24195 ) ],
count := [ 3, 2, 32, 1 ],
mathmode := "Text",
name := "ManSection",
next := 24211, root := ~,
start := 23946, stop := 24210 ),
rec( content := "\n \n",
count := [ 3, 2, 32, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "seconds",
Comm := "Computes broken\
down time.", Name := "IO_localtime" ), content := 0,
count := [ 3, 2, 33, 2 ],
mathmode := "Text",
name := "Func",
next := 24308, root := ~,
start := 24227,
stop := 24307 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " A record\
", count := [ 3, 2, 33, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 3, 2, 33, 3 ],
mathmode := "Text",
name := "Returns",
next := 24338, root := ~,
start := 24309,
stop := 24337 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument is the number of seconds that have elapsed since\n1.1.1970, 0:00 GMT. Th\
e result is a record with the current local time\nbroken down into date and ti\
me as in the C-library function\n", count := [ 3, 2, 33, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
ocaltime", count := [ 3, 2, 33, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 33, 3 ],
mathmode := "Text",
name := "C",
next := 24562,
root := ~,
start := 24546,
stop := 24561 ),
rec( content := ".\n",
count :=
[ 3, 2, 33, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 33, 3 ],
mathmode := "Text",
name := "Description",
next := 24578, root := ~,
start := 24339,
stop := 24577 ) ],
count := [ 3, 2, 33, 1 ],
mathmode := "Text",
name := "ManSection",
next := 24593, root := ~,
start := 24214, stop := 24592 ),
rec( content := "\n \n",
count := [ 3, 2, 33, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, offset, when\
ce", Comm := "Seeks with in an open file.", Name := "IO_lseek" ),
content := 0,
count := [ 3, 2, 34, 2 ],
mathmode := "Text",
name := "Func",
next := 24698, root := ~,
start := 24609,
stop := 24697 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 34, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 34, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 34, 3 ],
mathmode := "Text",
name := "K",
next := 24734,
root := ~,
start := 24723,
stop := 24733 ),
rec( content := " ",
count :=
[ 3, 2, 34, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 34, 3 ],
mathmode := "Text",
name := "Returns",
next := 24745, root := ~,
start := 24699,
stop := 24744 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSeeks w\
ithin an open file.\nFor details see ", count := [ 3, 2, 34, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 lseek", count := [ 3, 2, 34, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 34, 3 ],
mathmode := \
"Text", name := "C", next := 24824, root := ~, start := 24806, stop := 24823
) ],
count :=
[ 3, 2, 34, 3 ],
mathmode := "Text",
name := "Q",
next := 24828,
root := ~,
start := 24803,
stop := 24827 ),
rec( content := ".\n",
count :=
[ 3, 2, 34, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 34, 3 ],
mathmode := "Text",
name := "Description",
next := 24844, root := ~,
start := 24746,
stop := 24843 ) ],
count := [ 3, 2, 34, 1 ],
mathmode := "Text",
name := "ManSection",
next := 24859, root := ~,
start := 24596, stop := 24858 ),
rec( content := "\n \n",
count := [ 3, 2, 34, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "name",
Comm := "Returns the fil\
e meta data for a file not following links.", Name := "IO_lstat" ),
content := 0,
count := [ 3, 2, 35, 2 ],
mathmode := "Text",
name := "Func",
next := 24981, root := ~,
start := 24875,
stop := 24980 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 3, 2, 35, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 35, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "K",
next := 25015,
root := ~,
start := 25004,
stop := 25014 ),
rec( content := " ",
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 35, 3 ],
mathmode := "Text",
name := "Returns",
next := 25026, root := ~,
start := 24982,
stop := 25025 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReturns\
the file meta data for a file not following links.\nFor details see ",
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 lstat", count := [ 3, 2, 35, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 35, 3 ],
mathmode := \
"Text", name := "C", next := 25137, root := ~, start := 25119, stop := 25136
) ],
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "Q",
next := 25141,
root := ~,
start := 25116,
stop := 25140 ),
rec( content := ". A ",
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 35, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record \
is returned with\nthe same entries than a ", count := [ 3, 2, 35, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
truct stat", count := [ 3, 2, 35, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "C",
next := 25217,
root := ~,
start := 25199,
stop := 25216 ),
rec( content := ".\n",
count :=
[ 3, 2, 35, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 35, 3 ],
mathmode := "Text",
name := "Description",
next := 25233, root := ~,
start := 25027,
stop := 25232 ) ],
count := [ 3, 2, 35, 1 ],
mathmode := "Text",
name := "ManSection",
next := 25248, root := ~,
start := 24862, stop := 25247 ),
rec( content := "\n \n",
count := [ 3, 2, 35, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "pathname, mode",
Comm := "Creates a direc\
tory.", Name := "IO_mkdir" ), content := 0, count := [ 3, 2, 36, 2 ],
mathmode := "Text",
name := "Func",
next := 25342, root := ~,
start := 25264,
stop := 25341 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 36, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "K",
next := 25364,
root := ~,
start := 25353,
stop := 25363 ),
rec( content := " or ",
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 36, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "K",
next := 25380,
root := ~,
start := 25368,
stop := 25379 ),
rec( content := " ",
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 36, 3 ],
mathmode := "Text",
name := "Returns",
next := 25391, root := ~,
start := 25343,
stop := 25390 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreates\
a directory.\nFor details see ", count := [ 3, 2, 36, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 mkdir", count := [ 3, 2, 36, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 36, 3 ],
mathmode := \
"Text", name := "C", next := 25464, root := ~, start := 25446, stop := 25463
) ],
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "Q",
next := 25468,
root := ~,
start := 25443,
stop := 25467 ),
rec( content := ".\n",
count :=
[ 3, 2, 36, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 36, 3 ],
mathmode := "Text",
name := "Description",
next := 25484, root := ~,
start := 25392,
stop := 25483 ) ],
count := [ 3, 2, 36, 1 ],
mathmode := "Text",
name := "ManSection",
next := 25499, root := ~,
start := 25251, stop := 25498 ),
rec( content := "\n \n",
count := [ 3, 2, 36, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "pathname, mode",
Comm := "Makes a FIFO sp\
ecial file (a named pipe).", Name := "IO_mkfifo" ), content := 0,
count := [ 3, 2, 37, 2 ],
mathmode := "Text",
name := "Func",
next := 25615, root := ~,
start := 25515,
stop := 25614 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 37, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "K",
next := 25637,
root := ~,
start := 25626,
stop := 25636 ),
rec( content := " or ",
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 37, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "K",
next := 25653,
root := ~,
start := 25641,
stop := 25652 ),
rec( content := " ",
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 37, 3 ],
mathmode := "Text",
name := "Returns",
next := 25664, root := ~,
start := 25616,
stop := 25663 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreates\
a FIFO special file (a named pipe).\nFor details see ", count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 mkfifo", count := [ 3, 2, 37, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 37, 3 ],
mathmode := \
"Text", name := "C", next := 25761, root := ~, start := 25742, stop := 25760
) ],
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "Q",
next := 25765,
root := ~,
start := 25739,
stop := 25764 ),
rec( content := ".\n",
count :=
[ 3, 2, 37, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 37, 3 ],
mathmode := "Text",
name := "Description",
next := 25781, root := ~,
start := 25665,
stop := 25780 ) ],
count := [ 3, 2, 37, 1 ],
mathmode := "Text",
name := "ManSection",
next := 25796, root := ~,
start := 25502, stop := 25795 ),
rec( content := "\n \n",
count := [ 3, 2, 37, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "pathname, mode, \
dev", Comm := "Create a special or ordinary file.", Name := "IO_mknod" ),
content := 0,
count := [ 3, 2, 38, 2 ],
mathmode := "Text",
name := "Func",
next := 25909, root := ~,
start := 25812,
stop := 25908 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 38, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "K",
next := 25931,
root := ~,
start := 25920,
stop := 25930 ),
rec( content := " or ",
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 38, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "K",
next := 25947,
root := ~,
start := 25935,
stop := 25946 ),
rec( content := " ",
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 38, 3 ],
mathmode := "Text",
name := "Returns",
next := 25958, root := ~,
start := 25910,
stop := 25957 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreate \
a special or ordinary file.\nFor details see ", count := [ 3, 2, 38, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 mknod", count := [ 3, 2, 38, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 38, 3 ],
mathmode := \
"Text", name := "C", next := 26045, root := ~, start := 26027, stop := 26044
) ],
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "Q",
next := 26049,
root := ~,
start := 26024,
stop := 26048 ),
rec( content := ".\n",
count :=
[ 3, 2, 38, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 38, 3 ],
mathmode := "Text",
name := "Description",
next := 26065, root := ~,
start := 25959,
stop := 26064 ) ],
count := [ 3, 2, 38, 1 ],
mathmode := "Text",
name := "ManSection",
next := 26080, root := ~,
start := 25799, stop := 26079 ),
rec( content := "\n \n",
count := [ 3, 2, 38, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "pathname, flags,\
mode", Comm := "Open and possibly create a file or device.",
Name := "IO_open" ),
content := 0,
count := [ 3, 2, 39, 2 ],
mathmode := "Text",
name := "Func",
next := 26202, root := ~,
start := 26096,
stop := 26201 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 39, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 39, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 39, 3 ],
mathmode := "Text",
name := "K",
next := 26238,
root := ~,
start := 26227,
stop := 26237 ),
rec( content := " ",
count :=
[ 3, 2, 39, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 39, 3 ],
mathmode := "Text",
name := "Returns",
next := 26249, root := ~,
start := 26203,
stop := 26248 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nOpen an\
d possibly create a file or device.\nFor details see ", count :=
[ 3, 2, 39, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 open", count := [ 3, 2, 39, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 39, 3 ],
mathmode := \
"Text", name := "C", next := 26343, root := ~, start := 26326, stop := 26342
) ],
count :=
[ 3, 2, 39, 3 ],
mathmode := "Text",
name := "Q",
next := 26347,
root := ~,
start := 26323,
stop := 26346 ),
rec(
content := ". Only t\
he variant with 3 arguments\ncan be used.\n", count := [ 3, 2, 39, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 39, 3 ],
mathmode := "Text",
name := "Description",
next := 26410, root := ~,
start := 26250,
stop := 26409 ) ],
count := [ 3, 2, 39, 1 ],
mathmode := "Text",
name := "ManSection",
next := 26425, root := ~,
start := 26083, stop := 26424 ),
rec( content := "\n \n",
count := [ 3, 2, 39, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "name",
Comm := "Opens a directo\
ry.", Name := "IO_opendir" ), content := 0, count := [ 3, 2, 40, 2 ],
mathmode := "Text",
name := "Func",
next := 26509, root := ~,
start := 26441,
stop := 26508 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 40, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "K",
next := 26531,
root := ~,
start := 26520,
stop := 26530 ),
rec( content := " or ",
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 40, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "K",
next := 26547,
root := ~,
start := 26535,
stop := 26546 ),
rec( content := " ",
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 40, 3 ],
mathmode := "Text",
name := "Returns",
next := 26558, root := ~,
start := 26510,
stop := 26557 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nOpens a\
directory.\nFor details see ", count := [ 3, 2, 40, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 opendir", count := [ 3, 2, 40, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 40,
3 ],
mathmode := \
"Text", name := "C", next := 26631, root := ~, start := 26611, stop := 26630
) ],
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "Q",
next := 26635,
root := ~,
start := 26608,
stop := 26634 ),
rec(
content := ". Note t\
hat only ", count := [ 3, 2, 40, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 40, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "K",
next := 26663,
root := ~,
start := 26652,
stop := 26662 ),
rec(
content := " is\nret\
urned if everything is OK, since only one ", count := [ 3, 2, 40, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "D\
IR", count := [ 3, 2, 40, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 40, 3 ],
mathmode := "Text",
name := "C",
next := 26722,
root := ~,
start := 26712,
stop := 26721 ),
rec(
content := " struct \
is \nstored on the C level and thus only one directory can be open at any\ntim\
e.\n", count := [ 3, 2, 40, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 40, 3 ],
mathmode := "Text",
name := "Description",
next := 26823, root := ~,
start := 26559,
stop := 26822 ) ],
count := [ 3, 2, 40, 1 ],
mathmode := "Text",
name := "ManSection",
next := 26838, root := ~,
start := 26428, stop := 26837 ),
rec( content := "\n \n",
count := [ 3, 2, 40, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Create a pair o\
f file descriptors with a pipe between them.", Name := "IO_pipe" ),
content := 0,
count := [ 3, 2, 41, 2 ],
mathmode := "Text",
name := "Func",
next := 26956, root := ~,
start := 26854,
stop := 26955 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 3, 2, 41, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 41, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "K",
next := 26990,
root := ~,
start := 26979,
stop := 26989 ),
rec( content := " ",
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 41, 3 ],
mathmode := "Text",
name := "Returns",
next := 27001, root := ~,
start := 26957,
stop := 27000 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreate \
a pair of file descriptors with a pipe between them.\nFor details see ",
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 pipe", count := [ 3, 2, 41, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 41, 3 ],
mathmode := \
"Text", name := "C", next := 27112, root := ~, start := 27095, stop := 27111
) ],
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "Q",
next := 27116,
root := ~,
start := 27092,
stop := 27115 ),
rec(
content := ". Note t\
hat no arguments are needed. The\nresult is either ", count := [ 3, 2, 41, 3 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 41, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "K",
next := 27185,
root := ~,
start := 27174,
stop := 27184 ),
rec(
content := " in case\
of an error or a record with two\ncomponents ", count := [ 3, 2, 41, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
oread", count := [ 3, 2, 41, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "C",
next := 27251,
root := ~,
start := 27238,
stop := 27250 ),
rec( content := " and ",
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
owrite", count := [ 3, 2, 41, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "C",
next := 27270,
root := ~,
start := 27256,
stop := 27269 ),
rec(
content := " bound t\
o the two\nfiledescriptors for reading and writing respectively.\n",
count :=
[ 3, 2, 41, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 41, 3 ],
mathmode := "Text",
name := "Description",
next := 27356, root := ~,
start := 27002,
stop := 27355 ) ],
count := [ 3, 2, 41, 1 ],
mathmode := "Text",
name := "ManSection",
next := 27370, root := ~,
start := 26841, stop := 27369 ),
rec( content := "\n\n",
count := [ 3, 2, 41, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, st, offset, \
count", Comm := "Reads from file descriptor.", Name := "IO_read" ),
content := 0,
count := [ 3, 2, 42, 2 ],
mathmode := "Text",
name := "Func",
next := 27476, root := ~,
start := 27385,
stop := 27475 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "K",
next := 27512,
root := ~,
start := 27501,
stop := 27511 ),
rec( content := " ",
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "Returns",
next := 27523, root := ~,
start := 27477,
stop := 27522 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReads f\
rom file descriptor.\nFor details see ", count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 read", count := [ 3, 2, 42, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 42, 3 ],
mathmode := \
"Text", name := "C", next := 27602, root := ~, start := 27585, stop := 27601
) ],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "Q",
next := 27606,
root := ~,
start := 27582,
stop := 27605 ),
rec(
content := ". Note t\
hat there is one more argument\n", count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "A",
next := 27658,
root := ~,
start := 27645,
stop := 27657 ),
rec(
content := " to spec\
ify at which position in the string ", count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "A",
next := 27711,
root := ~,
start := 27702,
stop := 27710 ),
rec(
content := " the\nre\
ad data should be stored. Note that ", count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "A",
next := 27767,
root := ~,
start := 27754,
stop := 27766 ),
rec(
content := " zero me\
ans at the\nbeginning of the string, which is position 1 in ",
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := ". The nu\
mber of bytes\nread or ", count := [ 3, 2, 42, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 42, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 42, 3 ],
mathmode := "Text",
name := "K",
next := 27880,
root := ~,
start := 27869,
stop := 27879 ),
rec(
content := " in case\
of an error is returned.\n", count := [ 3, 2, 42, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "Description",
next := 27928, root := ~,
start := 27524,
stop := 27927 ) ],
count := [ 3, 2, 42, 1 ],
mathmode := "Text",
name := "ManSection",
next := 27943, root := ~,
start := 27372, stop := 27942 ),
rec( content := "\n \n",
count := [ 3, 2, 42, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Reads from a di\
rectory.", Name := "IO_readdir" ), content := 0, count := [ 3, 2, 43, 2 ],
mathmode := "Text",
name := "Func",
next := 28028, root := ~,
start := 27959,
stop := 28027 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 3, 2, 43, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 43, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "K",
next := 28062,
root := ~,
start := 28051,
stop := 28061 ),
rec( content := " or ",
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 43, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "K",
next := 28078,
root := ~,
start := 28066,
stop := 28077 ),
rec( content := " ",
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 43, 3 ],
mathmode := "Text",
name := "Returns",
next := 28089, root := ~,
start := 28029,
stop := 28088 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReads f\
rom a directory.\nFor details see ", count := [ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 readdir", count := [ 3, 2, 43, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 43,
3 ],
mathmode := \
"Text", name := "C", next := 28167, root := ~, start := 28147, stop := 28166
) ],
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "Q",
next := 28171,
root := ~,
start := 28144,
stop := 28170 ),
rec(
content := ". Note t\
hat no argument is required\nas we have only one ", count := [ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "D\
IR", count := [ 3, 2, 43, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "C",
next := 28237,
root := ~,
start := 28227,
stop := 28236 ),
rec(
content := " struct \
on the C level. If the directory\nis read completely ", count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 43, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "K",
next := 28309,
root := ~,
start := 28297,
stop := 28308 ),
rec(
content := " is retu\
rned, and otherwise a string. An\nerror is indicated by ",
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 43, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "K",
next := 28383,
root := ~,
start := 28372,
stop := 28382 ),
rec( content := ".\n",
count :=
[ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 43, 3 ],
mathmode := "Text",
name := "Description",
next := 28399, root := ~,
start := 28090,
stop := 28398 ) ],
count := [ 3, 2, 43, 1 ],
mathmode := "Text",
name := "ManSection",
next := 28414, root := ~,
start := 27946, stop := 28413 ),
rec( content := "\n \n",
count := [ 3, 2, 43, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "path, buf, bufsi\
ze", Comm := "Reads the value of a symbolic link.", Name := "IO_readlink" ),
content := 0,
count := [ 3, 2, 44, 2 ],
mathmode := "Text",
name := "Func",
next := 28530, root := ~,
start := 28430,
stop := 28529 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 44, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 44, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "K",
next := 28566,
root := ~,
start := 28555,
stop := 28565 ),
rec( content := " ",
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 44, 3 ],
mathmode := "Text",
name := "Returns",
next := 28577, root := ~,
start := 28531,
stop := 28576 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReads t\
he value of a symbolic link.\nFor details see ", count := [ 3, 2, 44, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 readlink", count := [ 3, 2, 44, \
3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2,
44, 3 ],
mathmode := \
"Text", name := "C", next := 28668, root := ~, start := 28647, stop := 28667
) ],
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "Q",
next := 28672,
root := ~,
start := 28644,
stop := 28671 ),
rec( content := ". ",
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
uf", count := [ 3, 2, 44, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "A",
next := 28684,
root := ~,
start := 28674,
stop := 28683 ),
rec(
content := " is modi\
fied.\nThe new length of ", count := [ 3, 2, 44, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
uf", count := [ 3, 2, 44, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "A",
next := 28726,
root := ~,
start := 28716,
stop := 28725 ),
rec(
content := " is retu\
rned or ", count := [ 3, 2, 44, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 44, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 44, 3 ],
mathmode := "Text",
name := "K",
next := 28753,
root := ~,
start := 28742,
stop := 28752 ),
rec(
content := " in case\
of\nan error.\n", count := [ 3, 2, 44, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 44, 3 ],
mathmode := "Text",
name := "Description",
next := 28789, root := ~,
start := 28578,
stop := 28788 ) ],
count := [ 3, 2, 44, 1 ],
mathmode := "Text",
name := "ManSection",
next := 28804, root := ~,
start := 28417, stop := 28803 ),
rec( content := "\n \n",
count := [ 3, 2, 44, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, st, offset, \
len, flags", Comm := "Receives data from a socket.", Name := "IO_recv" ),
content := 0,
count := [ 3, 2, 45, 2 ],
mathmode := "Text",
name := "Func",
next := 28917, root := ~,
start := 28820,
stop := 28916 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 45, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 45, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 45, 3 ],
mathmode := "Text",
name := "K",
next := 28953,
root := ~,
start := 28942,
stop := 28952 ),
rec( content := " ",
count :=
[ 3, 2, 45, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 45, 3 ],
mathmode := "Text",
name := "Returns",
next := 28964, root := ~,
start := 28918,
stop := 28963 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReceive\
s data from a socket.\nFor details see ", count := [ 3, 2, 45, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 recv", count := [ 3, 2, 45, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 45, 3 ],
mathmode := \
"Text", name := "C", next := 29044, root := ~, start := 29027, stop := 29043
) ],
count :=
[ 3, 2, 45, 3 ],
mathmode := "Text",
name := "Q",
next := 29048,
root := ~,
start := 29024,
stop := 29047 ),
rec(
content := ". Note t\
he additional argument\n", count := [ 3, 2, 45, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 45, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 45, 3 ],
mathmode := "Text",
name := "A",
next := 29092,
root := ~,
start := 29079,
stop := 29091 ),
rec(
content := " which p\
lays the same role as for the ", count := [ 3, 2, 45, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_read\
" ), content := 0, count := [ 3, 2, 45, 3 ], mathmode := "Text",
name := "Ref",
next := 29151,
root := ~,
start := 29130,
stop := 29150 ),
rec(
content := "\nfuncti\
on.\n", count := [ 3, 2, 45, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 45, 3 ],
mathmode := "Text",
name := "Description",
next := 29176, root := ~,
start := 28965,
stop := 29175 ) ],
count := [ 3, 2, 45, 1 ],
mathmode := "Text",
name := "ManSection",
next := 29191, root := ~,
start := 28807, stop := 29190 ),
rec( content := "\n \n",
count := [ 3, 2, 45, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, st, offset, \
len, flags, addr", Comm := "Receives data from a socket with given address.",
Name := "IO_recvfrom" ),
content := 0,
count := [ 3, 2, 46, 2 ],
mathmode := "Text",
name := "Func",
next := 29333, root := ~,
start := 29207,
stop := 29332 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 46, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 46, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "K",
next := 29369,
root := ~,
start := 29358,
stop := 29368 ),
rec( content := " ",
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 46, 3 ],
mathmode := "Text",
name := "Returns",
next := 29380, root := ~,
start := 29334,
stop := 29379 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReceive\
s data from a socket with given address.\nFor details see ",
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 recvfrom", count := [ 3, 2, 46, \
3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2,
46, 3 ],
mathmode := \
"Text", name := "C", next := 29483, root := ~, start := 29462, stop := 29482
) ],
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "Q",
next := 29487,
root := ~,
start := 29459,
stop := 29486 ),
rec(
content := ". Note t\
he additional argument \n", count := [ 3, 2, 46, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 46, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "A",
next := 29532,
root := ~,
start := 29519,
stop := 29531 ),
rec(
content := " which p\
lays the same role as for the ", count := [ 3, 2, 46, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_read\
" ), content := 0, count := [ 3, 2, 46, 3 ], mathmode := "Text",
name := "Ref",
next := 29591,
root := ~,
start := 29570,
stop := 29590 ),
rec(
content := "\nfuncti\
on. The argument ", count := [ 3, 2, 46, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ddr", count := [ 3, 2, 46, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "A",
next := 29626,
root := ~,
start := 29615,
stop := 29625 ),
rec(
content := " can be\\
nmade with ", count := [ 3, 2, 46, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_make\
_sockaddr_in" ), content := 0, count := [ 3, 2, 46, 3 ], mathmode := "Text",
name := "Ref",
next := 29677,
root := ~,
start := 29644,
stop := 29676 ),
rec(
content := " and con\
tains its length such\nthat no 7th argument is necessary.\n",
count :=
[ 3, 2, 46, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 46, 3 ],
mathmode := "Text",
name := "Description",
next := 29756, root := ~,
start := 29381,
stop := 29755 ) ],
count := [ 3, 2, 46, 1 ],
mathmode := "Text",
name := "ManSection",
next := 29771, root := ~,
start := 29194, stop := 29770 ),
rec( content := "\n \n",
count := [ 3, 2, 46, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "oldpath, newpath\
", Comm := "Renames a file or moves it.", Name := "IO_rename" ),
content := 0,
count := [ 3, 2, 47, 2 ],
mathmode := "Text",
name := "Func",
next := 29875, root := ~,
start := 29787,
stop := 29874 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 47, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "K",
next := 29897,
root := ~,
start := 29886,
stop := 29896 ),
rec( content := " or ",
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 47, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "K",
next := 29913,
root := ~,
start := 29901,
stop := 29912 ),
rec( content := " ",
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 47, 3 ],
mathmode := "Text",
name := "Returns",
next := 29924, root := ~,
start := 29876,
stop := 29923 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nRenames\
a file or moves it.\nFor details see ", count := [ 3, 2, 47, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 rename", count := [ 3, 2, 47, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 47, 3 ],
mathmode := \
"Text", name := "C", next := 30005, root := ~, start := 29986, stop := 30004
) ],
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "Q",
next := 30009,
root := ~,
start := 29983,
stop := 30008 ),
rec( content := ".\n",
count :=
[ 3, 2, 47, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 47, 3 ],
mathmode := "Text",
name := "Description",
next := 30025, root := ~,
start := 29925,
stop := 30024 ) ],
count := [ 3, 2, 47, 1 ],
mathmode := "Text",
name := "ManSection",
next := 30040, root := ~,
start := 29774, stop := 30039 ),
rec( content := "\n \n",
count := [ 3, 2, 47, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Rewinds a direc\
tory.", Name := "IO_rewinddir" ), content := 0, count := [ 3, 2, 48, 2 ],
mathmode := "Text",
name := "Func",
next := 30124, root := ~,
start := 30056,
stop := 30123 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 48, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "K",
next := 30146,
root := ~,
start := 30135,
stop := 30145 ),
rec( content := " or ",
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 48, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "K",
next := 30161,
root := ~,
start := 30150,
stop := 30160 ),
rec( content := " ",
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 48, 3 ],
mathmode := "Text",
name := "Returns",
next := 30172, root := ~,
start := 30125,
stop := 30171 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nRewinds\
a directory.\nFor details see ", count := [ 3, 2, 48, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 rewinddir", count := [ 3, 2, 48,\
3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2,
48, 3 ],
mathmode := \
"Text", name := "C", next := 30249, root := ~, start := 30227, stop := 30248
) ],
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "Q",
next := 30253,
root := ~,
start := 30224,
stop := 30252 ),
rec(
content := ". Note t\
hat no argument is required\nas we have only one ", count := [ 3, 2, 48, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "D\
IR", count := [ 3, 2, 48, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "C",
next := 30319,
root := ~,
start := 30309,
stop := 30318 ),
rec(
content := " struct \
on the C level. Returns ", count := [ 3, 2, 48, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 48, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 48, 3 ],
mathmode := "Text",
name := "K",
next := 30362,
root := ~,
start := 30351,
stop := 30361 ),
rec(
content := "\nonly, \
if no prior ", count := [ 3, 2, 48, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_open\
dir" ), content := 0, count := [ 3, 2, 48, 3 ], mathmode := "Text",
name := "Ref",
next := 30405,
root := ~,
start := 30381,
stop := 30404 ),
rec(
content := " command\
has been called.\n", count := [ 3, 2, 48, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 48, 3 ],
mathmode := "Text",
name := "Description",
next := 30445, root := ~,
start := 30173,
stop := 30444 ) ],
count := [ 3, 2, 48, 1 ],
mathmode := "Text",
name := "ManSection",
next := 30460, root := ~,
start := 30043, stop := 30459 ),
rec( content := "\n \n",
count := [ 3, 2, 48, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "name",
Comm := "Removes an empt\
y directory.", Name := "IO_rmdir" ), content := 0, count := [ 3, 2, 49, 2 ],
mathmode := "Text",
name := "Func",
next := 30551, root := ~,
start := 30476,
stop := 30550 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 49, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "K",
next := 30573,
root := ~,
start := 30562,
stop := 30572 ),
rec( content := " or ",
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 49, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "K",
next := 30588,
root := ~,
start := 30577,
stop := 30587 ),
rec( content := " ",
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 49, 3 ],
mathmode := "Text",
name := "Returns",
next := 30599, root := ~,
start := 30552,
stop := 30598 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nRemoves\
an empty directory.\nFor details see ", count := [ 3, 2, 49, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 rmdir", count := [ 3, 2, 49, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 49, 3 ],
mathmode := \
"Text", name := "C", next := 30679, root := ~, start := 30661, stop := 30678
) ],
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "Q",
next := 30683,
root := ~,
start := 30658,
stop := 30682 ),
rec( content := ".\n",
count :=
[ 3, 2, 49, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 49, 3 ],
mathmode := "Text",
name := "Description",
next := 30699, root := ~,
start := 30600,
stop := 30698 ) ],
count := [ 3, 2, 49, 1 ],
mathmode := "Text",
name := "ManSection",
next := 30714, root := ~,
start := 30463, stop := 30713 ),
rec( content := "\n \n",
count := [ 3, 2, 49, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "offset",
Comm := "Sets the positi\
on of the next readdir call.", Name := "IO_seekdir" ), content := 0,
count := [ 3, 2, 50, 2 ],
mathmode := "Text",
name := "Func",
next := 30825, root := ~,
start := 30730,
stop := 30824 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 50, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "K",
next := 30847,
root := ~,
start := 30836,
stop := 30846 ),
rec( content := " or ",
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 50, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "K",
next := 30862,
root := ~,
start := 30851,
stop := 30861 ),
rec( content := " ",
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 50, 3 ],
mathmode := "Text",
name := "Returns",
next := 30873, root := ~,
start := 30826,
stop := 30872 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSets th\
e position of the next readdir call.\nFor details see ", count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 seekdir", count := [ 3, 2, 50, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 50,
3 ],
mathmode := \
"Text", name := "C", next := 30971, root := ~, start := 30951, stop := 30970
) ],
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "Q",
next := 30975,
root := ~,
start := 30948,
stop := 30974 ),
rec(
content := ". Note t\
hat no second argument is \nrequired as we have only one ",
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "D\
IR", count := [ 3, 2, 50, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 50, 3 ],
mathmode := "Text",
name := "C",
next := 31049,
root := ~,
start := 31039,
stop := 31048 ),
rec(
content := " struct \
on the C level.\n", count := [ 3, 2, 50, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 50, 3 ],
mathmode := "Text",
name := "Description",
next := 31087, root := ~,
start := 30874,
stop := 31086 ) ],
count := [ 3, 2, 50, 1 ],
mathmode := "Text",
name := "ManSection",
next := 31102, root := ~,
start := 30717, stop := 31101 ),
rec( content := "\n \n",
count := [ 3, 2, 50, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "inlist, outlist,\
exclist, timeoutsec, timeoutusec", Comm := "Used for I/O multiplexing.",
Name := "IO_select" ),
content := 0,
count := [ 3, 2, 51, 2 ],
mathmode := "Text",
name := "Func",
next := 31238, root := ~,
start := 31118,
stop := 31237 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "K",
next := 31274,
root := ~,
start := 31263,
stop := 31273 ),
rec( content := " ",
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 51, 3 ],
mathmode := "Text",
name := "Returns",
next := 31285, root := ~,
start := 31239,
stop := 31284 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nUsed fo\
r I/O multiplexing.\nFor details see ", count := [ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 select", count := [ 3, 2, 51, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 51, 3 ],
mathmode := \
"Text", name := "C", next := 31365, root := ~, start := 31346, stop := 31364
) ],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "Q",
next := 31369,
root := ~,
start := 31343,
stop := 31368 ),
rec( content := ". ",
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
nlist", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "A",
next := 31384,
root := ~,
start := 31371,
stop := 31383 ),
rec( content := ", ",
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
utlist", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "A",
next := 31400,
root := ~,
start := 31386,
stop := 31399 ),
rec(
content := " and\n",
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
xclist", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "A",
next := 31419,
root := ~,
start := 31405,
stop := 31418 ),
rec(
content := " are lis\
ts of filedescriptors, which are modified. If the\ncorresponding file descript\
or is not yet ready, it is replaced by\n", count := [ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "K",
next := 31554,
root := ~,
start := 31543,
stop := 31553 ),
rec(
content := ". The ti\
meout values ", count := [ 3, 2, 51, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
imeoutsec", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "A",
next := 31592,
root := ~,
start := 31575,
stop := 31591 ),
rec(
content := " and\n",
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
imeoutusec", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "A",
next := 31615,
root := ~,
start := 31597,
stop := 31614 ),
rec(
content := " corresp\
ond to the usual arguments of ", count := [ 3, 2, 51, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
elect", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "C",
next := 31666,
root := ~,
start := 31653,
stop := 31665 ),
rec(
content := ",\nif bo\
th are immediate integers, they are set, otherwise\n", count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
elect", count := [ 3, 2, 51, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 51, 3 ],
mathmode := "Text",
name := "C",
next := 31737,
root := ~,
start := 31724,
stop := 31736 ),
rec(
content := " is call\
ed with no timeout value.\n", count := [ 3, 2, 51, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 51, 3 ],
mathmode := "Text",
name := "Description",
next := 31785, root := ~,
start := 31286,
stop := 31784 ) ],
count := [ 3, 2, 51, 1 ],
mathmode := "Text",
name := "ManSection",
next := 31800, root := ~,
start := 31105, stop := 31799 ),
rec( content := "\n \n",
count := [ 3, 2, 51, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, st, offset, \
len, flags", Comm := "Sends data to a socket.", Name := "IO_send" ),
content := 0,
count := [ 3, 2, 52, 2 ],
mathmode := "Text",
name := "Func",
next := 31908, root := ~,
start := 31816,
stop := 31907 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 52, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 52, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "K",
next := 31944,
root := ~,
start := 31933,
stop := 31943 ),
rec( content := " ",
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 52, 3 ],
mathmode := "Text",
name := "Returns",
next := 31955, root := ~,
start := 31909,
stop := 31954 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSends d\
ata to a socket.\nFor details see ", count := [ 3, 2, 52, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 send", count := [ 3, 2, 52, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 52, 3 ],
mathmode := \
"Text", name := "C", next := 32030, root := ~, start := 32013, stop := 32029
) ],
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "Q",
next := 32034,
root := ~,
start := 32010,
stop := 32033 ),
rec(
content := ". Note t\
hat the additional argument\n", count := [ 3, 2, 52, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 52, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "A",
next := 32083,
root := ~,
start := 32070,
stop := 32082 ),
rec(
content := " specifi\
es the position of the data to send within the\nstring ", count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 3, 2, 52, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "A",
next := 32154,
root := ~,
start := 32145,
stop := 32153 ),
rec(
content := ". It is \
zero based, meaning that zero indicates the\nstart of the string, which is pos\
ition 1 in ", count := [ 3, 2, 52, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 52, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec( content := ". \n",
count :=
[ 3, 2, 52, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 52, 3 ],
mathmode := "Text",
name := "Description",
next := 32272, root := ~,
start := 31956,
stop := 32271 ) ],
count := [ 3, 2, 52, 1 ],
mathmode := "Text",
name := "ManSection",
next := 32287, root := ~,
start := 31803, stop := 32286 ),
rec( content := "\n \n",
count := [ 3, 2, 52, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, st, offset, \
len, flags, addr", Comm := "Sends data to a socket.", Name := "IO_sendto" ),
content := 0,
count := [ 3, 2, 53, 2 ],
mathmode := "Text",
name := "Func",
next := 32403, root := ~,
start := 32303,
stop := 32402 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "K",
next := 32439,
root := ~,
start := 32428,
stop := 32438 ),
rec( content := " ",
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 53, 3 ],
mathmode := "Text",
name := "Returns",
next := 32450, root := ~,
start := 32404,
stop := 32449 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSends d\
ata to a socket.\nFor details see ", count := [ 3, 2, 53, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 sendto", count := [ 3, 2, 53, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 53, 3 ],
mathmode := \
"Text", name := "C", next := 32527, root := ~, start := 32508, stop := 32526
) ],
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "Q",
next := 32531,
root := ~,
start := 32505,
stop := 32530 ),
rec(
content := ". Note t\
hat the additional argument\n", count := [ 3, 2, 53, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "A",
next := 32580,
root := ~,
start := 32567,
stop := 32579 ),
rec(
content := " specifi\
es the position of the data to send within the\nstring ", count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "A",
next := 32651,
root := ~,
start := 32642,
stop := 32650 ),
rec(
content := ". It is \
zero based, meaning that zero indicates the\nstart of the string, which is pos\
ition 1 in ", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := ". The ar\
gument\n", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ddr", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "A",
next := 32778,
root := ~,
start := 32767,
stop := 32777 ),
rec(
content := " can be\\
nmade with ", count := [ 3, 2, 53, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_make\
_sockaddr_in" ), content := 0, count := [ 3, 2, 53, 3 ], mathmode := "Text",
name := "Ref",
next := 32829,
root := ~,
start := 32796,
stop := 32828 ),
rec(
content := " and con\
tains its length such\nthat no 7th argument is necessary.\n",
count :=
[ 3, 2, 53, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 53, 3 ],
mathmode := "Text",
name := "Description",
next := 32908, root := ~,
start := 32451,
stop := 32907 ) ],
count := [ 3, 2, 53, 1 ],
mathmode := "Text",
name := "ManSection",
next := 32923, root := ~,
start := 32290, stop := 32922 ),
rec( content := "\n \n",
count := [ 3, 2, 53, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, level, optna\
me, optval", Comm := "Sets a socket option.", Name := "IO_setsockopt" ),
content := 0,
count := [ 3, 2, 54, 2 ],
mathmode := "Text",
name := "Func",
next := 33035, root := ~,
start := 32939,
stop := 33034 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 54, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "K",
next := 33057,
root := ~,
start := 33046,
stop := 33056 ),
rec( content := " or ",
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 54, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "K",
next := 33072,
root := ~,
start := 33061,
stop := 33071 ),
rec( content := " ",
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 54, 3 ],
mathmode := "Text",
name := "Returns",
next := 33083, root := ~,
start := 33036,
stop := 33082 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nSets a \
socket option.\nFor details see ", count := [ 3, 2, 54, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 setsockopt", count := [ 3, 2, 54\
, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count :=
[ 3, 2,
54, 3 ],
mathmode := \
"Text", name := "C", next := 33162, root := ~, start := 33139, stop := 33161
) ],
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "Q",
next := 33166,
root := ~,
start := 33136,
stop := 33165 ),
rec(
content := ". Note t\
hat the argument\n", count := [ 3, 2, 54, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ptval", count := [ 3, 2, 54, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "A",
next := 33204,
root := ~,
start := 33191,
stop := 33203 ),
rec(
content := " carries\
its length around, such that\nno 5th argument is necessary.\n",
count :=
[ 3, 2, 54, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 54, 3 ],
mathmode := "Text",
name := "Description",
next := 33286, root := ~,
start := 33084,
stop := 33285 ) ],
count := [ 3, 2, 54, 1 ],
mathmode := "Text",
name := "ManSection",
next := 33301, root := ~,
start := 32926, stop := 33300 ),
rec( content := "\n \n",
count := [ 3, 2, 54, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "domain, type, pr\
otocol", Comm := "Creates a socket, an endpoint for communication.",
Name := "IO_socket" ),
content := 0,
count := [ 3, 2, 55, 2 ],
mathmode := "Text",
name := "Func",
next := 33432, root := ~,
start := 33317,
stop := 33431 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 55, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 55, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "K",
next := 33468,
root := ~,
start := 33457,
stop := 33467 ),
rec( content := " ",
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 55, 3 ],
mathmode := "Text",
name := "Returns",
next := 33479, root := ~,
start := 33433,
stop := 33478 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreates\
a socket, an endpoint for communication.\nFor details see ",
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 socket", count := [ 3, 2, 55, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 55, 3 ],
mathmode := \
"Text", name := "C", next := 33581, root := ~, start := 33562, stop := 33580
) ],
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "Q",
next := 33585,
root := ~,
start := 33559,
stop := 33584 ),
rec(
content := ".\nThere\
is one little special: On systems that have ", count := [ 3, 2, 55, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "g\
etprotobyname", count := [ 3, 2, 55, 3 ], mathmode := "Text", name := "PCDATA"
,
root := ~ )
],
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "C",
next := 33658,
root := ~,
start := 33637,
stop := 33657 ),
rec(
content := "\nyou ca\
n pass a string as third argument ", count := [ 3, 2, 55, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
rotocol", count := [ 3, 2, 55, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "A",
next := 33714,
root := ~,
start := 33699,
stop := 33713 ),
rec(
content := " which i\
s automatically\nlooked up by ", count := [ 3, 2, 55, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "g\
etprotobyname", count := [ 3, 2, 55, 3 ], mathmode := "Text", name := "PCDATA"
,
root := ~ )
],
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "C",
next := 33772,
root := ~,
start := 33751,
stop := 33771 ),
rec( content := ".\n",
count :=
[ 3, 2, 55, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 55, 3 ],
mathmode := "Text",
name := "Description",
next := 33788, root := ~,
start := 33480,
stop := 33787 ) ],
count := [ 3, 2, 55, 1 ],
mathmode := "Text",
name := "ManSection",
next := 33803, root := ~,
start := 33304, stop := 33802 ),
rec( content := "\n \n",
count := [ 3, 2, 55, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "pathname",
Comm := "Returns the fil\
e metadata for the file pathname.", Name := "IO_stat" ), content := 0,
count := [ 3, 2, 56, 2 ],
mathmode := "Text",
name := "Func",
next := 33918, root := ~,
start := 33819,
stop := 33917 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 3, 2, 56, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 56, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "K",
next := 33952,
root := ~,
start := 33941,
stop := 33951 ),
rec( content := " ",
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 56, 3 ],
mathmode := "Text",
name := "Returns",
next := 33963, root := ~,
start := 33919,
stop := 33962 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReturns\
the file metadata for the file ", count := [ 3, 2, 56, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
athname", count := [ 3, 2, 56, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "A",
next := 34032,
root := ~,
start := 34017,
stop := 34031 ),
rec(
content := ".\nFor d\
etails see ", count := [ 3, 2, 56, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 stat", count := [ 3, 2, 56, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 56, 3 ],
mathmode := \
"Text", name := "C", next := 34070, root := ~, start := 34053, stop := 34069
) ],
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "Q",
next := 34074,
root := ~,
start := 34050,
stop := 34073 ),
rec( content := ". A ",
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 56, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record \
is returned with\nthe same entries than a ", count := [ 3, 2, 56, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
truct stat", count := [ 3, 2, 56, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "C",
next := 34150,
root := ~,
start := 34132,
stop := 34149 ),
rec( content := ".\n",
count :=
[ 3, 2, 56, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 56, 3 ],
mathmode := "Text",
name := "Description",
next := 34166, root := ~,
start := 33964,
stop := 34165 ) ],
count := [ 3, 2, 56, 1 ],
mathmode := "Text",
name := "ManSection",
next := 34181, root := ~,
start := 33806, stop := 34180 ),
rec( content := "\n \n",
count := [ 3, 2, 56, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "oldpath, newpath\
", Comm := "Creates a symbolic link.", Name := "IO_symlink" ), content := 0,
count := [ 3, 2, 57, 2 ],
mathmode := "Text",
name := "Func",
next := 34283, root := ~,
start := 34197,
stop := 34282 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 57, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "K",
next := 34305,
root := ~,
start := 34294,
stop := 34304 ),
rec( content := " or ",
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 57, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "K",
next := 34320,
root := ~,
start := 34309,
stop := 34319 ),
rec( content := " ",
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 57, 3 ],
mathmode := "Text",
name := "Returns",
next := 34331, root := ~,
start := 34284,
stop := 34330 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCreates\
a symbolic link.\nFor details see ", count := [ 3, 2, 57, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 symlink", count := [ 3, 2, 57, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 57,
3 ],
mathmode := \
"Text", name := "C", next := 34410, root := ~, start := 34390, stop := 34409
) ],
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "Q",
next := 34414,
root := ~,
start := 34387,
stop := 34413 ),
rec( content := ".\n",
count :=
[ 3, 2, 57, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 57, 3 ],
mathmode := "Text",
name := "Description",
next := 34430, root := ~,
start := 34332,
stop := 34429 ) ],
count := [ 3, 2, 57, 1 ],
mathmode := "Text",
name := "ManSection",
next := 34445, root := ~,
start := 34184, stop := 34444 ),
rec( content := "\n \n",
count := [ 3, 2, 57, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Return current \
location in directory.", Name := "IO_telldir" ), content := 0,
count := [ 3, 2, 58, 2 ],
mathmode := "Text",
name := "Func",
next := 34544, root := ~,
start := 34461,
stop := 34543 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 58, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 58, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 58, 3 ],
mathmode := "Text",
name := "K",
next := 34580,
root := ~,
start := 34569,
stop := 34579 ),
rec( content := " ",
count :=
[ 3, 2, 58, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 58, 3 ],
mathmode := "Text",
name := "Returns",
next := 34591, root := ~,
start := 34545,
stop := 34590 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nReturn \
current location in directory.\nFor details see ", count := [ 3, 2, 58, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 3 telldir", count := [ 3, 2, 58, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 58,
3 ],
mathmode := \
"Text", name := "C", next := 34683, root := ~, start := 34663, stop := 34682
) ],
count :=
[ 3, 2, 58, 3 ],
mathmode := "Text",
name := "Q",
next := 34687,
root := ~,
start := 34660,
stop := 34686 ),
rec(
content := ". Note t\
hat no second argument is\nrequired as we have only one ",
count :=
[ 3, 2, 58, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "D\
IR", count := [ 3, 2, 58, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 58, 3 ],
mathmode := "Text",
name := "C",
next := 34760,
root := ~,
start := 34750,
stop := 34759 ),
rec(
content := " struct \
on the C level.\n", count := [ 3, 2, 58, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 58, 3 ],
mathmode := "Text",
name := "Description",
next := 34798, root := ~,
start := 34592,
stop := 34797 ) ],
count := [ 3, 2, 58, 1 ],
mathmode := "Text",
name := "ManSection",
next := 34813, root := ~,
start := 34448, stop := 34812 ),
rec( content := "\n \n",
count := [ 3, 2, 58, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "pathname",
Comm := "Delete a name a\
nd possibly the file it refers to.", Name := "IO_unlink" ), content := 0,
count := [ 3, 2, 59, 2 ],
mathmode := "Text",
name := "Func",
next := 34931, root := ~,
start := 34829,
stop := 34930 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 59, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "K",
next := 34953,
root := ~,
start := 34942,
stop := 34952 ),
rec( content := " or ",
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 59, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "K",
next := 34968,
root := ~,
start := 34957,
stop := 34967 ),
rec( content := " ",
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 59, 3 ],
mathmode := "Text",
name := "Returns",
next := 34979, root := ~,
start := 34932,
stop := 34978 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nDelete \
a name and possibly the file it refers to.\nFor details see ",
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 unlink", count := [ 3, 2, 59, 3
]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 59, 3 ],
mathmode := \
"Text", name := "C", next := 35082, root := ~, start := 35063, stop := 35081
) ],
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "Q",
next := 35086,
root := ~,
start := 35060,
stop := 35085 ),
rec( content := ".\n",
count :=
[ 3, 2, 59, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 59, 3 ],
mathmode := "Text",
name := "Description",
next := 35102, root := ~,
start := 34980,
stop := 35101 ) ],
count := [ 3, 2, 59, 1 ],
mathmode := "Text",
name := "ManSection",
next := 35117, root := ~,
start := 34816, stop := 35116 ),
rec( content := "\n \n",
count := [ 3, 2, 59, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "pid, wait",
Comm := "Waits for the t\
ermination of a child process.", Name := "IO_WaitPid" ), content := 0,
count := [ 3, 2, 60, 2 ],
mathmode := "Text",
name := "Func",
next := 35233, root := ~,
start := 35133,
stop := 35232 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "K",
next := 35267,
root := ~,
start := 35256,
stop := 35266 ),
rec( content := " ",
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 60, 3 ],
mathmode := "Text",
name := "Returns",
next := 35278, root := ~,
start := 35234,
stop := 35277 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nWaits f\
or the termination of a child process.\nFor details see ",
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 waitpid", count := [ 3, 2, 60, 3\
], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 60,
3 ],
mathmode := \
"Text", name := "C", next := 35378, root := ~, start := 35358, stop := 35377
) ],
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "Q",
next := 35382,
root := ~,
start := 35355,
stop := 35381 ),
rec(
content := ". Return\
s a ", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record\\
ndescribing PID and exit status. The second argument ", count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
ait", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "A",
next := 35470,
root := ~,
start := 35459,
stop := 35469 ),
rec(
content := " must\nb\
e either ", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "K",
next := 35497,
root := ~,
start := 35486,
stop := 35496 ),
rec( content := " or ",
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 2, 60, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "K",
next := 35513,
root := ~,
start := 35501,
stop := 35512 ),
rec(
content := ". In the\
first case, the call\nblocks until new information about a terminated child p\
rocess is\navailable. In the second case no such waiting is performed, the\nca\
ll returns immediately. See ", count := [ 3, 2, 60, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_fork\
" ), content := 0, count := [ 3, 2, 60, 3 ], mathmode := "Text",
name := "Ref",
next := 35723,
root := ~,
start := 35702,
stop := 35722 ),
rec( content := ".\n",
count :=
[ 3, 2, 60, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 60, 3 ],
mathmode := "Text",
name := "Description",
next := 35739, root := ~,
start := 35279,
stop := 35738 ) ],
count := [ 3, 2, 60, 1 ],
mathmode := "Text",
name := "ManSection",
next := 35754, root := ~,
start := 35120, stop := 35753 ),
rec( content := "\n \n\n",
count := [ 3, 2, 60, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, st, offset, \
count", Comm := "Writes to a file descriptor.", Name := "IO_write" ),
content := 0,
count := [ 3, 2, 61, 2 ],
mathmode := "Text",
name := "Func",
next := 35864, root := ~,
start := 35771,
stop := 35863 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 3, 2, 61, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 2, 61, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "K",
next := 35900,
root := ~,
start := 35889,
stop := 35899 ),
rec( content := " ",
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 61, 3 ],
mathmode := "Text",
name := "Returns",
next := 35911, root := ~,
start := 35865,
stop := 35910 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nWrites \
to a file descriptor.\nFor details see ", count := [ 3, 2, 61, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man 2 write", count := [ 3, 2, 61, 3 ]
,
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 61, 3 ],
mathmode := \
"Text", name := "C", next := 35992, root := ~, start := 35974, stop := 35991
) ],
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "Q",
next := 35996,
root := ~,
start := 35971,
stop := 35995 ),
rec(
content := ". Note t\
hat the additional argument\n", count := [ 3, 2, 61, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ffset", count := [ 3, 2, 61, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "A",
next := 36045,
root := ~,
start := 36032,
stop := 36044 ),
rec(
content := " specifi\
es the position of the data to send within the\nstring ", count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 3, 2, 61, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "A",
next := 36116,
root := ~,
start := 36107,
stop := 36115 ),
rec(
content := ". It is \
zero based, meaning that zero indicates the\nstart of the string, which is pos\
ition 1 in ", count := [ 3, 2, 61, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 3, 2, 61, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec( content := ". \n",
count :=
[ 3, 2, 61, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 2, 61, 3 ],
mathmode := "Text",
name := "Description",
next := 36234, root := ~,
start := 35912,
stop := 36233 ) ],
count := [ 3, 2, 61, 1 ],
mathmode := "Text",
name := "ManSection",
next := 36249, root := ~,
start := 35758, stop := 36248 ),
rec( content := "\n \n",
count := [ 3, 2, 61, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 2, 0, 1 ], mathmode := "Text",
name := "Section", next := 36262,
root := ~, start := 12792, stop := 36261 ),
rec( content := "\n\n",
count := [ 3, 2, 61, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 3, 3, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Further C level f\
unctions", count := [ 3, 3, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 36318,
root := ~, start := 36274,
stop := 36317 ),
rec(
content := "\n\nThe following functi\
ons do not correspond to functions in the C library,\nbut are there to provide\
convenience to use other functions:\n\n", count := [ 3, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "ip, port",
Comm := "Makes a struct \
sockaddr_in from IP address and port.", Name := "IO_make_sockaddr_in" ),
content := 0,
count := [ 3, 3, 1, 2 ],
mathmode := "Text",
name := "Func",
next := 36583, root := ~,
start := 36468,
stop := 36582 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 3, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 3, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 1, 3 ],
mathmode := "Text",
name := "K",
next := 36617,
root := ~,
start := 36606,
stop := 36616 ),
rec( content := " ",
count :=
[ 3, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 36628, root := ~,
start := 36584,
stop := 36627 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Mak\
es a struct ", count := [ 3, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
ockaddr_in", count := [ 3, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 1, 3 ],
mathmode := "Text",
name := "C",
next := 36687,
root := ~,
start := 36662,
stop := 36686 ),
rec(
content := " from IP\
address and port.\nThe IP address must be given as a string of length four, c\
ontaining the\nfour bytes of an IPv4 address in natural order. The port must b\
e a port\nnumber. Returns a string containing the struct, which can be given t\
o\nall functions above having an address argument.\n", count := [ 3, 3, 1, 3 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 36990, root := ~,
start := 36629,
stop := 36989 ) ],
count := [ 3, 3, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 37005, root := ~,
start := 36455, stop := 37004 ),
rec( content := "\n \n",
count := [ 3, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Returns environ\
ment as list of strings.", Name := "IO_environ" ), content := 0,
count := [ 3, 3, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 37106, root := ~,
start := 37021,
stop := 37105 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list o\
f strings ", count := [ 3, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 37145, root := ~,
start := 37107,
stop := 37144 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nFor det\
ails see ", count := [ 3, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "man environ", count := [ 3, 3, 2, 3 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 2, 3 ],
mathmode := \
"Text", name := "C", next := 37197, root := ~, start := 37179, stop := 37196
) ],
count :=
[ 3, 3, 2, 3 ],
mathmode := "Text",
name := "Q",
next := 37201,
root := ~,
start := 37176,
stop := 37200 ),
rec(
content := ". Return\
s the current environment\nas a list of strings of the form ",
count :=
[ 3, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "k\
ey=value", count := [ 3, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 2, 3 ],
mathmode := "Text",
name := "Q",
next := 37284,
root := ~,
start := 37268,
stop := 37283 ),
rec( content := ".\n",
count :=
[ 3, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 37300, root := ~,
start := 37146,
stop := 37299 ) ],
count := [ 3, 3, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 37315, root := ~,
start := 37008, stop := 37314 ),
rec( content := "\n \n",
count := [ 3, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Installs our SI\
GCHLD handler.", Name := "IO_InstallSIGCHLDHandler" ), content := 0,
count := [ 3, 3, 3, 2 ],
mathmode := "Text",
name := "Func",
next := 37420, root := ~,
start := 37331,
stop := 37419 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "K",
next := 37442,
root := ~,
start := 37431,
stop := 37441 ),
rec( content := " or ",
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "K",
next := 37458,
root := ~,
start := 37446,
stop := 37457 ),
rec( content := " ",
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 37469, root := ~,
start := 37421,
stop := 37468 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nInstall\
s our SIGCHLD handler. This functions works as an idempotent. That\nis, callin\
g it twice does exactly the same as calling it once. It returns\n",
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "K",
next := 37643,
root := ~,
start := 37632,
stop := 37642 ),
rec(
content := " when it\
is called for the first time since then a pointer to\nthe old signal handler \
is stored in a global variable.\nSee ", count := [ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_fork\
" ), content := 0, count := [ 3, 3, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 37785,
root := ~,
start := 37764,
stop := 37784 ),
rec( content := ".\n",
count :=
[ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 37801, root := ~,
start := 37470,
stop := 37800 ) ],
count := [ 3, 3, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 37816, root := ~,
start := 37318, stop := 37815 ),
rec( content := "\n \n",
count := [ 3, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "Restores the or\
iginal SIGCHLD handler.", Name := "IO_RestoreSIGCHLDHandler" ), content := 0,
count := [ 3, 3, 4, 2 ],
mathmode := "Text",
name := "Func",
next := 37930, root := ~,
start := 37832,
stop := 37929 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nRestore\
s the original SIGCHLD handler. This function works as an\nidempotent.\nThat i\
s, calling it twice does exactly the same as calling it once. It\nreturns ",
count :=
[ 3, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 3, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 3, 3, 4, 3 ],
mathmode := "Text",
name := "K",
next := 38112,
root := ~,
start := 38101,
stop := 38111 ),
rec(
content := " when it\
is called for the first time after calling\n", count := [ 3, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 3, 3, 4, 3 ],
mathmode := "Text",
name := "Ref",
next := 38202,
root := ~,
start := 38164,
stop := 38201 ),
rec(
content := ". See ",
count :=
[ 3, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_fork\
" ), content := 0, count := [ 3, 3, 4, 3 ], mathmode := "Text",
name := "Ref",
next := 38229,
root := ~,
start := 38208,
stop := 38228 ),
rec( content := ".\n",
count :=
[ 3, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 3, 3, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 38245, root := ~,
start := 37931,
stop := 38244 ) ],
count := [ 3, 3, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 38260, root := ~,
start := 37819, stop := 38259 ),
rec( content := "\n\n",
count := [ 3, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 3, 3, 0, 1 ], mathmode := "Text",
name := "Section", next := 38272,
root := ~, start := 36264, stop := 38271 ),
rec( content := "\n\n", count := [ 3, 3, 4, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 3, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 38284, root := ~, start := 7242,
stop := 38283 ),
rec( content := "\n\n", count := [ 3, 3, 4, 3 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( Label := "bufio" ),
content :=
[
rec( content := "\n", count := [ 4, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "High level functions for \
buffered I/O", count := [ 4, 0, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 38366,
root := ~, start := 38310, stop := 38365 ),
rec(
content := "\n\nThe functions in the previou\
s sections are intended to be a possibility\nfor direct access to the low leve\
l I/O functions in the C library. Thus,\nthe calling conventions are strictly \
as in the original.", count := [ 4, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 4, 0, 0, 4 ], mathmode := "Text",
name := "P", next := 38573, root := ~,
start := 38569, stop := 38572 ),
rec(
content := "\n\nThe functionality described \
in this section is implemented completely\nin the ", count := [ 4, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 4, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 0, 0, 4 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " language and is intended to pro\
vide a good interface\nfor programming in ", count := [ 4, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 4, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 0, 0, 4 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := ". The fundamental object for I/O\
on the C library\nlevel is the file descriptor, which is just a non-negative \
integer\nrepresenting an open file of the process. The basic idea is to wrap u\
p\nfile descriptors in ", count := [ 4, 0, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 4, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 0, 0, 4 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " objects that do the buffering."
, count := [ 4, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 4, 0, 0, 5 ], mathmode := "Text",
name := "P", next := 38983, root := ~,
start := 38979, stop := 38982 ),
rec(
content := "\n\nNote that considerable care \
has been taken to ensure that one can\ndo I/O multiplexing with buffered I/O. \
That is, one always has the \npossibility to make sure before a read or write \
operation, that this\nread or write operation will not block. This is crucial \
when one\nwants to serve more than one I/O channel from the same (single-threa\
ded)\n", count := [ 4, 0, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 4, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 0, 0, 5 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " process. This design principle \
sometimes made it necessary\nto have more than one function for a certain oper\
ation. Those\nfunctions usually differ in a subtle way with respect to their\n\
blocking behaviour.", count := [ 4, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 4, 0, 0, 6 ], mathmode := "Text",
name := "P", next := 39539, root := ~,
start := 39535, stop := 39538 ),
rec(
content := "\n\nOne remark applies again to \
nearly all functions presented here: If an\nerror is indicated by the returned\
value ", count := [ 4, 0, 0, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fail",
count := [ 4, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 0, 0, 6 ], mathmode := "Text",
name := "K", next := 39664, root := ~,
start := 39653, stop := 39663 ),
rec(
content := " one can use the\nlibrary functi\
on ", count := [ 4, 0, 0, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( BookName := "ref",
Func := "LastSystemError" ),
content := 0, count := [ 4, 0, 0, 6 ],
mathmode := "Text", name := "Ref",
next := 39742, root := ~, start := 39698,
stop := 39741 ),
rec(
content := " to find\nout more about the cau\
se of the error. This fact is not mentioned with\nevery single function.\n\n",
count := [ 4, 0, 0, 6 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 4, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Types and the cre\
ation of ", count := [ 4, 1, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count :=
[ 4, 1, 0, 2 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 1, 0, 2 ],
mathmode := "Text",
name := "C", next := 39906,
root := ~, start := 39895,
stop := 39905 ),
rec( content := " objects",
count := [ 4, 1, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 39924,
root := ~, start := 39860,
stop := 39923 ),
rec(
content := "\n\nThe wrapped file obj\
ects are in the following category:\n\n", count := [ 4, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "o",
Name := "IsFile",
Type := "Category" ),
content := 0,
count := [ 4, 1, 1, 2 ],
mathmode := "Text",
name := "Filt",
next := 40041, root := ~,
start := 39996,
stop := 40040 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 1, 3 ],
mathmode := "Text",
name := "K",
next := 40063,
root := ~,
start := 40052,
stop := 40062 ),
rec( content := " or ",
count :=
[ 4, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 1, 3 ],
mathmode := "Text",
name := "K",
next := 40079,
root := ~,
start := 40067,
stop := 40078 ),
rec( content := " ",
count :=
[ 4, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 1, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 40090, root := ~,
start := 40042,
stop := 40089 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " The cate\
gory of ", count := [ 4, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 1, 3 ],
mathmode := "Text",
name := "C",
next := 40132,
root := ~,
start := 40121,
stop := 40131 ),
rec(
content := " objects\
. ", count := [ 4, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 4, 1, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 40156, root := ~,
start := 40091,
stop := 40155 ) ],
count := [ 4, 1, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 40170, root := ~,
start := 39983, stop := 40169 ),
rec(
content := "\n\nTo create objects in\
this category, one uses the following function:\n\n",
count := [ 4, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fd, rbufsize, wb\
ufsize", Comm := "creates buffering I/O objects, called File objects",
Name := "IO_WrapFD" ),
content := 0,
count := [ 4, 1, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 40373, root := ~,
start := 40255,
stop := 40372 ),
rec( attributes := rec( ),
content :=
[
rec( content := " a ",
count :=
[ 4, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 3 ],
mathmode := "Text",
name := "C",
next := 40397,
root := ~,
start := 40386,
stop := 40396 ),
rec(
content := " object \
", count := [ 4, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 4, 1, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 40415, root := ~,
start := 40374,
stop := 40414 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 4, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
d", count := [ 4, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 40452,
root := ~,
start := 40443,
stop := 40451 ),
rec(
content := " must be\
a file descriptor (i.e. an integer)\nor -1 (see below). ",
count :=
[ 4, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "P",
next := 40520,
root := ~,
start := 40516,
stop := 40519 ),
rec( content := "\n\n",
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
bufsize", count := [ 4, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "A",
next := 40537,
root := ~,
start := 40522,
stop := 40536 ),
rec(
content := " can eit\
her be ", count := [ 4, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 40564,
root := ~,
start := 40552,
stop := 40563 ),
rec(
content := " for\nun\
buffered reading or an integer buffer size or a string. If it is\nan integer, \
a read buffer of that size is used. If it is a string,\nthen ",
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
d", count := [ 4, 1, 2, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "A",
next := 40717,
root := ~,
start := 40708,
stop := 40716 ),
rec(
content := " must be\
-1 and a ", count := [ 4, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 4 ],
mathmode := "Text",
name := "C",
next := 40746,
root := ~,
start := 40735,
stop := 40745 ),
rec(
content := " object \
that reads from that string\nis created.", count := [ 4, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "P",
next := 40797,
root := ~,
start := 40793,
stop := 40796 ),
rec( content := "\n\n",
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
bufsize", count := [ 4, 1, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "A",
next := 40814,
root := ~,
start := 40799,
stop := 40813 ),
rec(
content := " can eit\
her be ", count := [ 4, 1, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 1, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "K",
next := 40841,
root := ~,
start := 40829,
stop := 40840 ),
rec(
content := " for\nun\
buffered writing or an integer buffer size or a string. If it is\nan integer, \
a write buffer of that size is used. If it is a string,\nthen ",
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
d", count := [ 4, 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "A",
next := 40995,
root := ~,
start := 40986,
stop := 40994 ),
rec(
content := " must be\
-1 and a ", count := [ 4, 1, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 5 ],
mathmode := "Text",
name := "C",
next := 41024,
root := ~,
start := 41013,
stop := 41023 ),
rec(
content := " object \
that appends to that string\nis created.", count := [ 4, 1, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 1, 2, 6 ],
mathmode := "Text",
name := "P",
next := 41075,
root := ~,
start := 41071,
stop := 41074 ),
rec(
content := "\n\nThe \
result of this function is a new ", count := [ 4, 1, 2, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 2, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 2, 6 ],
mathmode := "Text",
name := "C",
next := 41125,
root := ~,
start := 41114,
stop := 41124 ),
rec(
content := " object.\
\n", count := [ 4, 1, 2, 6 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 4, 1, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 41148, root := ~,
start := 40416,
stop := 41147 ) ],
count := [ 4, 1, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 41162, root := ~,
start := 40242, stop := 41161 ),
rec(
content := "\n\nA convenient way to \
do this for reading or writing of files on disk\nis the following function:\n"
, count := [ 4, 1, 2, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "filename [,mode]\
", Comm := "open a file for reading or writing and create a File object",
Label := "mode",
Name := "IO_File" ),
content := 0,
count := [ 4, 1, 3, 2 ],
mathmode := "Text",
name := "Func",
next := 41410, root := ~,
start := 41272,
stop := 41409 ),
rec(
attributes :=
rec(
Arg := "filename [,bufsi\
ze]", Comm := "open a file for reading or writing and create a File object",
Label := "bufsize",
Name := "IO_File" ),
content := 0,
count := [ 4, 1, 3, 4 ],
mathmode := "Text",
name := "Func",
next := 41555, root := ~,
start := 41411,
stop := 41554 ),
rec(
attributes :=
rec(
Arg := "filename,mode,bu\
fsize", Comm := "open a file for reading or writing and create a File object",
Label := "mode and bufsi\
ze", Name := "IO_File" ), content := 0, count := [ 4, 1, 3, 6 ],
mathmode := "Text",
name := "Func",
next := 41711, root := ~,
start := 41556,
stop := 41710 ),
rec( attributes := rec( ),
content :=
[
rec( content := " a ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "C",
next := 41735,
root := ~,
start := 41724,
stop := 41734 ),
rec(
content := " object \
or ", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "K",
next := 41757,
root := ~,
start := 41746,
stop := 41756 ),
rec( content := " ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 1, 3, 7 ],
mathmode := "Text",
name := "Returns",
next := 41768, root := ~,
start := 41712,
stop := 41767 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ilename", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "A",
next := 41811,
root := ~,
start := 41796,
stop := 41810 ),
rec(
content := " must be\
a string specifying the path name\nof the file to work on. ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ode", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "A",
next := 41889,
root := ~,
start := 41878,
stop := 41888 ),
rec(
content := " must al\
so be a string with possible\nvalues ", count := [ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "Q",
next := 41941,
root := ~,
start := 41933,
stop := 41940 ),
rec( content := ", ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "Q",
next := 41951,
root := ~,
start := 41943,
stop := 41950 ),
rec( content := ", or ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "Q",
next := 41964,
root := ~,
start := 41956,
stop := 41963 ),
rec(
content := ", meanin\
g read access, write\naccess (with creating and truncating), and append access\
respectively.\nIf ", count := [ 4, 1, 3, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ode", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "A",
next := 42078,
root := ~,
start := 42067,
stop := 42077 ),
rec(
content := " is omit\
ted, it defaults to ", count := [ 4, 1, 3, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "Q",
next := 42114,
root := ~,
start := 42106,
stop := 42113 ),
rec( content := ". ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ufsize", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "A",
next := 42130,
root := ~,
start := 42116,
stop := 42129 ),
rec(
content := ", if giv\
en,\nmust be a positive integer or ", count := [ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "C",
next := 42184,
root := ~,
start := 42172,
stop := 42183 ),
rec(
content := ", otherw\
ise it defaults to \n", count := [ 4, 1, 3, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O.DefaultBufSize", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDAT\
A", root := ~ ) ], count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "C",
next := 42236,
root := ~,
start := 42212,
stop := 42235 ),
rec(
content := ". \nInte\
rnally, the\n", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_open\
" ), content := 0, count := [ 4, 1, 3, 7 ], mathmode := "Text",
name := "Ref",
next := 42276,
root := ~,
start := 42255,
stop := 42275 ),
rec(
content := " functio\
n is used and the result file descriptor is \nwrapped using ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wrap\
FD" ), content := 0, count := [ 4, 1, 3, 7 ], mathmode := "Text",
name := "Ref",
next := 42366,
root := ~,
start := 42343,
stop := 42365 ),
rec(
content := " with ",
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ufsize", count := [ 4, 1, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 7 ],
mathmode := "Text",
name := "A",
next := 42386,
root := ~,
start := 42372,
stop := 42385 ),
rec(
content := "\nas the\
buffer size. ", count := [ 4, 1, 3, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 1, 3, 8 ],
mathmode := "Text",
name := "P",
next := 42411,
root := ~,
start := 42407,
stop := 42410 ),
rec(
content := "\n\nThe \
result is either ", count := [ 4, 1, 3, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 1, 3, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 8 ],
mathmode := "Text",
name := "K",
next := 42445,
root := ~,
start := 42434,
stop := 42444 ),
rec(
content := " in case\
of an error or a ", count := [ 4, 1, 3, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 1, 3, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 1, 3, 8 ],
mathmode := "Text",
name := "C",
next := 42482,
root := ~,
start := 42471,
stop := 42481 ),
rec(
content := " object\\
nin case of success.\n", count := [ 4, 1, 3, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 1, 3, 7 ],
mathmode := "Text",
name := "Description",
next := 42524, root := ~,
start := 41769,
stop := 42523 ) ],
count := [ 4, 1, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 42538, root := ~,
start := 41259, stop := 42537 ),
rec(
content := "\n\nNote that there is a\
similar function ", count := [ 4, 1, 3, 8 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Func := "IO_FilteredFile" ),
content := 0,
count := [ 4, 1, 3, 8 ],
mathmode := "Text", name := "Ref",
next := 42607, root := ~,
start := 42578, stop := 42606 ),
rec(
content := " which \nalso creates a \
", count := [ 4, 1, 3, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 4, 1, 3, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 1, 3, 8 ],
mathmode := "Text", name := "C",
next := 42641, root := ~,
start := 42630, stop := 42640 ),
rec(
content := " object but with additio\
nal functionality with\nrespect to a pipeline for filtering. It is described i\
n its section\nin Section ", count := [ 4, 1, 3, 8 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( Sect := "ipc" ),
content := 0,
count := [ 4, 1, 3, 8 ],
mathmode := "Text", name := "Ref",
next := 42784, root := ~,
start := 42767, stop := 42783 ),
rec(
content := ". There is some more low\
-level functionality\nto acquire open file descriptors. These can be wrapped i\
nto ", count := [ 4, 1, 3, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 4, 1, 3, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 1, 3, 8 ],
mathmode := "Text", name := "C",
next := 42900, root := ~,
start := 42889, stop := 42899 ),
rec( content := "\nobjects using ",
count := [ 4, 1, 3, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Func := "IO_WrapFD" ),
content := 0,
count := [ 4, 1, 3, 8 ],
mathmode := "Text", name := "Ref",
next := 42938, root := ~,
start := 42915, stop := 42937 ),
rec( content := ".\n\n",
count := [ 4, 1, 3, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 42951,
root := ~, start := 39846, stop := 42950 ),
rec( content := "\n", count := [ 4, 1, 3, 8 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 4, 2, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Reading and writi\
ng", count := [ 4, 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~
) ], count := [ 4, 2, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 43004,
root := ~, start := 42966,
stop := 43003 ),
rec( content := "\n\nOnce a ",
count := [ 4, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 4, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 2, 0, 3 ],
mathmode := "Text", name := "C",
next := 43024, root := ~,
start := 43013, stop := 43023 ),
rec(
content := " object is created, one \
can use the following\nfunctions on it:\n\n", count := [ 4, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Comm := "buffered read u\
ntil end of file", Name := "IO_ReadUntilEOF" ), content := 0,
count := [ 4, 2, 1, 2 ],
mathmode := "Text",
name := "Func",
next := 43184, root := ~,
start := 43101,
stop := 43183 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 1, 3 ],
mathmode := "Text",
name := "K",
next := 43218,
root := ~,
start := 43207,
stop := 43217 ),
rec( content := " ",
count :=
[ 4, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 43229, root := ~,
start := 43185,
stop := 43228 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction reads all data from the file ", count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 43295,
root := ~,
start := 43287,
stop := 43294 ),
rec(
content := " until t\
he end of file.\nThe data is returned as a ", count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 1, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " string.\
If the file is already at end of\nfile, an empty string is returned. If an er\
ror occurs, then ", count := [ 4, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 1, 3 ],
mathmode := "Text",
name := "K",
next := 43463,
root := ~,
start := 43452,
stop := 43462 ),
rec(
content := " is\nret\
urned. Note that you still have to call ", count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 2, 1, 3 ], mathmode := "Text",
name := "Ref",
next := 43532,
root := ~,
start := 43510,
stop := 43531 ),
rec(
content := " on the\\
n", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 43551,
root := ~,
start := 43540,
stop := 43550 ),
rec(
content := " object \
to properly close the file later.\n", count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 43607, root := ~,
start := 43230,
stop := 43606 ) ],
count := [ 4, 2, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 43621, root := ~,
start := 43088, stop := 43620 ),
rec( content := "\n\n",
count := [ 4, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f, len",
Comm := "buffered read f\
rom File object, blocking", Name := "IO_ReadBlock" ), content := 0,
count := [ 4, 2, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 43730, root := ~,
start := 43636,
stop := 43729 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "K",
next := 43764,
root := ~,
start := 43753,
stop := 43763 ),
rec( content := " ",
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 43775, root := ~,
start := 43731,
stop := 43774 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets two arguments, the first argument ", count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 43851,
root := ~,
start := 43843,
stop := 43850 ),
rec(
content := " must be\
\na ", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 43873,
root := ~,
start := 43862,
stop := 43872 ),
rec(
content := " object \
and the second argument ", count := [ 4, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 43915,
root := ~,
start := 43905,
stop := 43914 ),
rec(
content := " must be\
\na positive integer. The function tries to read ", count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 43981,
root := ~,
start := 43971,
stop := 43980 ),
rec(
content := " bytes\n\
and returns a string of that length. If and only if the end of file is \nreach\
ed earlier, fewer bytes are returned. If an error occurs, ",
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "K",
next := 44134,
root := ~,
start := 44123,
stop := 44133 ),
rec(
content := "\nis ret\
urned. Note that this function blocks until either ", count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 44202,
root := ~,
start := 44192,
stop := 44201 ),
rec(
content := " bytes\n\
are read, or the end of file is reached, or an error occurs. For the case\nof \
pipes or internet connections it is possible that currently no more\ndata is a\
vailable, however, by definition the end of file is only reached \nafter the c\
onnection has been closed by the other side!\n", count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 44499, root := ~,
start := 43776,
stop := 44498 ) ],
count := [ 4, 2, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 44513, root := ~,
start := 43623, stop := 44512 ),
rec( content := "\n\n",
count := [ 4, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Comm := "buffered read f\
rom File object, one line", Name := "IO_ReadLine" ), content := 0,
count := [ 4, 2, 3, 2 ],
mathmode := "Text",
name := "Func",
next := 44616, root := ~,
start := 44528,
stop := 44615 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "K",
next := 44650,
root := ~,
start := 44639,
stop := 44649 ),
rec( content := " ",
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 44661, root := ~,
start := 44617,
stop := 44660 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets exactly one argument, which must be a ", count := [ 4, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "C",
next := 44744,
root := ~,
start := 44733,
stop := 44743 ),
rec(
content := " object\\
n", count := [ 4, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "A",
next := 44760,
root := ~,
start := 44752,
stop := 44759 ),
rec(
content := ". It rea\
ds one line of data, where the definition of line is\noperating system depende\
nt. The line end character(s) are included in\nthe result. The function return\
s a string with the line in case of\nsuccess and ", count := [ 4, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "K",
next := 44981,
root := ~,
start := 44970,
stop := 44980 ),
rec(
content := " in case\
of an error. In the\nlatter case, one can query the error with ",
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "LastSystemError" ), content := 0, count := [ 4, 2, 3, 3 ],
mathmode := "Text",
name := "Ref",
next := 45096,
root := ~,
start := 45052,
stop := 45095 ),
rec( content := ".",
count :=
[ 4, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 3, 4 ],
mathmode := "Text",
name := "P",
next := 45101,
root := ~,
start := 45097,
stop := 45100 ),
rec(
content := "\n\nNote\
that the reading is done via the buffer of ", count := [ 4, 2, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 3, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 3, 4 ],
mathmode := "Text",
name := "A",
next := 45159,
root := ~,
start := 45151,
stop := 45158 ),
rec(
content := ", such t\
hat\nthis function will be quite fast also for large amounts of data.",
count :=
[ 4, 2, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 3, 5 ],
mathmode := "Text",
name := "P",
next := 45239,
root := ~,
start := 45235,
stop := 45238 ),
rec(
content := "\n\nIf t\
he end of file is hit without a line end, the rest of the file\nis returned. I\
f the file is already at end of file before the call,\nthen a string of length\
0 is returned. Note that this\nis not an error but the standard end of file c\
onvention!\n", count := [ 4, 2, 3, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 45501, root := ~,
start := 44662,
stop := 45500 ) ],
count := [ 4, 2, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 45515, root := ~,
start := 44515, stop := 45514 ),
rec( content := "\n\n",
count := [ 4, 2, 3, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f [,max]",
Comm := "buffered read f\
rom File object, many lines", Name := "IO_ReadLines" ), content := 0,
count := [ 4, 2, 4, 2 ],
mathmode := "Text",
name := "Func",
next := 45628, root := ~,
start := 45530,
stop := 45627 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list o\
f strings or ", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 45671,
root := ~,
start := 45660,
stop := 45670 ),
rec( content := " ",
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 45682, root := ~,
start := 45629,
stop := 45681 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets one or two arguments, the first of which must always\nbe a ",
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "C",
next := 45785,
root := ~,
start := 45774,
stop := 45784 ),
rec(
content := " object \
", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 45801,
root := ~,
start := 45793,
stop := 45800 ),
rec(
content := ". It rea\
ds lines of data (where the\ndefinition of line is operating system dependent)\
either until\nend of file (without a second argument) or up to ",
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ax", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 45959,
root := ~,
start := 45949,
stop := 45958 ),
rec(
content := " lines\n\
(with a second argument ", count := [ 4, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ax", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 46000,
root := ~,
start := 45990,
stop := 45999 ),
rec(
content := ". A list\
of strings with the result is\nreturned, if everything went well and ",
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 46088,
root := ~,
start := 46077,
stop := 46087 ),
rec(
content := " oterwis\
e. In the\nlatter case, one can query the error with ", count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "LastSystemError" ), content := 0, count := [ 4, 2, 4, 3 ],
mathmode := "Text",
name := "Ref",
next := 46192,
root := ~,
start := 46148,
stop := 46191 ),
rec( content := ".",
count :=
[ 4, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 4, 4 ],
mathmode := "Text",
name := "P",
next := 46197,
root := ~,
start := 46193,
stop := 46196 ),
rec(
content := "\n\nNote\
that the reading is done via the buffer of ", count := [ 4, 2, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 4, 4 ],
mathmode := "Text",
name := "A",
next := 46255,
root := ~,
start := 46247,
stop := 46254 ),
rec(
content := ", such t\
hat\nthis function will be quite fast also for large amounts of data.",
count :=
[ 4, 2, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 4, 5 ],
mathmode := "Text",
name := "P",
next := 46335,
root := ~,
start := 46331,
stop := 46334 ),
rec(
content := "\n\nIf t\
he file is already at the end of file, the function returns\na list of length \
0. Note that this is not an error but the standard end of\nfile convention!\n"
,
count :=
[ 4, 2, 4, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 46507, root := ~,
start := 45683,
stop := 46506 ) ],
count := [ 4, 2, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 46521, root := ~,
start := 45517, stop := 46520 ),
rec( content := "\n\n",
count := [ 4, 2, 4, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Name := "IO_HasData" ),
content := 0,
count := [ 4, 2, 5, 2 ],
mathmode := "Text",
name := "Func",
next := 46569, root := ~,
start := 46536,
stop := 46568 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 46591,
root := ~,
start := 46580,
stop := 46590 ),
rec( content := " or ",
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 46607,
root := ~,
start := 46595,
stop := 46606 ),
rec( content := " ",
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 46618, root := ~,
start := 46570,
stop := 46617 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction takes one argument ", count := [ 4, 2, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "A",
next := 46674,
root := ~,
start := 46666,
stop := 46673 ),
rec(
content := " which m\
ust be a ", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "C",
next := 46702,
root := ~,
start := 46691,
stop := 46701 ),
rec(
content := "\nobject\
. It returns ", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 46733,
root := ~,
start := 46722,
stop := 46732 ),
rec( content := " or ",
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 46749,
root := ~,
start := 46737,
stop := 46748 ),
rec(
content := " accordi\
ng to whether\nthere is data to read available in the file ",
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "A",
next := 46823,
root := ~,
start := 46815,
stop := 46822 ),
rec(
content := ". A retu\
rn value\nof ", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 5, 3 ],
mathmode := "Text",
name := "K",
next := 46854,
root := ~,
start := 46843,
stop := 46853 ),
rec(
content := " guarant\
ees that the next call to ", count := [ 4, 2, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Read\
" ), content := 0, count := [ 4, 2, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 46909,
root := ~,
start := 46888,
stop := 46908 ),
rec(
content := "\non tha\
t file will succeed without blocking and return at least one\nbyte or an empty\
string to indicate the end of file.\n", count := [ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 47044, root := ~,
start := 46619,
stop := 47043 ) ],
count := [ 4, 2, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 47058, root := ~,
start := 46523, stop := 47057 ),
rec( content := "\n\n",
count := [ 4, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f, len",
Comm := "buffered read f\
rom File object", Name := "IO_Read" ), content := 0, count := [ 4, 2, 6, 2 ],
mathmode := "Text",
name := "Func",
next := 47152, root := ~,
start := 47073,
stop := 47151 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "K",
next := 47186,
root := ~,
start := 47175,
stop := 47185 ),
rec( content := " ",
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 47197, root := ~,
start := 47153,
stop := 47196 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe fun\
ction gets two arguments, the first of which must \nbe a ",
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "C",
next := 47286,
root := ~,
start := 47275,
stop := 47285 ),
rec(
content := " object \
", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "A",
next := 47302,
root := ~,
start := 47294,
stop := 47301 ),
rec(
content := ". The se\
cond argument must be a positive\ninteger. The function reads data\nup to ",
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "A",
next := 47392,
root := ~,
start := 47382,
stop := 47391 ),
rec(
content := " bytes.\\
nA string with the result is returned, if everything\nwent well and ",
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "K",
next := 47477,
root := ~,
start := 47466,
stop := 47476 ),
rec(
content := " otherwi\
se. In the latter case, one can query\nthe error with ", count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "LastSystemError" ), content := 0, count := [ 4, 2, 6, 3 ],
mathmode := "Text",
name := "Ref",
next := 47582,
root := ~,
start := 47538,
stop := 47581 ),
rec( content := ".",
count :=
[ 4, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 6, 4 ],
mathmode := "Text",
name := "P",
next := 47587,
root := ~,
start := 47583,
stop := 47586 ),
rec(
content := "\n\nNote\
that the reading is done via the buffer of ", count := [ 4, 2, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 6, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 6, 4 ],
mathmode := "Text",
name := "A",
next := 47645,
root := ~,
start := 47637,
stop := 47644 ),
rec(
content := ", such t\
hat\nthis function will be quite fast also for large amounts of data.",
count :=
[ 4, 2, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 6, 5 ],
mathmode := "Text",
name := "P",
next := 47725,
root := ~,
start := 47721,
stop := 47724 ),
rec(
content := "\n\nIf t\
he file is already at the end of the file, the function returns\na string of l\
ength 0. Note that this is not an error!", count := [ 4, 2, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 6, 6 ],
mathmode := "Text",
name := "P",
next := 47852,
root := ~,
start := 47848,
stop := 47851 ),
rec(
content := "\n\nIf a\
previous call to ", count := [ 4, 2, 6, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_HasD\
ata" ), content := 0, count := [ 4, 2, 6, 6 ], mathmode := "Text",
name := "Ref",
next := 47900,
root := ~,
start := 47876,
stop := 47899 ),
rec(
content := " or to "
,
count :=
[ 4, 2, 6, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Sele\
ct" ), content := 0, count := [ 4, 2, 6, 6 ], mathmode := "Text",
name := "Ref",
next := 47930,
root := ~,
start := 47907,
stop := 47929 ),
rec(
content := "\nindica\
ted that there is data available to read, then it is guaranteed that\nthe func\
tion ", count := [ 4, 2, 6, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Read\
" ), content := 0, count := [ 4, 2, 6, 6 ], mathmode := "Text",
name := "Ref",
next := 48040,
root := ~,
start := 48019,
stop := 48039 ),
rec(
content := " does no\
t block and returns at least\none byte if the file is not yet at end of file a\
nd an empty string\notherwise.\n", count := [ 4, 2, 6, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 48169, root := ~,
start := 47198,
stop := 48168 ) ],
count := [ 4, 2, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 48183, root := ~,
start := 47060, stop := 48182 ),
rec( content := "\n\n",
count := [ 4, 2, 6, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "f [,things ... ]\
", Comm := "buffered write to File object", Name := "IO_Write" ),
content := 0,
count := [ 4, 2, 7, 2 ],
mathmode := "Text",
name := "Func",
next := 48287, root := ~,
start := 48198,
stop := 48286 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "K",
next := 48323,
root := ~,
start := 48312,
stop := 48322 ),
rec( content := " ",
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 48334, root := ~,
start := 48288,
stop := 48333 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction can get an arbitrary number of arguments, the first of which\nmust be a\
", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "C",
next := 48445,
root := ~,
start := 48434,
stop := 48444 ),
rec(
content := " object \
", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "A",
next := 48461,
root := ~,
start := 48453,
stop := 48460 ),
rec(
content := ". All th\
e other arguments are just\nwritten to ", count := [ 4, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "A",
next := 48515,
root := ~,
start := 48507,
stop := 48514 ),
rec(
content := " if they\
are strings. Otherwise, the ", count := [ 4, 2, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "S\
tring", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "K",
next := 48565,
root := ~,
start := 48552,
stop := 48564 ),
rec(
content := "\nfuncti\
on is called on them and the result is written out to ", count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "A",
next := 48634,
root := ~,
start := 48626,
stop := 48633 ),
rec( content := ".",
count :=
[ 4, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 7, 4 ],
mathmode := "Text",
name := "P",
next := 48639,
root := ~,
start := 48635,
stop := 48638 ),
rec(
content := "\n\nNote\
that the writing is done buffered. That is, the data is first written\nto the\
buffer and only really written out after the buffer is full or\nafter the use\
r explicitly calls ", count := [ 4, 2, 7, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 7, 4 ], mathmode := "Text",
name := "Ref",
next := 48840,
root := ~,
start := 48818,
stop := 48839 ),
rec( content := " on ",
count :=
[ 4, 2, 7, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 7, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 2, 7, 4 ],
mathmode := "Text",
name := "A",
next := 48852,
root := ~,
start := 48844,
stop := 48851 ),
rec( content := ".",
count :=
[ 4, 2, 7, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 7, 5 ],
mathmode := "Text",
name := "P",
next := 48857,
root := ~,
start := 48853,
stop := 48856 ),
rec(
content := "\n\nThe \
result is either the number of bytes written in case of success or\n",
count :=
[ 4, 2, 7, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 7, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 7, 5 ],
mathmode := "Text",
name := "K",
next := 48941,
root := ~,
start := 48930,
stop := 48940 ),
rec(
content := " in case\
of an error. In the latter case the error can be\nqueried with ",
count :=
[ 4, 2, 7, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "LastSystemError" ), content := 0, count := [ 4, 2, 7, 5 ],
mathmode := "Text",
name := "Ref",
next := 49056,
root := ~,
start := 49012,
stop := 49055 ),
rec( content := ".",
count :=
[ 4, 2, 7, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 7, 6 ],
mathmode := "Text",
name := "P",
next := 49061,
root := ~,
start := 49057,
stop := 49060 ),
rec(
content := "\n\nNote\
that this function blocks until all data is at least written into\nthe buffer\
and might block until data can be sent again if the buffer is\nfull.\n",
count :=
[ 4, 2, 7, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 49227, root := ~,
start := 48335,
stop := 49226 ) ],
count := [ 4, 2, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 49241, root := ~,
start := 48185, stop := 49240 ),
rec( content := "\n\n",
count := [ 4, 2, 7, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f, line",
Comm := "buffered write \
to File object, one line", Name := "IO_WriteLine" ), content := 0,
count := [ 4, 2, 8, 2 ],
mathmode := "Text",
name := "Func",
next := 49350, root := ~,
start := 49256,
stop := 49349 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 4, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 8, 3 ],
mathmode := "Text",
name := "K",
next := 49386,
root := ~,
start := 49375,
stop := 49385 ),
rec( content := " ",
count :=
[ 4, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 8, 3 ],
mathmode := "Text",
name := "Returns",
next := 49397, root := ~,
start := 49351,
stop := 49396 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nBehaves\
like ", count := [ 4, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
e" ), content := 0, count := [ 4, 2, 8, 3 ], mathmode := "Text",
name := "Ref",
next := 49447,
root := ~,
start := 49425,
stop := 49446 ),
rec(
content := " but wor\
ks on a single string\n", count := [ 4, 2, 8, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
ine", count := [ 4, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 49488,
root := ~,
start := 49477,
stop := 49487 ),
rec(
content := " and sen\
ds an (operating system dependent) end of line\nstring afterwards. Also ",
count :=
[ 4, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 8, 3 ], mathmode := "Text",
name := "Ref",
next := 49589,
root := ~,
start := 49567,
stop := 49588 ),
rec(
content := " is call\
ed automatically\nafter the operation, such that one can be sure, that the dat\
a is actually\nwritten out after the function has completed.\n",
count :=
[ 4, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 8, 3 ],
mathmode := "Text",
name := "Description",
next := 49748, root := ~,
start := 49398,
stop := 49747 ) ],
count := [ 4, 2, 8, 1 ],
mathmode := "Text",
name := "ManSection",
next := 49762, root := ~,
start := 49243, stop := 49761 ),
rec( content := "\n\n",
count := [ 4, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f, list",
Comm := "buffered write \
to File object, many lines", Name := "IO_WriteLines" ), content := 0,
count := [ 4, 2, 9, 2 ],
mathmode := "Text",
name := "Func",
next := 49874, root := ~,
start := 49777,
stop := 49873 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 4, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 9, 3 ],
mathmode := "Text",
name := "K",
next := 49910,
root := ~,
start := 49899,
stop := 49909 ),
rec( content := " ",
count :=
[ 4, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 9, 3 ],
mathmode := "Text",
name := "Returns",
next := 49921, root := ~,
start := 49875,
stop := 49920 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nBehaves\
like ", count := [ 4, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
e" ), content := 0, count := [ 4, 2, 9, 3 ], mathmode := "Text",
name := "Ref",
next := 49971,
root := ~,
start := 49949,
stop := 49970 ),
rec(
content := " but wor\
ks on a list of strings\n", count := [ 4, 2, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
ist", count := [ 4, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 9, 3 ],
mathmode := "Text",
name := "A",
next := 50014,
root := ~,
start := 50003,
stop := 50013 ),
rec(
content := " and sen\
ds an (operating system dependent) end of line\nstring after each string in th\
e list. Also ", count := [ 4, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 9, 3 ], mathmode := "Text",
name := "Ref",
next := 50134,
root := ~,
start := 50112,
stop := 50133 ),
rec(
content := " is\ncal\
led automatically after the operation, such that one can be sure,\nthat the da\
ta is actually written out after the function has completed.\n",
count :=
[ 4, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 9, 3 ],
mathmode := "Text",
name := "Description",
next := 50293, root := ~,
start := 49922,
stop := 50292 ) ],
count := [ 4, 2, 9, 1 ],
mathmode := "Text",
name := "ManSection",
next := 50307, root := ~,
start := 49764, stop := 50306 ),
rec( content := "\n\n",
count := [ 4, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Comm := "writes stuff in\
the buffer to the file", Name := "IO_Flush" ), content := 0,
count := [ 4, 2, 10, 2 ],
mathmode := "Text",
name := "Func",
next := 50405, root := ~,
start := 50322,
stop := 50404 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 50427,
root := ~,
start := 50416,
stop := 50426 ),
rec( content := " or ",
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 50442,
root := ~,
start := 50431,
stop := 50441 ),
rec( content := " ",
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 10, 3 ],
mathmode := "Text",
name := "Returns",
next := 50453, root := ~,
start := 50406,
stop := 50452 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets one argument ", count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 50508,
root := ~,
start := 50500,
stop := 50507 ),
rec(
content := ", which \
must be a ", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "C",
next := 50537,
root := ~,
start := 50526,
stop := 50536 ),
rec(
content := "\nobject\
. It writes out all the data that is in the write buffer. This\nis not necessa\
ry before the call to the function ", count := [ 4, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 50678,
root := ~,
start := 50656,
stop := 50677 ),
rec(
content := ",\nsince\
that function calls ", count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 50728,
root := ~,
start := 50706,
stop := 50727 ),
rec(
content := " automat\
ically.\nHowever, it is necessary to call ", count := [ 4, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 50799,
root := ~,
start := 50777,
stop := 50798 ),
rec(
content := " after c\
alls to\n", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
e" ), content := 0, count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 50837,
root := ~,
start := 50815,
stop := 50836 ),
rec(
content := " to be s\
ure that the data is really sent out. The\nfunction returns ",
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 50915,
root := ~,
start := 50904,
stop := 50914 ),
rec(
content := " if ever\
ything goes well and ", count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 50955,
root := ~,
start := 50944,
stop := 50954 ),
rec(
content := "\nif an \
error occurs.", count := [ 4, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 10, 4 ],
mathmode := "Text",
name := "P",
next := 50979,
root := ~,
start := 50975,
stop := 50978 ),
rec(
content := "\n\nReme\
mber that the functions ", count := [ 4, 2, 10, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
eLine" ), content := 0, count := [ 4, 2, 10, 4 ], mathmode := "Text",
name := "Ref",
next := 51035,
root := ~,
start := 51009,
stop := 51034 ),
rec( content := " and ",
count :=
[ 4, 2, 10, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
eLines" ), content := 0, count := [ 4, 2, 10, 4 ], mathmode := "Text",
name := "Ref",
next := 51067,
root := ~,
start := 51040,
stop := 51066 ),
rec(
content := " implici\
tly call ", count := [ 4, 2, 10, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 10, 4 ], mathmode := "Text",
name := "Ref",
next := 51106,
root := ~,
start := 51084,
stop := 51105 ),
rec(
content := " after\n\
they are done.", count := [ 4, 2, 10, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 2, 10, 5 ],
mathmode := "Text",
name := "P",
next := 51131,
root := ~,
start := 51127,
stop := 51130 ),
rec(
content := "\n\nNote\
that this function might block until all data is actually written\nto the fil\
e descriptor.\n", count := [ 4, 2, 10, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 10, 3 ],
mathmode := "Text",
name := "Description",
next := 51242, root := ~,
start := 50454,
stop := 51241 ) ],
count := [ 4, 2, 10, 1 ],
mathmode := "Text",
name := "ManSection",
next := 51256, root := ~,
start := 50309, stop := 51255 ),
rec( content := "\n\n",
count := [ 4, 2, 10, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f [,things]",
Name := "IO_WriteFlush"
), content := 0,
count := [ 4, 2, 11, 2 ],
mathmode := "Text",
name := "Func",
next := 51317, root := ~,
start := 51271,
stop := 51316 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 4, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 11, 3 ],
mathmode := "Text",
name := "K",
next := 51353,
root := ~,
start := 51342,
stop := 51352 ),
rec( content := " ",
count :=
[ 4, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 11, 3 ],
mathmode := "Text",
name := "Returns",
next := 51364, root := ~,
start := 51318,
stop := 51363 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction behaves like ", count := [ 4, 2, 11, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
e" ), content := 0, count := [ 4, 2, 11, 3 ], mathmode := "Text",
name := "Ref",
next := 51428,
root := ~,
start := 51406,
stop := 51427 ),
rec(
content := " followe\
d by a call to\n", count := [ 4, 2, 11, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
h" ), content := 0, count := [ 4, 2, 11, 3 ], mathmode := "Text",
name := "Ref",
next := 51473,
root := ~,
start := 51451,
stop := 51472 ),
rec(
content := ". It ret\
urns either the number of bytes written\nor ", count := [ 4, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 11, 3 ],
mathmode := "Text",
name := "K",
next := 51535,
root := ~,
start := 51524,
stop := 51534 ),
rec(
content := " if an e\
rror occurs.\n", count := [ 4, 2, 11, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 11, 3 ],
mathmode := "Text",
name := "Description",
next := 51570, root := ~,
start := 51365,
stop := 51569 ) ],
count := [ 4, 2, 11, 1 ],
mathmode := "Text",
name := "ManSection",
next := 51584, root := ~,
start := 51258, stop := 51583 ),
rec( content := "\n\n",
count := [ 4, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Name := "IO_ReadyForWrit\
e" ), content := 0, count := [ 4, 2, 12, 2 ], mathmode := "Text",
name := "Func",
next := 51638, root := ~,
start := 51599,
stop := 51637 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "K",
next := 51660,
root := ~,
start := 51649,
stop := 51659 ),
rec( content := " or ",
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "K",
next := 51676,
root := ~,
start := 51664,
stop := 51675 ),
rec( content := " ",
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 12, 3 ],
mathmode := "Text",
name := "Returns",
next := 51687, root := ~,
start := 51639,
stop := 51686 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction takes one argument ", count := [ 4, 2, 12, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "A",
next := 51743,
root := ~,
start := 51735,
stop := 51742 ),
rec(
content := " which m\
ust be a ", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "C",
next := 51771,
root := ~,
start := 51760,
stop := 51770 ),
rec(
content := "\nobject\
. It returns ", count := [ 4, 2, 12, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "K",
next := 51802,
root := ~,
start := 51791,
stop := 51801 ),
rec( content := " or ",
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "K",
next := 51818,
root := ~,
start := 51806,
stop := 51817 ),
rec(
content := " accordi\
ng to whether\nthe file ", count := [ 4, 2, 12, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "A",
next := 51857,
root := ~,
start := 51849,
stop := 51856 ),
rec(
content := " is read\
y to write. A return value\nof ", count := [ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "K",
next := 51906,
root := ~,
start := 51895,
stop := 51905 ),
rec(
content := " guarant\
ees that the next call to ", count := [ 4, 2, 12, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
eNonBlocking" ), content := 0, count := [ 4, 2, 12, 3 ], mathmode := "Text",
name := "Ref",
next := 51973,
root := ~,
start := 51940,
stop := 51972 ),
rec(
content := "\non tha\
t file will succeed without blocking and accept at least one\nbyte.\n",
count :=
[ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 12, 3 ],
mathmode := "Text",
name := "Description",
next := 52061, root := ~,
start := 51688,
stop := 52060 ) ],
count := [ 4, 2, 12, 1 ],
mathmode := "Text",
name := "ManSection",
next := 52075, root := ~,
start := 51586, stop := 52074 ),
rec( content := "\n\n",
count := [ 4, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "f, st, pos, len"
,
Name := "IO_WriteNonBloc\
king" ), content := 0, count := [ 4, 2, 13, 2 ], mathmode := "Text",
name := "Func",
next := 52146, root := ~,
start := 52090,
stop := 52145 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 52182,
root := ~,
start := 52171,
stop := 52181 ),
rec( content := " ",
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 13, 3 ],
mathmode := "Text",
name := "Returns",
next := 52193, root := ~,
start := 52147,
stop := 52192 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction takes four arguments. The first one ", count := [ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52266,
root := ~,
start := 52258,
stop := 52265 ),
rec(
content := " must be\
\na ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "C",
next := 52288,
root := ~,
start := 52277,
stop := 52287 ),
rec(
content := " object,\
the second ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52317,
root := ~,
start := 52308,
stop := 52316 ),
rec(
content := " a strin\
g, and the arguments\n", count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
os", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52356,
root := ~,
start := 52346,
stop := 52355 ),
rec( content := " and ",
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52371,
root := ~,
start := 52361,
stop := 52370 ),
rec(
content := " must be\
integers, such that positions\n", count := [ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "pos", count := [ 4, 2, 13, 3 ], mathmo\
de := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 13, 3 ],
mathmode := \
"Text", name := "A", next := 52423, root := ~, start := 52413, stop := 52422 )
,
rec(
content := "\
+1", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "M",
next := 52429,
root := ~,
start := 52410,
stop := 52428 ),
rec(
content := " until "
,
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "pos", count := [ 4, 2, 13, 3 ], mathmo\
de := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 13, 3 ],
mathmode := \
"Text", name := "A", next := 52449, root := ~, start := 52439, stop := 52448 )
,
rec(
content := "\
+", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :\
= rec( ), content := [ rec( content := "len", count := [ 4, 2, 13, 3 ], mathm\
ode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 13, 3 ],
mathmode := \
"Text", name := "A", next := 52460, root := ~, start := 52450, stop := 52459
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "M",
next := 52464,
root := ~,
start := 52436,
stop := 52463 ),
rec(
content := " are bou\
nd in\n", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52487,
root := ~,
start := 52478,
stop := 52486 ),
rec(
content := ". The fu\
nction tries to write up to ", count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52533,
root := ~,
start := 52523,
stop := 52532 ),
rec(
content := " bytes f\
rom\n", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52554,
root := ~,
start := 52545,
stop := 52553 ),
rec(
content := " from po\
sition ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "pos", count := [ 4, 2, 13, 3 ], mathmo\
de := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 13, 3 ],
mathmode := \
"Text", name := "A", next := 52582, root := ~, start := 52572, stop := 52581 )
,
rec(
content := "\
+1", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "M",
next := 52588,
root := ~,
start := 52569,
stop := 52587 ),
rec(
content := " to the \
file ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52609,
root := ~,
start := 52601,
stop := 52608 ),
rec(
content := ".\nIf a \
previous call to ", count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Read\
yForWrite" ), content := 0, count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "Ref",
next := 52663,
root := ~,
start := 52633,
stop := 52662 ),
rec(
content := " or to "
,
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Sele\
ct" ), content := 0, count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "Ref",
next := 52693,
root := ~,
start := 52670,
stop := 52692 ),
rec(
content := " indicat\
es that ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52717,
root := ~,
start := 52709,
stop := 52716 ),
rec(
content := " is writ\
able, then it is\nguaranteed that the following call to ",
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
eNonBlocking" ), content := 0, count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "Ref",
next := 52813,
root := ~,
start := 52780,
stop := 52812 ),
rec(
content := "\nwill n\
ot block and accept at least one byte of data. Note that it is not\nguaranteed\
that all ", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
en", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 52917,
root := ~,
start := 52907,
stop := 52916 ),
rec(
content := " bytes a\
re written. The function returns\nthe number of bytes written or ",
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 53000,
root := ~,
start := 52989,
stop := 52999 ),
rec(
content := " if an e\
rror occurs.\n", count := [ 4, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 13, 3 ],
mathmode := "Text",
name := "Description",
next := 53035, root := ~,
start := 52194,
stop := 53034 ) ],
count := [ 4, 2, 13, 1 ],
mathmode := "Text",
name := "ManSection",
next := 53049, root := ~,
start := 52077, stop := 53048 ),
rec( content := "\n\n",
count := [ 4, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Name := "IO_ReadyForFlus\
h" ), content := 0, count := [ 4, 2, 14, 2 ], mathmode := "Text",
name := "Func",
next := 53103, root := ~,
start := 53064,
stop := 53102 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "K",
next := 53125,
root := ~,
start := 53114,
stop := 53124 ),
rec( content := " or ",
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "K",
next := 53141,
root := ~,
start := 53129,
stop := 53140 ),
rec( content := " ",
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 14, 3 ],
mathmode := "Text",
name := "Returns",
next := 53152, root := ~,
start := 53104,
stop := 53151 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction takes one argument ", count := [ 4, 2, 14, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "A",
next := 53208,
root := ~,
start := 53200,
stop := 53207 ),
rec(
content := " which m\
ust be a ", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "C",
next := 53236,
root := ~,
start := 53225,
stop := 53235 ),
rec(
content := "\nobject\
. It returns ", count := [ 4, 2, 14, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "K",
next := 53267,
root := ~,
start := 53256,
stop := 53266 ),
rec( content := " or ",
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "K",
next := 53283,
root := ~,
start := 53271,
stop := 53282 ),
rec(
content := " accordi\
ng to whether\nthe file ", count := [ 4, 2, 14, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "A",
next := 53322,
root := ~,
start := 53314,
stop := 53321 ),
rec(
content := " is read\
y to flush. A return value\nof ", count := [ 4, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 14, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 14, 3 ],
mathmode := "Text",
name := "K",
next := 53371,
root := ~,
start := 53360,
stop := 53370 ),
rec(
content := " guarant\
ees that the next call to ", count := [ 4, 2, 14, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
hNonBlocking" ), content := 0, count := [ 4, 2, 14, 3 ], mathmode := "Text",
name := "Ref",
next := 53438,
root := ~,
start := 53405,
stop := 53437 ),
rec(
content := "\non tha\
t file will succeed without blocking and flush out at least one\nbyte. Note th\
at this does not guarantee, that this call succeeds to\nflush out the whole co\
ntent of the buffer!\n", count := [ 4, 2, 14, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 14, 3 ],
mathmode := "Text",
name := "Description",
next := 53634, root := ~,
start := 53153,
stop := 53633 ) ],
count := [ 4, 2, 14, 1 ],
mathmode := "Text",
name := "ManSection",
next := 53648, root := ~,
start := 53051, stop := 53647 ),
rec( content := "\n\n",
count := [ 4, 2, 14, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Name := "IO_FlushNonBloc\
king" ), content := 0, count := [ 4, 2, 15, 2 ], mathmode := "Text",
name := "Func",
next := 53705, root := ~,
start := 53663,
stop := 53704 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 53727,
root := ~,
start := 53716,
stop := 53726 ),
rec( content := ", ",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 53741,
root := ~,
start := 53729,
stop := 53740 ),
rec( content := ", or ",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 53757,
root := ~,
start := 53746,
stop := 53756 ),
rec( content := " ",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 15, 3 ],
mathmode := "Text",
name := "Returns",
next := 53768, root := ~,
start := 53706,
stop := 53767 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction takes one argument ", count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "A",
next := 53824,
root := ~,
start := 53816,
stop := 53823 ),
rec(
content := " which m\
ust be a ", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "C",
next := 53852,
root := ~,
start := 53841,
stop := 53851 ),
rec(
content := "\nobject\
. It tries to write all data in the writing buffer to the file\ndescriptor. If\
this succeeds, the function returns ", count := [ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 53984,
root := ~,
start := 53973,
stop := 53983 ),
rec(
content := " and\n",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 54001,
root := ~,
start := 53989,
stop := 54000 ),
rec(
content := " otherwi\
se. If an error occurs, ", count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 54044,
root := ~,
start := 54033,
stop := 54043 ),
rec(
content := " is retu\
rned.\nIf a previous call to ", count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Read\
yForFlush" ), content := 0, count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "Ref",
next := 54110,
root := ~,
start := 54080,
stop := 54109 ),
rec( content := " or ",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Sele\
ct" ), content := 0, count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "Ref",
next := 54137,
root := ~,
start := 54114,
stop := 54136 ),
rec(
content := " indicat\
ed that ", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "A",
next := 54161,
root := ~,
start := 54153,
stop := 54160 ),
rec(
content := " is flus\
hable, then it is\nguaranteed that the following call to ",
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Flus\
hNonBlocking" ), content := 0, count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "Ref",
next := 54258,
root := ~,
start := 54225,
stop := 54257 ),
rec(
content := "\ndoes n\
ot block. However, it is not guaranteed that ", count := [ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 15, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 15, 3 ],
mathmode := "Text",
name := "K",
next := 54321,
root := ~,
start := 54310,
stop := 54320 ),
rec(
content := " is retu\
rned\nfrom that call.\n", count := [ 4, 2, 15, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 15, 3 ],
mathmode := "Text",
name := "Description",
next := 54364, root := ~,
start := 53769,
stop := 54363 ) ],
count := [ 4, 2, 15, 1 ],
mathmode := "Text",
name := "ManSection",
next := 54378, root := ~,
start := 53650, stop := 54377 ),
rec( content := "\n\n",
count := [ 4, 2, 15, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Comm := "closes file and\
file descriptor", Name := "IO_Close" ), content := 0,
count := [ 4, 2, 16, 2 ],
mathmode := "Text",
name := "Func",
next := 54469, root := ~,
start := 54393,
stop := 54468 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "K",
next := 54491,
root := ~,
start := 54480,
stop := 54490 ),
rec( content := " or ",
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "K",
next := 54506,
root := ~,
start := 54495,
stop := 54505 ),
rec( content := " ",
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 16, 3 ],
mathmode := "Text",
name := "Returns",
next := 54517, root := ~,
start := 54470,
stop := 54516 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction closes the ", count := [ 4, 2, 16, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "C",
next := 54568,
root := ~,
start := 54557,
stop := 54567 ),
rec(
content := " object \
", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "A",
next := 54584,
root := ~,
start := 54576,
stop := 54583 ),
rec(
content := " after w\
riting all data\nin the write buffer out and closing the file descriptor. All \
buffers are\nfreed. In case of an error, the function returns ",
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "K",
next := 54741,
root := ~,
start := 54730,
stop := 54740 ),
rec(
content := " and oth\
erwise\n", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 2, 16, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "K",
next := 54767,
root := ~,
start := 54756,
stop := 54766 ),
rec(
content := ". Note t\
hat for pipes to other processes this function collects\ndata about the termin\
ated processes using ", count := [ 4, 2, 16, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 2, 16, 3 ], mathmode := "Text",
name := "Ref",
next := 54897,
root := ~,
start := 54873,
stop := 54896 ),
rec( content := ".\n",
count :=
[ 4, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 2, 16, 3 ],
mathmode := "Text",
name := "Description",
next := 54913, root := ~,
start := 54518,
stop := 54912 ) ],
count := [ 4, 2, 16, 1 ],
mathmode := "Text",
name := "ManSection",
next := 54927, root := ~,
start := 54380, stop := 54926 ),
rec( content := "\n\n",
count := [ 4, 2, 16, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 2, 0, 1 ], mathmode := "Text",
name := "Section", next := 54939,
root := ~, start := 42952, stop := 54938 ),
rec( content := "\n\n",
count := [ 4, 2, 16, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 4, 3, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Other functions",
count := [ 4, 3, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 3, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 54989,
root := ~, start := 54955,
stop := 54988 ),
rec( content := "\n\n",
count := [ 4, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Comm := "returns the rea\
l file descriptor as an integer", Name := "IO_GetFD" ), content := 0,
count := [ 4, 3, 1, 2 ],
mathmode := "Text",
name := "Func",
next := 55095, root := ~,
start := 55004,
stop := 55094 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er ", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 55127, root := ~,
start := 55096,
stop := 55126 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction returns the real file descriptor that is behind the\n",
count :=
[ 4, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 1, 3 ],
mathmode := "Text",
name := "C",
next := 55219,
root := ~,
start := 55208,
stop := 55218 ),
rec(
content := " object \
", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 1, 3 ],
mathmode := "Text",
name := "A",
next := 55235,
root := ~,
start := 55227,
stop := 55234 ),
rec( content := ".\n",
count :=
[ 4, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 55251, root := ~,
start := 55128,
stop := 55250 ) ],
count := [ 4, 3, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 55265, root := ~,
start := 54991, stop := 55264 ),
rec( content := "\n\n",
count := [ 4, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Comm := "returns the wri\
ting buffer as a string", Name := "IO_GetWBuf" ), content := 0,
count := [ 4, 3, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 55365, root := ~,
start := 55280,
stop := 55364 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "K",
next := 55400,
root := ~,
start := 55388,
stop := 55399 ),
rec( content := " ",
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 55411, root := ~,
start := 55366,
stop := 55410 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets one argument ", count := [ 4, 3, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "A",
next := 55466,
root := ~,
start := 55458,
stop := 55465 ),
rec(
content := " which m\
ust be a ", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "C",
next := 55494,
root := ~,
start := 55483,
stop := 55493 ),
rec(
content := " object\\
nand returns the writing buffer of that ", count := [ 4, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "C",
next := 55552,
root := ~,
start := 55541,
stop := 55551 ),
rec(
content := " object.\
This is\nnecessary for ", count := [ 4, 3, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "C",
next := 55594,
root := ~,
start := 55583,
stop := 55593 ),
rec(
content := " objects\
, that are not associated to a\nreal file descriptor but just collect everythi\
ng that was written\nin their writing buffer. Remember to use this function be\
fore closing\nthe ", count := [ 4, 3, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 2, 3 ],
mathmode := "Text",
name := "C",
next := 55784,
root := ~,
start := 55773,
stop := 55783 ),
rec(
content := " object.\
\n", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 4, 3, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 55807, root := ~,
start := 55412,
stop := 55806 ) ],
count := [ 4, 3, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 55821, root := ~,
start := 55267, stop := 55820 ),
rec( content := "\n\n",
count := [ 4, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "r, w, f, e, t1, \
t2", Name := "IO_Select" ), content := 0, count := [ 4, 3, 3, 2 ],
mathmode := "Text",
name := "Func",
next := 55885, root := ~,
start := 55836,
stop := 55884 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " an integ\
er or ", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "K",
next := 55921,
root := ~,
start := 55910,
stop := 55920 ),
rec( content := " ",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 55932, root := ~,
start := 55886,
stop := 55931 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction is the corresponding function to ", count := [ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_sele\
ct" ), content := 0, count := [ 4, 3, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 56017,
root := ~,
start := 55994,
stop := 56016 ),
rec(
content := "\nfor bu\
ffered file access. It behaves similarly to that function. The\ndifferences ar\
e the following: There are four lists of files ", count := [ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56156,
root := ~,
start := 56148,
stop := 56155 ),
rec( content := ",\n",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56166,
root := ~,
start := 56158,
stop := 56165 ),
rec( content := ", ",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56176,
root := ~,
start := 56168,
stop := 56175 ),
rec(
content := ", and ",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56190,
root := ~,
start := 56182,
stop := 56189 ),
rec(
content := ". They a\
ll can contain either integers\n(standing for file descriptors) or ",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "C",
next := 56275,
root := ~,
start := 56264,
stop := 56274 ),
rec(
content := " objects\
. The list ", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56302,
root := ~,
start := 56294,
stop := 56301 ),
rec(
content := "\nis for\
checking, whether files or file descriptors are ready to read, the \nlist ",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56391,
root := ~,
start := 56383,
stop := 56390 ),
rec(
content := " is for \
checking whether they are ready to write, the\nlist ", count := [ 4, 3, 3, 3 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56458,
root := ~,
start := 56450,
stop := 56457 ),
rec(
content := " is for \
checking whether they are ready to flush, and\nthe list ",
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
", count := [ 4, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 56529,
root := ~,
start := 56521,
stop := 56528 ),
rec(
content := " is for \
checking whether they have exceptions.", count := [ 4, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "P",
next := 56579,
root := ~,
start := 56575,
stop := 56578 ),
rec(
content := "\n\nFor \
", count := [ 4, 3, 3, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 3, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "C",
next := 56596,
root := ~,
start := 56585,
stop := 56595 ),
rec(
content := " objects\
it is always first checked, whether there is either\ndata available in a read\
ing buffer or space in a writing buffer. If so,\nthey are immediately reported\
to be ready (this feature makes the\nlist of ", count := [ 4, 3, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 3, 3, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "C",
next := 56814,
root := ~,
start := 56803,
stop := 56813 ),
rec(
content := " objects\
to test for flushability necessary). \nFor the remaining files and for\nall s\
pecified file descriptors, the function ", count := [ 4, 3, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_sele\
ct" ), content := 0, count := [ 4, 3, 3, 4 ], mathmode := "Text",
name := "Ref",
next := 56961,
root := ~,
start := 56938,
stop := 56960 ),
rec(
content := " is\ncal\
led to get an overview about readiness. The timeout values ",
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
1", count := [ 4, 3, 3, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "A",
next := 57036,
root := ~,
start := 57027,
stop := 57035 ),
rec(
content := "\nand ",
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
2", count := [ 4, 3, 3, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "A",
next := 57050,
root := ~,
start := 57041,
stop := 57049 ),
rec(
content := " are set\
to zero for immediate returning if one of the\nrequested buffers were ready."
,
count :=
[ 4, 3, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 3, 3, 5 ],
mathmode := "Text",
name := "P",
next := 57138,
root := ~,
start := 57134,
stop := 57137 ),
rec( content := "\n\n",
count :=
[ 4, 3, 3, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Sele\
ct" ), content := 0, count := [ 4, 3, 3, 5 ], mathmode := "Text",
name := "Ref",
next := 57163,
root := ~,
start := 57140,
stop := 57162 ),
rec(
content := " returns\
the number of files or file descriptors\nthat are ready to serve or ",
count :=
[ 4, 3, 3, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 3, 5 ],
mathmode := "Text",
name := "K",
next := 57250,
root := ~,
start := 57239,
stop := 57249 ),
rec(
content := " if an e\
rror occurs.\n", count := [ 4, 3, 3, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 57285, root := ~,
start := 55933,
stop := 57284 ) ],
count := [ 4, 3, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 57299, root := ~,
start := 55823, stop := 57298 ),
rec(
content := "\n\nThe following functi\
on is a convenience function for directory access:\n\n",
count := [ 4, 3, 3, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "pathname",
Comm := "returns a list \
of file names in the directory pathname", Name := "IO_ListDir" ),
content := 0,
count := [ 4, 3, 4, 2 ],
mathmode := "Text",
name := "Func",
next := 57494, root := ~,
start := 57386,
stop := 57493 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list o\
f strings or ", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 4, 3 ],
mathmode := "Text",
name := "K",
next := 57537,
root := ~,
start := 57526,
stop := 57536 ),
rec( content := " ",
count :=
[ 4, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 57548, root := ~,
start := 57495,
stop := 57547 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets a string containing a path name as single argument\nand returns a \
list of strings that are the names of the files in that\ndirectory, or ",
count :=
[ 4, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 4, 3 ],
mathmode := "Text",
name := "K",
next := 57728,
root := ~,
start := 57717,
stop := 57727 ),
rec(
content := ", if an \
error occurred.\n", count := [ 4, 3, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 57766, root := ~,
start := 57549,
stop := 57765 ) ],
count := [ 4, 3, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 57780, root := ~,
start := 57373, stop := 57779 ),
rec( content := "\n\n",
count := [ 4, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "pathname",
Comm := "changes the cur\
rent directory", Name := "ChangeCurrentDirectory" ), content := 0,
count := [ 4, 3, 5, 2 ],
mathmode := "Text",
name := "Func",
next := 57890, root := ~,
start := 57795,
stop := 57889 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 5, 3 ],
mathmode := "Text",
name := "K",
next := 57912,
root := ~,
start := 57901,
stop := 57911 ),
rec(
content := " on succ\
ess and ", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 5, 3 ],
mathmode := "Text",
name := "K",
next := 57939,
root := ~,
start := 57928,
stop := 57938 ),
rec(
content := " on fail\
ure ", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 57961, root := ~,
start := 57891,
stop := 57960 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Cha\
nges the current directory. Returns ", count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 5, 3 ],
mathmode := "Text",
name := "K",
next := 58030,
root := ~,
start := 58019,
stop := 58029 ),
rec(
content := " on succ\
ess and \n ", count := [ 4, 3, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 5, 3 ],
mathmode := "Text",
name := "K",
next := 58062,
root := ~,
start := 58051,
stop := 58061 ),
rec(
content := " on fail\
ure.\n", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 58089, root := ~,
start := 57962,
stop := 58088 ) ],
count := [ 4, 3, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 58103, root := ~,
start := 57782, stop := 58102 ),
rec(
content := "\n\nThe following functi\
on is used to create strings describing a pair of\nan IP address and a port nu\
mber in a binary way. These strings can be\nused in connection with the C libr\
ary functions ", count := [ 4, 3, 5, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "connect",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 3, 5, 3 ],
mathmode := "Text", name := "C",
next := 58307, root := ~,
start := 58293, stop := 58306 ),
rec( content := ",\n",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "bind",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 3, 5, 3 ],
mathmode := "Text", name := "C",
next := 58320, root := ~,
start := 58309, stop := 58319 ),
rec( content := ", ",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "recvfrom",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 3, 5, 3 ],
mathmode := "Text", name := "C",
next := 58337, root := ~,
start := 58322, stop := 58336 ),
rec( content := ", and ",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "sendto",
count := [ 4, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 4, 3, 5, 3 ],
mathmode := "Text", name := "C",
next := 58356, root := ~,
start := 58343, stop := 58355 ),
rec(
content := " for the arguments\nneed\
ing such address pairs.\n\n", count := [ 4, 3, 5, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "ipstring, portnr\
", Comm := "creates an IP address port number pair for usage with connect",
Name := "IO_MakeIPAddres\
sPort" ), content := 0, count := [ 4, 3, 6, 2 ], mathmode := "Text",
name := "Func",
next := 58550, root := ~,
start := 58417,
stop := 58549 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
", count := [ 4, 3, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 4, 3, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 58580, root := ~,
start := 58551,
stop := 58579 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nction gets a string ", count := [ 4, 3, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
pstring", count := [ 4, 3, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 6, 3 ],
mathmode := "Text",
name := "A",
next := 58638,
root := ~,
start := 58623,
stop := 58637 ),
rec(
content := " contain\
ing an IP address\nin dot notation, i.e. four numbers in the range from 0 to 2\
55 separated\nby dots ", count := [ 4, 3, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := ".\
", count := [ 4, 3, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 4, 3, 6, 3 ],
mathmode := "Text",
name := "Q",
next := 58752,
root := ~,
start := 58744,
stop := 58751 ),
rec(
content := ", and an\
integer ", count := [ 4, 3, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ortnr", count := [ 4, 3, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 6, 3 ],
mathmode := "Text",
name := "A",
next := 58782,
root := ~,
start := 58769,
stop := 58781 ),
rec(
content := ", which \
is a port number.\nThe result is a string of the correct length to be used for\
the\nlow level C library functions, wherever IP address port number pairs\nar\
e needed. The string ", count := [ 4, 3, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
pstring", count := [ 4, 3, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 6, 3 ],
mathmode := "Text",
name := "A",
next := 58979,
root := ~,
start := 58964,
stop := 58978 ),
rec(
content := " can als\
o be a host name, which\nis then looked up using ", count := [ 4, 3, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_geth\
ostbyname" ), content := 0, count := [ 4, 3, 6, 3 ], mathmode := "Text",
name := "Ref",
next := 59065,
root := ~,
start := 59035,
stop := 59064 ),
rec(
content := " to find\
the IP\naddress.\n", count := [ 4, 3, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 59104, root := ~,
start := 58581,
stop := 59103 ) ],
count := [ 4, 3, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 59118, root := ~,
start := 58404, stop := 59117 ),
rec( content := "\n\n",
count := [ 4, 3, 6, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Comm := "returns a recor\
d describing the environment", Name := "IO_Environment" ), content := 0,
count := [ 4, 3, 7, 2 ],
mathmode := "Text",
name := "Func",
next := 59226, root := ~,
start := 59133,
stop := 59225 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 4, 3, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 3, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 3, 7, 3 ],
mathmode := "Text",
name := "K",
next := 59260,
root := ~,
start := 59249,
stop := 59259 ),
rec( content := " ",
count :=
[ 4, 3, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 59271, root := ~,
start := 59227,
stop := 59270 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nTakes n\
o arguments, uses ", count := [ 4, 3, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_envi\
ron" ), content := 0, count := [ 4, 3, 7, 3 ], mathmode := "Text",
name := "Ref",
next := 59335,
root := ~,
start := 59311,
stop := 59334 ),
rec(
content := " to get \
the environment\nand returns a record in which the component names are the nam\
es of the\nenvironment variables and the values are the values. This can then \
be\nchanged and the changed record can be given to ", count := [ 4, 3, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Make\
EnvList" ), content := 0, count := [ 4, 3, 7, 3 ], mathmode := "Text",
name := "Ref",
next := 59575,
root := ~,
start := 59547,
stop := 59574 ),
rec(
content := "\nto pro\
duce again a list which can be used for ", count := [ 4, 3, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_exec\
ve" ), content := 0, count := [ 4, 3, 7, 3 ], mathmode := "Text",
name := "Ref",
next := 59645,
root := ~,
start := 59622,
stop := 59644 ),
rec(
content := " as\nthi\
rd argument.\n", count := [ 4, 3, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 59679, root := ~,
start := 59272,
stop := 59678 ) ],
count := [ 4, 3, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 59693, root := ~,
start := 59120, stop := 59692 ),
rec( content := "\n\n",
count := [ 4, 3, 7, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "r",
Comm := "takes an enviro\
nment record and returns a list for execve", Name := "IO_MakeEnvList" ),
content := 0,
count := [ 4, 3, 8, 2 ],
mathmode := "Text",
name := "Func",
next := 59816, root := ~,
start := 59708,
stop := 59815 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list o\
f strings ", count := [ 4, 3, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 8, 3 ],
mathmode := "Text",
name := "Returns",
next := 59855, root := ~,
start := 59817,
stop := 59854 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nTakes a\
record as returned by ", count := [ 4, 3, 8, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Envi\
ronment" ), content := 0, count := [ 4, 3, 8, 3 ], mathmode := "Text",
name := "Ref",
next := 59928,
root := ~,
start := 59900,
stop := 59927 ),
rec(
content := " and tur\
ns it\ninto a list of strings as needed by ", count := [ 4, 3, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_exec\
ve" ), content := 0, count := [ 4, 3, 8, 3 ], mathmode := "Text",
name := "Ref",
next := 60001,
root := ~,
start := 59978,
stop := 60000 ),
rec(
content := " as thir\
d\nargument.\n", count := [ 4, 3, 8, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 3, 8, 3 ],
mathmode := "Text",
name := "Description",
next := 60035, root := ~,
start := 59856,
stop := 60034 ) ],
count := [ 4, 3, 8, 1 ],
mathmode := "Text",
name := "ManSection",
next := 60049, root := ~,
start := 59695, stop := 60048 ),
rec( content := "\n",
count := [ 4, 3, 8, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 3, 0, 1 ], mathmode := "Text",
name := "Section", next := 60060,
root := ~, start := 54941, stop := 60059 ),
rec( content := "\n\n", count := [ 4, 3, 8, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( Label := "ipc" ),
content :=
[
rec( content := "\n ",
count := [ 4, 4, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Inter process com\
munication", count := [ 4, 4, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 60134,
root := ~, start := 60088,
stop := 60133 ),
rec( content := "\n\n",
count := [ 4, 4, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "path",
Name := "IO_FindExecutab\
le" ), content := 0, count := [ 4, 4, 1, 2 ], mathmode := "Text",
name := "Func",
next := 60192, root := ~,
start := 60149,
stop := 60191 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "K",
next := 60214,
root := ~,
start := 60203,
stop := 60213 ),
rec(
content := " or the \
path to an executable ", count := [ 4, 4, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 60254, root := ~,
start := 60193,
stop := 60253 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nIf the \
path name ", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "A",
next := 60297,
root := ~,
start := 60286,
stop := 60296 ),
rec(
content := " contain\
s a slash, this function simply\nchecks whether the string ",
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "A",
next := 60374,
root := ~,
start := 60363,
stop := 60373 ),
rec(
content := " refers \
to an executable file. If so, \n", count := [ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "A",
next := 60424,
root := ~,
start := 60413,
stop := 60423 ),
rec(
content := " is retu\
rned as is. Otherwise, ", count := [ 4, 4, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "K",
next := 60466,
root := ~,
start := 60455,
stop := 60465 ),
rec(
content := " is retu\
rned.\nIf the path name ", count := [ 4, 4, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "A",
next := 60508,
root := ~,
start := 60497,
stop := 60507 ),
rec(
content := " does no\
t contain a slash, all directories\nin the environment variable ",
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "P\
ATH", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "F",
next := 60590,
root := ~,
start := 60579,
stop := 60589 ),
rec(
content := " are sea\
rched for an executable\nwith name ", count := [ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "A",
next := 60643,
root := ~,
start := 60632,
stop := 60642 ),
rec(
content := ". If so,\
the full path to that executable is \nreturned, otherwise ",
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "K",
next := 60720,
root := ~,
start := 60709,
stop := 60719 ),
rec( content := ".",
count :=
[ 4, 4, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 1, 4 ],
mathmode := "Text",
name := "P",
next := 60725,
root := ~,
start := 60721,
stop := 60724 ),
rec(
content := "\n\nThis\
function is used whenever one of the following functions gets an\nargument th\
at should refer to an executable.\n", count := [ 4, 4, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 60856, root := ~,
start := 60255,
stop := 60855 ) ],
count := [ 4, 4, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 60870, root := ~,
start := 60136, stop := 60869 ),
rec( content := "\n\n",
count := [ 4, 4, 1, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "exceptions",
Comm := "Closes all file\
descriptors except those listed in exceptions", Name := "IO_CloseAllFDs" ),
content := 0,
count := [ 4, 4, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 61006, root := ~,
start := 60885,
stop := 61005 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 4, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 4, 4, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 61035, root := ~,
start := 61007,
stop := 61034 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nCloses \
all file descriptors except those listed in ", count := [ 4, 4, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
xceptions", count := [ 4, 4, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 2, 3 ],
mathmode := "Text",
name := "A",
next := 61118,
root := ~,
start := 61101,
stop := 61117 ),
rec(
content := ", which\\
nmust be a list of integers.\n", count := [ 4, 4, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 61168, root := ~,
start := 61036,
stop := 61167 ) ],
count := [ 4, 4, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 61182, root := ~,
start := 60872, stop := 61181 ),
rec( content := "\n\n\n",
count := [ 4, 4, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "path, argv, mode\
", Comm := "Starts a child process with either stdout or stdin being a pipe",
Name := "IO_Popen" ),
content := 0,
count := [ 4, 4, 3, 2 ],
mathmode := "Text",
name := "Func",
next := 61321, root := ~,
start := 61198,
stop := 61320 ),
rec( attributes := rec( ),
content :=
[
rec( content := " a ",
count :=
[ 4, 4, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 3 ],
mathmode := "Text",
name := "C",
next := 61345,
root := ~,
start := 61334,
stop := 61344 ),
rec(
content := " object \
or ", count := [ 4, 4, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 3 ],
mathmode := "Text",
name := "K",
next := 61367,
root := ~,
start := 61356,
stop := 61366 ),
rec( content := " ",
count :=
[ 4, 4, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 61378, root := ~,
start := 61322,
stop := 61377 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 4, 4, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 3 ],
mathmode := "Text",
name := "A",
next := 61417,
root := ~,
start := 61406,
stop := 61416 ),
rec(
content := " must re\
fer to an executable file in the sense\nof ", count := [ 4, 4, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Find\
Executable" ), content := 0, count := [ 4, 4, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 61498,
root := ~,
start := 61467,
stop := 61497 ),
rec( content := ". ",
count :=
[ 4, 4, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 4 ],
mathmode := "Text",
name := "P",
next := 61504,
root := ~,
start := 61500,
stop := 61503 ),
rec(
content := "\n\nStar\
ts a child process using the executable in ", count := [ 4, 4, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 3, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 4 ],
mathmode := "Text",
name := "A",
next := 61564,
root := ~,
start := 61553,
stop := 61563 ),
rec(
content := "\nwith e\
ither stdout or stdin being a pipe. The \nargument ", count := [ 4, 4, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ode", count := [ 4, 4, 3, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 4 ],
mathmode := "Text",
name := "A",
next := 61632,
root := ~,
start := 61621,
stop := 61631 ),
rec(
content := " must be\
either the string ", count := [ 4, 4, 3, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "r", count := [ 4, 4, 3, 4 ], mathmode \
:= "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 3, 4 ],
mathmode := \
"Text", name := "C", next := 61670, root := ~, start := 61662, stop := 61669
) ],
count :=
[ 4, 4, 3, 4 ],
mathmode := "Text",
name := "Q",
next := 61674,
root := ~,
start := 61659,
stop := 61673 ),
rec(
content := " or the\\
nstring ", count := [ 4, 4, 3, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "w", count := [ 4, 4, 3, 4 ], mathmode \
:= "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 3, 4 ],
mathmode := \
"Text", name := "C", next := 61700, root := ~, start := 61692, stop := 61699
) ],
count :=
[ 4, 4, 3, 4 ],
mathmode := "Text",
name := "Q",
next := 61704,
root := ~,
start := 61689,
stop := 61703 ),
rec( content := ". ",
count :=
[ 4, 4, 3, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 5 ],
mathmode := "Text",
name := "P",
next := 61710,
root := ~,
start := 61706,
stop := 61709 ),
rec(
content := "\n\nIn t\
he first case, the standard output of the\nchild process will be the writing e\
nd of a pipe. A ", count := [ 4, 4, 3, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 3, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 5 ],
mathmode := "Text",
name := "C",
next := 61820,
root := ~,
start := 61809,
stop := 61819 ),
rec(
content := " object\\
nfor reading connected to the reading end of the pipe is returned. The\nstanda\
rd input and standard error of the child process will be the same\nthan the ca\
lling ", count := [ 4, 4, 3, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 3, 5 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
. ", count := [ 4, 4, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 6 ],
mathmode := "Text",
name := "P",
next := 62006,
root := ~,
start := 62002,
stop := 62005 ),
rec(
content := "\n\nIn t\
he second case, the standard input of the child process will be the\nreading e\
nd of a pipe. A ", count := [ 4, 4, 3, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 3, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 6 ],
mathmode := "Text",
name := "C",
next := 62116,
root := ~,
start := 62105,
stop := 62115 ),
rec(
content := " object \
for writing connected to the\nwriting end of the pipe is returned. The standar\
d output and standard error \nof the child process will be the same than the c\
alling ", count := [ 4, 4, 3, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 3, 6 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 3, 6 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
. ", count := [ 4, 4, 3, 6 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 7 ],
mathmode := "Text",
name := "P",
next := 62304,
root := ~,
start := 62300,
stop := 62303 ),
rec(
content := "\n\nIn c\
ase of an error, ", count := [ 4, 4, 3, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 7 ],
mathmode := "Text",
name := "K",
next := 62338,
root := ~,
start := 62327,
stop := 62337 ),
rec(
content := " is retu\
rned. ", count := [ 4, 4, 3, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 8 ],
mathmode := "Text",
name := "P",
next := 62356,
root := ~,
start := 62352,
stop := 62355 ),
rec(
content := "\n\nThe \
process will usually die, when the pipe is closed, but can also\ndo so without\
that. The ", count := [ 4, 4, 3, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 3, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 8 ],
mathmode := "Text",
name := "C",
next := 62461,
root := ~,
start := 62450,
stop := 62460 ),
rec(
content := " object \
remembers the process ID\nof the started process and the ",
count :=
[ 4, 4, 3, 8 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 4, 3, 8 ], mathmode := "Text",
name := "Ref",
next := 62547,
root := ~,
start := 62525,
stop := 62546 ),
rec(
content := " functio\
n then\ncalls ", count := [ 4, 4, 3, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 3, 8 ], mathmode := "Text",
name := "Ref",
next := 62592,
root := ~,
start := 62568,
stop := 62591 ),
rec(
content := " for it \
to acquire information about\nthe terminated process. ", count :=
[ 4, 4, 3, 8 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 9 ],
mathmode := "Text",
name := "P",
next := 62657,
root := ~,
start := 62653,
stop := 62656 ),
rec(
content := "\nNote t\
hat ", count := [ 4, 4, 3, 9 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Pope\
n" ), content := 0, count := [ 4, 4, 3, 9 ], mathmode := "Text",
name := "Ref",
next := 62690,
root := ~,
start := 62668,
stop := 62689 ),
rec(
content := " activat\
es our SIGCHLD handler (see ", count := [ 4, 4, 3, 9 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 3, 9 ],
mathmode := "Text",
name := "Ref",
next := 62764,
root := ~,
start := 62726,
stop := 62763 ),
rec( content := "). ",
count :=
[ 4, 4, 3, 9 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 3, 10 ],
mathmode := "Text",
name := "P",
next := 62771,
root := ~,
start := 62767,
stop := 62770 ),
rec(
content := "\n\nIn e\
ither case the ", count := [ 4, 4, 3, 10 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 3, 10 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 3, 10 ],
mathmode := "Text",
name := "C",
next := 62803,
root := ~,
start := 62792,
stop := 62802 ),
rec(
content := " object \
will have the attribute\n", count := [ 4, 4, 3, 10 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "ProcessID", count := [ 4, 4, 3, 10 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 3, 10 ],
mathmode := \
"Text", name := "K", next := 62854, root := ~, start := 62838, stop := 62853
) ],
count :=
[ 4, 4, 3, 10 ],
mathmode := "Text",
name := "Q",
next := 62858,
root := ~,
start := 62835,
stop := 62857 ),
rec(
content := " set to \
the process ID of the child process.\n", count := [ 4, 4, 3, 10 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 62917, root := ~,
start := 61379,
stop := 62916 ) ],
count := [ 4, 4, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 62931, root := ~,
start := 61185, stop := 62930 ),
rec( content := "\n\n",
count := [ 4, 4, 3, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "path, argv",
Comm := "Starts a child \
process with stdin and stdout being a pipe", Name := "IO_Popen2" ),
content := 0,
count := [ 4, 4, 4, 2 ],
mathmode := "Text",
name := "Func",
next := 63058, root := ~,
start := 62946,
stop := 63057 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 4, 4, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 3 ],
mathmode := "Text",
name := "K",
next := 63092,
root := ~,
start := 63081,
stop := 63091 ),
rec( content := " ",
count :=
[ 4, 4, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 63103, root := ~,
start := 63059,
stop := 63102 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 4, 4, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 3 ],
mathmode := "Text",
name := "A",
next := 63142,
root := ~,
start := 63131,
stop := 63141 ),
rec(
content := " must re\
fer to an executable file in the sense\nof ", count := [ 4, 4, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Find\
Executable" ), content := 0, count := [ 4, 4, 4, 3 ], mathmode := "Text",
name := "Ref",
next := 63223,
root := ~,
start := 63192,
stop := 63222 ),
rec( content := ". ",
count :=
[ 4, 4, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "P",
next := 63229,
root := ~,
start := 63225,
stop := 63228 ),
rec(
content := "\n\nA ne\
w child process is started using the executable in ", count := [ 4, 4, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "A",
next := 63297,
root := ~,
start := 63286,
stop := 63296 ),
rec(
content := "\nThe st\
andard input and standard output of it \nare pipes. The writing end of the inp\
ut pipe and the reading end of the\noutput pipe are returned as ",
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "C",
next := 63455,
root := ~,
start := 63444,
stop := 63454 ),
rec(
content := " objects\
bound to two components\n", count := [ 4, 4, 4, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdin", count := [ 4, 4, 4, 4 ], mathm\
ode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 4, 4 ],
mathmode := \
"Text", name := "C", next := 63503, root := ~, start := 63491, stop := 63502
) ],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "Q",
next := 63507,
root := ~,
start := 63488,
stop := 63506 ),
rec( content := " and ",
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdout", count := [ 4, 4, 4, 4 ], math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 4, 4 ],
mathmode := \
"Text", name := "C", next := 63528, root := ~, start := 63515, stop := 63527
) ],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "Q",
next := 63532,
root := ~,
start := 63512,
stop := 63531 ),
rec(
content := " (resp.)\
of the returned record. \nThis means, you have to ", count := [ 4, 4, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
rite", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "E",
next := 63602,
root := ~,
start := 63590,
stop := 63601 ),
rec( content := " to ",
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdin", count := [ 4, 4, 4, 4 ], mathm\
ode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 4, 4 ],
mathmode := \
"Text", name := "C", next := 63621, root := ~, start := 63609, stop := 63620
) ],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "Q",
next := 63625,
root := ~,
start := 63606,
stop := 63624 ),
rec( content := " and ",
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
ead", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "E",
next := 63641,
root := ~,
start := 63630,
stop := 63640 ),
rec(
content := " \nfrom \
", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdout", count := [ 4, 4, 4, 4 ], math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 4, 4 ],
mathmode := \
"Text", name := "C", next := 63664, root := ~, start := 63651, stop := 63663
) ],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "Q",
next := 63668,
root := ~,
start := 63648,
stop := 63667 ),
rec(
content := " in the \
calling ", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
. \nThe standard error of the child process will be \nthe same as the one of t\
he calling ", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 4, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
. ", count := [ 4, 4, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 4, 5 ],
mathmode := "Text",
name := "P",
next := 63803,
root := ~,
start := 63799,
stop := 63802 ),
rec(
content := "\n\nRetu\
rns ", count := [ 4, 4, 4, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 4, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 5 ],
mathmode := "Text",
name := "K",
next := 63824,
root := ~,
start := 63813,
stop := 63823 ),
rec(
content := " if an e\
rror occurred. ", count := [ 4, 4, 4, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 4, 6 ],
mathmode := "Text",
name := "P",
next := 63851,
root := ~,
start := 63847,
stop := 63850 ),
rec(
content := "\n\nThe \
process will usually die, when one of the pipes is closed. The ",
count :=
[ 4, 4, 4, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 4, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 6 ],
mathmode := "Text",
name := "C",
next := 63931,
root := ~,
start := 63920,
stop := 63930 ),
rec(
content := "\nobject\
s remember the process ID of the called process and the function\ncall to ",
count :=
[ 4, 4, 4, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 4, 4, 6 ], mathmode := "Text",
name := "Ref",
next := 64033,
root := ~,
start := 64011,
stop := 64032 ),
rec(
content := " for the\
", count := [ 4, 4, 4, 6 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tdout", count := [ 4, 4, 4, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 6 ],
mathmode := "Text",
name := "C",
next := 64055,
root := ~,
start := 64042,
stop := 64054 ),
rec(
content := " object \
will call\n", count := [ 4, 4, 4, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 4, 6 ], mathmode := "Text",
name := "Ref",
next := 64097,
root := ~,
start := 64073,
stop := 64096 ),
rec(
content := " for it \
to acquire information about the\nterminated process. ", count :=
[ 4, 4, 4, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 4, 7 ],
mathmode := "Text",
name := "P",
next := 64162,
root := ~,
start := 64158,
stop := 64161 ),
rec(
content := "\nNote t\
hat ", count := [ 4, 4, 4, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Pope\
n2" ), content := 0, count := [ 4, 4, 4, 7 ], mathmode := "Text",
name := "Ref",
next := 64196,
root := ~,
start := 64173,
stop := 64195 ),
rec(
content := " activat\
es our SIGCHLD handler (see ", count := [ 4, 4, 4, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 4, 7 ],
mathmode := "Text",
name := "Ref",
next := 64270,
root := ~,
start := 64232,
stop := 64269 ),
rec( content := "). ",
count :=
[ 4, 4, 4, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 4, 8 ],
mathmode := "Text",
name := "P",
next := 64277,
root := ~,
start := 64273,
stop := 64276 ),
rec(
content := "\n\nBoth\
", count := [ 4, 4, 4, 8 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 4, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 4, 8 ],
mathmode := "Text",
name := "C",
next := 64295,
root := ~,
start := 64284,
stop := 64294 ),
rec(
content := " objects\
will have the attribute ", count := [ 4, 4, 4, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "ProcessID", count := [ 4, 4, 4, 8 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 4, 8 ],
mathmode := \
"Text", name := "K", next := 64347, root := ~, start := 64331, stop := 64346
) ],
count :=
[ 4, 4, 4, 8 ],
mathmode := "Text",
name := "Q",
next := 64351,
root := ~,
start := 64328,
stop := 64350 ),
rec(
content := "\nset to\
the process ID of the child process, which will also be bound to\nthe ",
count :=
[ 4, 4, 4, 8 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "pid", count := [ 4, 4, 4, 8 ], mathmod\
e := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 4, 8 ],
mathmode := \
"Text", name := "K", next := 64441, root := ~, start := 64431, stop := 64440
) ],
count :=
[ 4, 4, 4, 8 ],
mathmode := "Text",
name := "Q",
next := 64445,
root := ~,
start := 64428,
stop := 64444 ),
rec(
content := " compone\
nt of the returned record.\n", count := [ 4, 4, 4, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 64494, root := ~,
start := 63104,
stop := 64493 ) ],
count := [ 4, 4, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 64508, root := ~,
start := 62933, stop := 64507 ),
rec( content := "\n\n",
count := [ 4, 4, 4, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "path, argv",
Comm := "Starts a child \
process with stdin, stdout, and stderr being a pipe", Name := "IO_Popen3" ),
content := 0,
count := [ 4, 4, 5, 2 ],
mathmode := "Text",
name := "Func",
next := 64641, root := ~,
start := 64523,
stop := 64640 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 4, 4, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 3 ],
mathmode := "Text",
name := "K",
next := 64675,
root := ~,
start := 64664,
stop := 64674 ),
rec( content := " ",
count :=
[ 4, 4, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 64686, root := ~,
start := 64642,
stop := 64685 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 4, 4, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 3 ],
mathmode := "Text",
name := "A",
next := 64725,
root := ~,
start := 64714,
stop := 64724 ),
rec(
content := " must re\
fer to an executable file in the sense\nof ", count := [ 4, 4, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Find\
Executable" ), content := 0, count := [ 4, 4, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 64806,
root := ~,
start := 64775,
stop := 64805 ),
rec( content := ". ",
count :=
[ 4, 4, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "P",
next := 64812,
root := ~,
start := 64808,
stop := 64811 ),
rec(
content := "\n\nA ne\
w child process is started using the executable in ", count := [ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ath", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "A",
next := 64880,
root := ~,
start := 64869,
stop := 64879 ),
rec(
content := "\nThe st\
andard input, standard output, and standard error of it \nare pipes. The writi\
ng end of the input pipe, the reading end of the\noutput pipe and the reading \
end of the error pipe \nare returned as ", count := [ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "C",
next := 65091,
root := ~,
start := 65080,
stop := 65090 ),
rec(
content := " objects\
bound to two components\n", count := [ 4, 4, 5, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdin", count := [ 4, 4, 5, 4 ], mathm\
ode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 4 ],
mathmode := \
"Text", name := "C", next := 65139, root := ~, start := 65127, stop := 65138
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Q",
next := 65143,
root := ~,
start := 65124,
stop := 65142 ),
rec( content := ", ",
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdout", count := [ 4, 4, 5, 4 ], math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 4 ],
mathmode := \
"Text", name := "C", next := 65161, root := ~, start := 65148, stop := 65160
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Q",
next := 65165,
root := ~,
start := 65145,
stop := 65164 ),
rec(
content := ", and ",
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stderr", count := [ 4, 4, 5, 4 ], math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 4 ],
mathmode := \
"Text", name := "C", next := 65187, root := ~, start := 65174, stop := 65186
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Q",
next := 65191,
root := ~,
start := 65171,
stop := 65190 ),
rec(
content := " \n(resp\
.) of the returned record. \nThis means, you have to ", count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
rite", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "E",
next := 65262,
root := ~,
start := 65250,
stop := 65261 ),
rec( content := " to ",
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdin", count := [ 4, 4, 5, 4 ], mathm\
ode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 4 ],
mathmode := \
"Text", name := "C", next := 65281, root := ~, start := 65269, stop := 65280
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Q",
next := 65285,
root := ~,
start := 65266,
stop := 65284 ),
rec( content := " and ",
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
ead", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "E",
next := 65301,
root := ~,
start := 65290,
stop := 65300 ),
rec(
content := " \nfrom \
", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stdout", count := [ 4, 4, 5, 4 ], math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 4 ],
mathmode := \
"Text", name := "C", next := 65324, root := ~, start := 65311, stop := 65323
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Q",
next := 65328,
root := ~,
start := 65308,
stop := 65327 ),
rec( content := " and ",
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "stderr", count := [ 4, 4, 5, 4 ], math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 4 ],
mathmode := \
"Text", name := "C", next := 65349, root := ~, start := 65336, stop := 65348
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Q",
next := 65353,
root := ~,
start := 65333,
stop := 65352 ),
rec(
content := " in the \
calling\n", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 5, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
.", count := [ 4, 4, 5, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 5, 5 ],
mathmode := "Text",
name := "P",
next := 65387,
root := ~,
start := 65383,
stop := 65386 ),
rec(
content := "\n\nRetu\
rns ", count := [ 4, 4, 5, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 5, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 5 ],
mathmode := "Text",
name := "K",
next := 65408,
root := ~,
start := 65397,
stop := 65407 ),
rec(
content := " if an e\
rror occurred. ", count := [ 4, 4, 5, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 5, 6 ],
mathmode := "Text",
name := "P",
next := 65435,
root := ~,
start := 65431,
stop := 65434 ),
rec(
content := "\n\nThe \
process will usually die, when one of the pipes is closed. All three\n",
count :=
[ 4, 4, 5, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 5, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 6 ],
mathmode := "Text",
name := "C",
next := 65521,
root := ~,
start := 65510,
stop := 65520 ),
rec(
content := " objects\
will remember the process ID of the newly created\nprocess and the call to th\
e ", count := [ 4, 4, 5, 6 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 4, 5, 6 ], mathmode := "Text",
name := "Ref",
next := 65630,
root := ~,
start := 65608,
stop := 65629 ),
rec(
content := " functio\
n for the\n", count := [ 4, 4, 5, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tdout", count := [ 4, 4, 5, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 6 ],
mathmode := "Text",
name := "C",
next := 65661,
root := ~,
start := 65648,
stop := 65660 ),
rec(
content := " object \
will call ", count := [ 4, 4, 5, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 5, 6 ], mathmode := "Text",
name := "Ref",
next := 65703,
root := ~,
start := 65679,
stop := 65702 ),
rec(
content := " for it \
to acquire\ninformation about the terminated child process. ",
count :=
[ 4, 4, 5, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 5, 7 ],
mathmode := "Text",
name := "P",
next := 65774,
root := ~,
start := 65770,
stop := 65773 ),
rec(
content := "\nNote t\
hat ", count := [ 4, 4, 5, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Pope\
n3" ), content := 0, count := [ 4, 4, 5, 7 ], mathmode := "Text",
name := "Ref",
next := 65808,
root := ~,
start := 65785,
stop := 65807 ),
rec(
content := " activat\
es our SIGCHLD handler (see ", count := [ 4, 4, 5, 7 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 5, 7 ],
mathmode := "Text",
name := "Ref",
next := 65882,
root := ~,
start := 65844,
stop := 65881 ),
rec( content := "). ",
count :=
[ 4, 4, 5, 7 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 5, 8 ],
mathmode := "Text",
name := "P",
next := 65889,
root := ~,
start := 65885,
stop := 65888 ),
rec(
content := "\n\nAll \
three ", count := [ 4, 4, 5, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 5, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 5, 8 ],
mathmode := "Text",
name := "C",
next := 65912,
root := ~,
start := 65901,
stop := 65911 ),
rec(
content := " objects\
will have the attribute ", count := [ 4, 4, 5, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "ProcessID", count := [ 4, 4, 5, 8 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 8 ],
mathmode := \
"Text", name := "K", next := 65964, root := ~, start := 65948, stop := 65963
) ],
count :=
[ 4, 4, 5, 8 ],
mathmode := "Text",
name := "Q",
next := 65968,
root := ~,
start := 65945,
stop := 65967 ),
rec(
content := "\nset to\
the process ID of the child process, which will also be bound to\nthe ",
count :=
[ 4, 4, 5, 8 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "pid", count := [ 4, 4, 5, 8 ], mathmod\
e := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 5, 8 ],
mathmode := \
"Text", name := "K", next := 66058, root := ~, start := 66048, stop := 66057
) ],
count :=
[ 4, 4, 5, 8 ],
mathmode := "Text",
name := "Q",
next := 66062,
root := ~,
start := 66045,
stop := 66061 ),
rec(
content := " compone\
nt of the returned record.\n", count := [ 4, 4, 5, 8 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 66111, root := ~,
start := 64687,
stop := 66110 ) ],
count := [ 4, 4, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 66125, root := ~,
start := 64510, stop := 66124 ),
rec( content := "\n\n",
count := [ 4, 4, 5, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "progs, infd, out\
fd, switcherror", Name := "IO_StartPipeline" ), content := 0,
count := [ 4, 4, 6, 2 ],
mathmode := "Text",
name := "Func",
next := 66209, root := ~,
start := 66140,
stop := 66208 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "K",
next := 66243,
root := ~,
start := 66232,
stop := 66242 ),
rec( content := " ",
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 66254, root := ~,
start := 66210,
stop := 66253 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n The\
argument ", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
rogs", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "A",
next := 66298,
root := ~,
start := 66286,
stop := 66297 ),
rec(
content := " is a li\
st of pairs, the first entry being a \n path to an executable (in the sense\
of ", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Find\
Executable" ), content := 0, count := [ 4, 4, 6, 3 ], mathmode := "Text",
name := "Ref",
next := 66418,
root := ~,
start := 66387,
stop := 66417 ),
rec(
content := "), \n \
the second an argument list, the argument\n ", count := [ 4, 4, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
nfd", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "A",
next := 66483,
root := ~,
start := 66472,
stop := 66482 ),
rec(
content := " is an o\
pen file descriptor for\n reading, ", count := [ 4, 4, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
utfd", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "A",
next := 66540,
root := ~,
start := 66528,
stop := 66539 ),
rec(
content := " is an o\
pen file descriptor for writing, both can be\n replaced by the string ",
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "open", count := [ 4, 4, 6, 3 ], mathmo\
de := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 6, 3 ],
mathmode := \
"Text", name := "K", next := 66634, root := ~, start := 66623, stop := 66633
) ],
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "Q",
next := 66638,
root := ~,
start := 66620,
stop := 66637 ),
rec(
content := " in whic\
h case a new pipe will \n be opened. The argument ", count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
witcherror", count := [ 4, 4, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 3 ],
mathmode := "Text",
name := "A",
next := 66716,
root := ~,
start := 66698,
stop := 66715 ),
rec(
content := "\nis a b\
oolean indicating whether standard error channels are also\nswitched to the co\
rresponding output channels. ", count := [ 4, 4, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 6, 4 ],
mathmode := "Text",
name := "P",
next := 66833,
root := ~,
start := 66829,
stop := 66832 ),
rec(
content := "\nThis f\
unction starts up all processes\nand connects them with pipes. The input of th\
e first is switched to\n", count := [ 4, 4, 6, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
nfd", count := [ 4, 4, 6, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 4 ],
mathmode := "Text",
name := "A",
next := 66951,
root := ~,
start := 66940,
stop := 66950 ),
rec(
content := " and the\
output of the last to ", count := [ 4, 4, 6, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
utfd", count := [ 4, 4, 6, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 4 ],
mathmode := "Text",
name := "A",
next := 66994,
root := ~,
start := 66982,
stop := 66993 ),
rec( content := ".\n",
count :=
[ 4, 4, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "P",
next := 67000,
root := ~,
start := 66996,
stop := 66999 ),
rec(
content := "\nReturn\
s a record with the following components: ", count := [ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ids", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "K",
next := 67060,
root := ~,
start := 67049,
stop := 67059 ),
rec(
content := " is a li\
st of \nprocess ids if everything worked. For each process for which\nsome err\
or occurred the corresponding pid is replaced by ", count := [ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "K",
next := 67204,
root := ~,
start := 67193,
stop := 67203 ),
rec(
content := ".\nThe "
,
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tdin", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "K",
next := 67222,
root := ~,
start := 67210,
stop := 67221 ),
rec(
content := " compone\
nt is equal to ", count := [ 4, 4, 6, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "K",
next := 67257,
root := ~,
start := 67245,
stop := 67256 ),
rec(
content := ", or to \
the file descriptor\nof the writing end of the newly created pipe which is con\
nected to the\nstandard input of the first of the new processes if \n",
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
nfd", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "A",
next := 67420,
root := ~,
start := 67409,
stop := 67419 ),
rec( content := " was ",
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "open", count := [ 4, 4, 6, 5 ], mathmo\
de := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 6, 5 ],
mathmode := \
"Text", name := "K", next := 67439, root := ~, start := 67428, stop := 67438
) ],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "Q",
next := 67443,
root := ~,
start := 67425,
stop := 67442 ),
rec(
content := ".\nThe "
,
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tdout", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "K",
next := 67462,
root := ~,
start := 67449,
stop := 67461 ),
rec(
content := " compone\
nt is equal to ", count := [ 4, 4, 6, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "K",
next := 67497,
root := ~,
start := 67485,
stop := 67496 ),
rec(
content := " or to t\
he file\ndescriptor of the reading end of the newly created pipe which is conn\
ected\nto the standard output of the last of the new processes if ",
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
utfd", count := [ 4, 4, 6, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "A",
next := 67659,
root := ~,
start := 67647,
stop := 67658 ),
rec(
content := " was \n"
,
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "open", count := [ 4, 4, 6, 5 ], mathmo\
de := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 6, 5 ],
mathmode := \
"Text", name := "K", next := 67679, root := ~, start := 67668, stop := 67678
) ],
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "Q",
next := 67683,
root := ~,
start := 67665,
stop := 67682 ),
rec( content := ".\n",
count :=
[ 4, 4, 6, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 6, 6 ],
mathmode := "Text",
name := "P",
next := 67689,
root := ~,
start := 67685,
stop := 67688 ),
rec(
content := "\nNote t\
hat the SIGCHLD handler of the ", count := [ 4, 4, 6, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O", count := [ 4, 4, 6, 6 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 6, 6 ],
mathmode := "Text",
name := "Package",
next := 67748,
root := ~,
start := 67727,
stop := 67747 ),
rec(
content := " package\
is installed\nby this function (see ", count := [ 4, 4, 6, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 6, 6 ],
mathmode := "Text",
name := "Ref",
next := 67830,
root := ~,
start := 67792,
stop := 67829 ),
rec(
content := ") and th\
at it \nlies in the responsibility of the caller to use ",
count :=
[ 4, 4, 6, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 6, 6 ], mathmode := "Text",
name := "Ref",
next := 67917,
root := ~,
start := 67893,
stop := 67916 ),
rec(
content := "\nto ask\
for the status information of all child processes after their\ntermination.\n\
", count := [ 4, 4, 6, 6 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 4, 4, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 68014, root := ~,
start := 66255,
stop := 68013 ) ],
count := [ 4, 4, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 68028, root := ~,
start := 66127, stop := 68027 ),
rec( content := "\n\n",
count := [ 4, 4, 6, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "progs, filename"
,
Name := "IO_StringFilter\
File" ), content := 0, count := [ 4, 4, 7, 2 ], mathmode := "Text",
name := "Func",
next := 68099, root := ~,
start := 68043,
stop := 68098 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "K",
next := 68133,
root := ~,
start := 68122,
stop := 68132 ),
rec( content := " ",
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 68144, root := ~,
start := 68100,
stop := 68143 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Rea\
ds the file with the name ", count := [ 4, 4, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ilename", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "A",
next := 68207,
root := ~,
start := 68192,
stop := 68206 ),
rec(
content := ", howeve\
r, a pipeline\n is created by the processes described by ",
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
rogs", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "A",
next := 68286,
root := ~,
start := 68274,
stop := 68285 ),
rec(
content := " (see ",
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Star\
tPipeline" ), content := 0, count := [ 4, 4, 7, 3 ], mathmode := "Text",
name := "Ref",
next := 68330,
root := ~,
start := 68292,
stop := 68329 ),
rec(
content := ") to fil\
ter the content of the file\n through the pipeline. The result is put into \
a ", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " string \
and\n returned. If something goes wrong, ", count := [ 4, 4, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 7, 3 ],
mathmode := "Text",
name := "K",
next := 68484,
root := ~,
start := 68473,
stop := 68483 ),
rec(
content := " is retu\
rned.\n", count := [ 4, 4, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 68512, root := ~,
start := 68145,
stop := 68511 ) ],
count := [ 4, 4, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 68526, root := ~,
start := 68030, stop := 68525 ),
rec( content := "\n\n",
count := [ 4, 4, 7, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "filename, progs,\
st [,append]", Label := "append", Name := "IO_FileFilterString" ),
content := 0,
count := [ 4, 4, 8, 2 ],
mathmode := "Text",
name := "Func",
next := 68641, root := ~,
start := 68545,
stop := 68640 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "K",
next := 68675,
root := ~,
start := 68664,
stop := 68674 ),
rec( content := " ",
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 8, 3 ],
mathmode := "Text",
name := "Returns",
next := 68686, root := ~,
start := 68642,
stop := 68685 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Wri\
tes the content of the string ", count := [ 4, 4, 8, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "A",
next := 68747,
root := ~,
start := 68738,
stop := 68746 ),
rec(
content := " to the \
file with the name \n ", count := [ 4, 4, 8, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ilename", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "A",
next := 68794,
root := ~,
start := 68779,
stop := 68793 ),
rec(
content := ", howeve\
r, a pipeline\n is created by the processes described by ",
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
rogs", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "A",
next := 68873,
root := ~,
start := 68861,
stop := 68872 ),
rec(
content := " (see ",
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Star\
tPipeline" ), content := 0, count := [ 4, 4, 8, 3 ], mathmode := "Text",
name := "Ref",
next := 68917,
root := ~,
start := 68879,
stop := 68916 ),
rec(
content := ") to fil\
ter the content of the string\n through the pipeline. The result is put int\
o the file. If the boolean\n value ", count := [ 4, 4, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ppend", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "A",
next := 69052,
root := ~,
start := 69039,
stop := 69051 ),
rec(
content := " is give\
n and equal to ", count := [ 4, 4, 8, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "K",
next := 69086,
root := ~,
start := 69075,
stop := 69085 ),
rec(
content := ", then t\
he\n data will be appended to the already existing file.\n If something \
goes wrong, ", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 8, 3 ],
mathmode := "Text",
name := "K",
next := 69193,
root := ~,
start := 69182,
stop := 69192 ),
rec(
content := " is retu\
rned.\n", count := [ 4, 4, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 8, 3 ],
mathmode := "Text",
name := "Description",
next := 69221, root := ~,
start := 68687,
stop := 69220 ) ],
count := [ 4, 4, 8, 1 ],
mathmode := "Text",
name := "ManSection",
next := 69235, root := ~,
start := 68528, stop := 69234 ),
rec( content := "\n\n",
count := [ 4, 4, 8, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "progs, filename \
[,mode][,bufsize]", Name := "IO_FilteredFile" ), content := 0,
count := [ 4, 4, 9, 2 ],
mathmode := "Text",
name := "Func",
next := 69320, root := ~,
start := 69250,
stop := 69319 ),
rec( attributes := rec( ),
content :=
[
rec( content := " a ",
count :=
[ 4, 4, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 9, 3 ],
mathmode := "Text",
name := "C",
next := 69344,
root := ~,
start := 69333,
stop := 69343 ),
rec(
content := " object \
or ", count := [ 4, 4, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 9, 3 ],
mathmode := "Text",
name := "K",
next := 69366,
root := ~,
start := 69355,
stop := 69365 ),
rec( content := " ",
count :=
[ 4, 4, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 9, 3 ],
mathmode := "Text",
name := "Returns",
next := 69377, root := ~,
start := 69321,
stop := 69376 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Thi\
s function is similar to ", count := [ 4, 4, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_File\
", Label := "mode" ), content := 0, count := [ 4, 4, 9, 3 ],
mathmode := "Text",
name := "Ref",
next := 69458,
root := ~,
start := 69424,
stop := 69457 ),
rec(
content := " \n a\
nd behaves nearly\nidentically. The only difference is that a filtering pipeli\
ne is switched\nbetween the file and the ", count := [ 4, 4, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 9, 3 ],
mathmode := "Text",
name := "C",
next := 69593,
root := ~,
start := 69582,
stop := 69592 ),
rec(
content := " object \
such that all things read\nor written respectively are filtered through this p\
ipeline of processes.\n", count := [ 4, 4, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 9, 4 ],
mathmode := "Text",
name := "P",
next := 69704,
root := ~,
start := 69700,
stop := 69703 ),
rec(
content := "\nThe ",
count :=
[ 4, 4, 9, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 9, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 9, 4 ],
mathmode := "Text",
name := "C",
next := 69720,
root := ~,
start := 69709,
stop := 69719 ),
rec(
content := " object \
remembers the started processes and upon the\nfinal call to ",
count :=
[ 4, 4, 9, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 4, 9, 4 ], mathmode := "Text",
name := "Ref",
next := 69809,
root := ~,
start := 69787,
stop := 69808 ),
rec(
content := " automat\
ically uses the\n", count := [ 4, 4, 9, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 9, 4 ], mathmode := "Text",
name := "Ref",
next := 69857,
root := ~,
start := 69833,
stop := 69856 ),
rec(
content := " functio\
n to acquire information from the\nterminated processes in the pipeline after \
their termination. This means\nthat you do not have to call ",
count :=
[ 4, 4, 9, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 9, 4 ], mathmode := "Text",
name := "Ref",
next := 70025,
root := ~,
start := 70001,
stop := 70024 ),
rec(
content := " any mor\
e after\nthe call to ", count := [ 4, 4, 9, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Clos\
e" ), content := 0, count := [ 4, 4, 9, 4 ], mathmode := "Text",
name := "Ref",
next := 70075,
root := ~,
start := 70053,
stop := 70074 ),
rec( content := ".",
count :=
[ 4, 4, 9, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 9, 5 ],
mathmode := "Text",
name := "P",
next := 70080,
root := ~,
start := 70076,
stop := 70079 ),
rec(
content := "\nNote t\
hat ", count := [ 4, 4, 9, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Filt\
eredFile" ), content := 0, count := [ 4, 4, 9, 5 ], mathmode := "Text",
name := "Ref",
next := 70120,
root := ~,
start := 70091,
stop := 70119 ),
rec(
content := " activat\
es our SIGCHLD handler (see ", count := [ 4, 4, 9, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 9, 5 ],
mathmode := "Text",
name := "Ref",
next := 70198,
root := ~,
start := 70156,
stop := 70197 ),
rec( content := ").",
count :=
[ 4, 4, 9, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 9, 6 ],
mathmode := "Text",
name := "P",
next := 70204,
root := ~,
start := 70200,
stop := 70203 ),
rec(
content := "\nThe ",
count :=
[ 4, 4, 9, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 9, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 9, 6 ],
mathmode := "Text",
name := "C",
next := 70220,
root := ~,
start := 70209,
stop := 70219 ),
rec(
content := " object \
will have the attribute\n", count := [ 4, 4, 9, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
attributes :=\
rec( ), content := [ rec( content := "ProcessID", count := [ 4, 4, 9, 6 ],
math\
mode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 4, 9, 6 ],
mathmode := \
"Text", name := "K", next := 70271, root := ~, start := 70255, stop := 70270
) ],
count :=
[ 4, 4, 9, 6 ],
mathmode := "Text",
name := "Q",
next := 70275,
root := ~,
start := 70252,
stop := 70274 ),
rec(
content := " set to \
the list of process IDs of the child processes.\n", count := [ 4, 4, 9, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 9, 3 ],
mathmode := "Text",
name := "Description",
next := 70345, root := ~,
start := 69378,
stop := 70344 ) ],
count := [ 4, 4, 9, 1 ],
mathmode := "Text",
name := "ManSection",
next := 70359, root := ~,
start := 69237, stop := 70358 ),
rec( content := "\n\n",
count := [ 4, 4, 9, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f, st",
Comm := "Sends away the \
string st to f in the background", Name := "IO_SendStringBackground" ),
content := 0,
count := [ 4, 4, 10, 2 ],
mathmode := "Text",
name := "Func",
next := 70485, root := ~,
start := 70374,
stop := 70484 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis fu\
nctions uses ", count := [ 4, 4, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Writ\
e" ), content := 0, count := [ 4, 4, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 70542,
root := ~,
start := 70520,
stop := 70541 ),
rec(
content := " to writ\
e the whole string\n", count := [ 4, 4, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "A",
next := 70578,
root := ~,
start := 70569,
stop := 70577 ),
rec(
content := " to the \
", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "C",
next := 70597,
root := ~,
start := 70586,
stop := 70596 ),
rec(
content := " object \
", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "A",
next := 70613,
root := ~,
start := 70605,
stop := 70612 ),
rec(
content := ". Howeve\
r, this is done\nby forking off a child process identical to the calling ",
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
\nthat does the sending. The calling ", count := [ 4, 4, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
returns immediately, even \nbefore anything has been sent away with the resul\
t ", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 3 ],
mathmode := "Text",
name := "K",
next := 70845,
root := ~,
start := 70834,
stop := 70844 ),
rec(
content := ". \nThe \
forked off sender process terminates itself immediately after it\nhas sent all\
data away.", count := [ 4, 4, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 10, 4 ],
mathmode := "Text",
name := "P",
next := 70944,
root := ~,
start := 70940,
stop := 70943 ),
rec(
content := "\n\nThe \
reason for having this function available is the following: If one \nuses ",
count :=
[ 4, 4, 10, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Pope\
n2" ), content := 0, count := [ 4, 4, 10, 4 ], mathmode := "Text",
name := "Ref",
next := 71046,
root := ~,
start := 71023,
stop := 71045 ),
rec( content := " or ",
count :=
[ 4, 4, 10, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Pope\
n3" ), content := 0, count := [ 4, 4, 10, 4 ], mathmode := "Text",
name := "Ref",
next := 71073,
root := ~,
start := 71050,
stop := 71072 ),
rec(
content := " to star\
t up\na child process with standard input and standard output being a pipe,\nt\
hen one usually has the problem, that the child process starts reading\nsome d\
ata, but then wants to write data, before it received all data\ncoming. If the\
calling ", count := [ 4, 4, 10, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 10, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
would first try to write all data\nand only start to read the output of the\n\
child process after sending away all data, \na deadlock situation would occur.\
\nThis is avoided with the forking and backgrounding approach.",
count :=
[ 4, 4, 10, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 10, 5 ],
mathmode := "Text",
name := "P",
next := 71551,
root := ~,
start := 71547,
stop := 71550 ),
rec(
content := "\n\nReme\
mber to close the writing end of the standard input pipe in the\ncalling ",
count :=
[ 4, 4, 10, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 10, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 5 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
directly after ", count := [ 4, 4, 10, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Send\
StringBackground" ), content := 0, count := [ 4, 4, 10, 5 ],
mathmode := "Text",
name := "Ref",
next := 71695,
root := ~,
start := 71658,
stop := 71694 ),
rec(
content := "\nhas re\
turned, because otherwise the child process might not notice that\nall data ha\
s arrived, because the pipe persists! See the file\n", count :=
[ 4, 4, 10, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
open2.g", count := [ 4, 4, 10, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 5 ],
mathmode := "Text",
name := "F",
next := 71845,
root := ~,
start := 71830,
stop := 71844 ),
rec(
content := " in the \
", count := [ 4, 4, 10, 5 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
xample", count := [ 4, 4, 10, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 5 ],
mathmode := "Text",
name := "F",
next := 71867,
root := ~,
start := 71853,
stop := 71866 ),
rec(
content := " directo\
ry for an example.", count := [ 4, 4, 10, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 10, 6 ],
mathmode := "Text",
name := "P",
next := 71897,
root := ~,
start := 71893,
stop := 71896 ),
rec(
content := "\n\nNote\
that with most modern operating systems the forking off of an\nidentical chil\
d process does in fact ", count := [ 4, 4, 10, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
ot", count := [ 4, 4, 10, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 6 ],
mathmode := "Text",
name := "E",
next := 72013,
root := ~,
start := 72003,
stop := 72012 ),
rec(
content := " mean a \
duplication of the\ntotal main memory used by both processes, because the oper\
ating system\nkernel will use ", count := [ 4, 4, 10, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
opy on write", count := [ 4, 4, 10, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 10, 6 ],
mathmode := "Text",
name := "Q",
next := 72147,
root := ~,
start := 72127,
stop := 72146 ),
rec(
content := ". Howeve\
r, if a garbage collection\nhappens to become necessary during the sending of \
the data in the\nforked off sending process, this might trigger doubled memory\
usage.\n", count := [ 4, 4, 10, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 10, 3 ],
mathmode := "Text",
name := "Description",
next := 72331, root := ~,
start := 70486,
stop := 72330 ) ],
count := [ 4, 4, 10, 1 ],
mathmode := "Text",
name := "ManSection",
next := 72345, root := ~,
start := 70361, stop := 72344 ),
rec( content := "\n\n",
count := [ 4, 4, 10, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "cmd, args, input\
", Name := "IO_PipeThrough" ), content := 0, count := [ 4, 4, 11, 2 ],
mathmode := "Text",
name := "Func",
next := 72412, root := ~,
start := 72360,
stop := 72411 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a string\
or ", count := [ 4, 4, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "K",
next := 72446,
root := ~,
start := 72435,
stop := 72445 ),
rec( content := " ",
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 11, 3 ],
mathmode := "Text",
name := "Returns",
next := 72457, root := ~,
start := 72413,
stop := 72456 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nStarts \
the process with the executable given by the file name\n",
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
md", count := [ 4, 4, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "A",
next := 72544,
root := ~,
start := 72534,
stop := 72543 ),
rec(
content := " (in the\
sense of ", count := [ 4, 4, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Find\
Executable" ), content := 0, count := [ 4, 4, 11, 3 ], mathmode := "Text",
name := "Ref",
next := 72593,
root := ~,
start := 72562,
stop := 72592 ),
rec(
content := ") with \\
narguments in the argument list\n", count := [ 4, 4, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 4, 4, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "A",
next := 72643,
root := ~,
start := 72632,
stop := 72642 ),
rec(
content := " (a list\
of strings). The standard input and output of the started\nprocess are connec\
ted via pipes to the calling process. The content of \nthe string ",
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
nput", count := [ 4, 4, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 11, 3 ],
mathmode := "Text",
name := "A",
next := 72805,
root := ~,
start := 72793,
stop := 72804 ),
rec(
content := " is writ\
ten to the standard input of the called\nprocess and its standard output is re\
ad and returned as a string.", count := [ 4, 4, 11, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 11, 4 ],
mathmode := "Text",
name := "P",
next := 72922,
root := ~,
start := 72918,
stop := 72921 ),
rec(
content := "\nAll th\
e necessary I/O multiplexing and non-blocking I/O\nto avoid deadlocks is done \
in this function.\n", count := [ 4, 4, 11, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 11, 5 ],
mathmode := "Text",
name := "P",
next := 73028,
root := ~,
start := 73024,
stop := 73027 ),
rec(
content := "\nThis f\
unction properly does ", count := [ 4, 4, 11, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 11, 5 ], mathmode := "Text",
name := "Ref",
next := 73081,
root := ~,
start := 73057,
stop := 73080 ),
rec(
content := " to wait\
for\nthe termination of the child process but does not restore the\noriginal \
", count := [ 4, 4, 11, 5 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 11, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 11, 5 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " SIGCHLD\
signal handler \n(see ", count := [ 4, 4, 11, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 11, 5 ],
mathmode := "Text",
name := "Ref",
next := 73238,
root := ~,
start := 73200,
stop := 73237 ),
rec( content := ").\n",
count :=
[ 4, 4, 11, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 11, 3 ],
mathmode := "Text",
name := "Description",
next := 73255, root := ~,
start := 72458,
stop := 73254 ) ],
count := [ 4, 4, 11, 1 ],
mathmode := "Text",
name := "ManSection",
next := 73269, root := ~,
start := 72347, stop := 73268 ),
rec( content := "\n\n",
count := [ 4, 4, 11, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "cmd, args, input\
", Name := "IO_PipeThroughWithError" ), content := 0,
count := [ 4, 4, 12, 2 ],
mathmode := "Text",
name := "Func",
next := 73345, root := ~,
start := 73284,
stop := 73344 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
or ", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "K",
next := 73379,
root := ~,
start := 73368,
stop := 73378 ),
rec( content := " ",
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 12, 3 ],
mathmode := "Text",
name := "Returns",
next := 73390, root := ~,
start := 73346,
stop := 73389 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nStarts \
the process with the executable given by the file name\n",
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
md", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "A",
next := 73477,
root := ~,
start := 73467,
stop := 73476 ),
rec(
content := " (in the\
sense of ", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Find\
Executable" ), content := 0, count := [ 4, 4, 12, 3 ], mathmode := "Text",
name := "Ref",
next := 73526,
root := ~,
start := 73495,
stop := 73525 ),
rec(
content := ") \nwith\
arguments in the argument list\n", count := [ 4, 4, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "A",
next := 73576,
root := ~,
start := 73565,
stop := 73575 ),
rec(
content := " (a list\
of strings). The standard input, output and error\nof the started\nprocess ar\
e connected via pipes to the calling process. The content of \nthe string ",
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
nput", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "A",
next := 73745,
root := ~,
start := 73733,
stop := 73744 ),
rec(
content := " is writ\
ten to the standard input of the called\nprocess and its standard output and e\
rror are read and returned as a \nrecord with components ",
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ut", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "K",
next := 73896,
root := ~,
start := 73886,
stop := 73895 ),
rec( content := " and ",
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
rr", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 3 ],
mathmode := "Text",
name := "K",
next := 73911,
root := ~,
start := 73901,
stop := 73910 ),
rec(
content := ", which \
are strings.", count := [ 4, 4, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 12, 4 ],
mathmode := "Text",
name := "P",
next := 73935,
root := ~,
start := 73931,
stop := 73934 ),
rec(
content := "\nAll th\
e necessary I/O multiplexing and non-blocking I/O\nto avoid deadlocks is done \
in this function.\n", count := [ 4, 4, 12, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 12, 5 ],
mathmode := "Text",
name := "P",
next := 74041,
root := ~,
start := 74037,
stop := 74040 ),
rec(
content := "\nThis f\
unction properly does ", count := [ 4, 4, 12, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Wait\
Pid" ), content := 0, count := [ 4, 4, 12, 5 ], mathmode := "Text",
name := "Ref",
next := 74094,
root := ~,
start := 74070,
stop := 74093 ),
rec(
content := " to wait\
for\nthe termination of the child process but does not restore the\noriginal \
", count := [ 4, 4, 12, 5 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 4, 4, 12, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 5 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " SIGCHLD\
signal handler \n(see ", count := [ 4, 4, 12, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Inst\
allSIGCHLDHandler" ), content := 0, count := [ 4, 4, 12, 5 ],
mathmode := "Text",
name := "Ref",
next := 74251,
root := ~,
start := 74213,
stop := 74250 ),
rec( content := ").\n",
count :=
[ 4, 4, 12, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 4, 4, 12, 6 ],
mathmode := "Text",
name := "P",
next := 74258,
root := ~,
start := 74254,
stop := 74257 ),
rec(
content := "\nThe fu\
nctions returns either ", count := [ 4, 4, 12, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 4, 4, 12, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 6 ],
mathmode := "Text",
name := "K",
next := 74299,
root := ~,
start := 74288,
stop := 74298 ),
rec(
content := " if an e\
rror occurred, or otherwise\na record with components ", count :=
[ 4, 4, 12, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
ut", count := [ 4, 4, 12, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 6 ],
mathmode := "Text",
name := "K",
next := 74370,
root := ~,
start := 74360,
stop := 74369 ),
rec( content := " and ",
count :=
[ 4, 4, 12, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "e\
rr", count := [ 4, 4, 12, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 4, 4, 12, 6 ],
mathmode := "Text",
name := "K",
next := 74385,
root := ~,
start := 74375,
stop := 74384 ),
rec(
content := " which a\
re bound\nto strings containing the full standard output and standard error\no\
f the called process.\n", count := [ 4, 4, 12, 6 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 4, 4, 12, 3 ],
mathmode := "Text",
name := "Description",
next := 74505, root := ~,
start := 73391,
stop := 74504 ) ],
count := [ 4, 4, 12, 1 ],
mathmode := "Text",
name := "ManSection",
next := 74519, root := ~,
start := 73271, stop := 74518 ),
rec( content := "\n\n",
count := [ 4, 4, 12, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 4, 4, 0, 1 ], mathmode := "Text",
name := "Section", next := 74531,
root := ~, start := 60062, stop := 74530 ),
rec( content := "\n\n",
count := [ 4, 4, 12, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 4, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 74543, root := ~, start := 38286,
stop := 74542 ),
rec( content := "\n\n", count := [ 4, 4, 12, 6 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 5, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Object serialisation (Pic\
kling)", count := [ 5, 0, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 5, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 74609,
root := ~, start := 74559, stop := 74608 ),
rec( content := "\n\nThe idea of ",
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "object serialisation",
count := [ 5, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "Q", next := 74650, root := ~,
start := 74623, stop := 74649 ),
rec(
content := " is that one wants to store\nnea\
rly arbitrary ", count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " objects to disk or transfer the\
m over the network.\nTo this end, one wants to convert them to a byte stream t\
hat is platform\nindependent and can later be converted back to a copy of the \
same object\nin memory, be it in the same ", count := [ 5, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " process or another one maybe ev\
en on\nanother machine. The main problem here are the vast amount of different\
\ntypes occurring in ", count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " and the possibly highly self-re\
ferential\nstructure of ", count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec( content := " objects.\n\n",
count := [ 5, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 5, 0, 0, 4 ], mathmode := "Text",
name := "P", next := 75141, root := ~,
start := 75137, stop := 75140 ),
rec( content := "\nThe ",
count := [ 5, 0, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 5, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 4 ], mathmode := "Text",
name := "Package", next := 75167,
root := ~, start := 75146, stop := 75166 ),
rec(
content := " package contains a framework to\
implement object\nserialisation and implementations for most of the basic dat\
a types\nin ", count := [ 5, 0, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 0, 0, 4 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := ". The framework is easily extend\
ible to other types and takes\ncomplete care of self-references and correspond\
ing problems.\nIt builds upon the buffered I/O functions described in Section\
\n", count := [ 5, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec( attributes := rec( Sect := "bufio" ),
content := 0, count := [ 5, 0, 0, 4 ],
mathmode := "Text", name := "Ref",
next := 75497, root := ~, start := 75478,
stop := 75496 ),
rec(
content := ". We start by describing the use\
r interface.", count := [ 5, 0, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 5, 0, 0, 5 ], mathmode := "Text",
name := "P", next := 75545, root := ~,
start := 75541, stop := 75544 ),
rec( content := "\n\n", count := [ 5, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 5, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Result objects",
count := [ 5, 1, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 75594,
root := ~, start := 75561,
stop := 75593 ),
rec(
content := "\n\nThe following static\
objects are used to report about success or\nfailure of the (un-)pickling ope\
rations:\n\n", count := [ 5, 1, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Name := "IO_Error" ),
content := 0,
count := [ 5, 1, 1, 2 ],
mathmode := "Text",
name := "Var",
next := 75738, root := ~,
start := 75716,
stop := 75737 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " This obj\
ect is returned if an error occurs. ", count := [ 5, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 1, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 75811, root := ~,
start := 75739,
stop := 75810 ) ],
count := [ 5, 1, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 75825, root := ~,
start := 75703, stop := 75824 ),
rec( content := "\n\n",
count := [ 5, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Name := "IO_Nothing"
), content := 0,
count := [ 5, 1, 2, 2 ],
mathmode := "Text",
name := "Var",
next := 75864, root := ~,
start := 75840,
stop := 75863 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " This obj\
ect is returned when there \nis nothing to return, for example if an unpickler\
(see ", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IO_Unpi\
ckle" ), content := 0, count := [ 5, 1, 2, 3 ], mathmode := "Text",
name := "Ref",
next := 75995,
root := ~,
start := 75970,
stop := 75994 ),
rec(
content := ") encoun\
ters the end of a file.\n", count := [ 5, 1, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 1, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 76041, root := ~,
start := 75865,
stop := 76040 ) ],
count := [ 5, 1, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 76055, root := ~,
start := 75827, stop := 76054 ),
rec( content := "\n\n",
count := [ 5, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Name := "IO_OK" ),
content := 0,
count := [ 5, 1, 3, 2 ],
mathmode := "Text",
name := "Var",
next := 76089, root := ~,
start := 76070,
stop := 76088 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " This obj\
ect is returned if everything went well and there is\nno other canonical value\
to return to indicate this.\n", count := [ 5, 1, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 1, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 76232, root := ~,
start := 76090,
stop := 76231 ) ],
count := [ 5, 1, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 76246, root := ~,
start := 76057, stop := 76245 ),
rec(
content := "\n\nThe only thing you c\
an do with these special values is to compare them\nto each other and to other\
objects.", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 1, 3, 4 ],
mathmode := "Text", name := "P",
next := 76358, root := ~,
start := 76354, stop := 76357 ),
rec( content := "\n\n",
count := [ 5, 1, 3, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 76370,
root := ~, start := 75547, stop := 76369 ),
rec( content := "\n\n", count := [ 5, 1, 3, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 5, 2, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Pickling and unpi\
ckling", count := [ 5, 2, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 5, 2, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 76428,
root := ~, start := 76386,
stop := 76427 ),
rec( content := "\n\n",
count := [ 5, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f, ob",
Name := "IO_Pickle" ),
content := 0,
count := [ 5, 2, 1, 2 ],
mathmode := "Text",
name := "Oper",
next := 76483, root := ~,
start := 76447,
stop := 76482 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_OK", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 76517,
root := ~,
start := 76498,
stop := 76516 ),
rec( content := " or ",
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_Error", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 76543,
root := ~,
start := 76521,
stop := 76542 ),
rec( content := " ",
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 2, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 76554, root := ~,
start := 76488,
stop := 76553 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n \
The argument ", count := [ 5, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 76602,
root := ~,
start := 76594,
stop := 76601 ),
rec(
content := " must be\
an open, writable ", count := [ 5, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 76640,
root := ~,
start := 76629,
stop := 76639 ),
rec(
content := "\n \
object. The object ", count := [ 5, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
b", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 76677,
root := ~,
start := 76668,
stop := 76676 ),
rec(
content := " can be \
an arbitrary ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " object.\
\n The operation ", count := [ 5, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ickles", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "Q",
next := 76748,
root := ~,
start := 76734,
stop := 76747 ),
rec( content := " or ",
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
erialises", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "Q",
next := 76769,
root := ~,
start := 76752,
stop := 76768 ),
rec(
content := " the obj\
ect\n ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
b", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 76798,
root := ~,
start := 76789,
stop := 76797 ),
rec(
content := " and wri\
tes the result into the ", count := [ 5, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 76841,
root := ~,
start := 76830,
stop := 76840 ),
rec(
content := " object\\
n ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 76865,
root := ~,
start := 76857,
stop := 76864 ),
rec(
content := ". If eve\
rything is OK, the unique value ", count := [ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_OK", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 76924,
root := ~,
start := 76905,
stop := 76923 ),
rec(
content := "\n \
is returned and otherwise the unique value ", count := [ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_Error", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 76998,
root := ~,
start := 76976,
stop := 76997 ),
rec(
content := ".\n \
The resulting byte stream can be read again using the operation\n ",
count :=
[ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IO_Unpi\
ckle" ), content := 0, count := [ 5, 2, 1, 3 ], mathmode := "Text",
name := "Ref",
next := 77105,
root := ~,
start := 77080,
stop := 77104 ),
rec(
content := " and is \
platform- and architecture\n independent. Especially the question wheth\
er a system has\n 32 bit or 64 bit wide words and the question of endia\
ness\n does not matter. \n ", count := [ 5, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 5, 2, 1, 4 ],
mathmode := "Text",
name := "P",
next := 77310,
root := ~,
start := 77306,
stop := 77309 ),
rec(
content := "\n \
Note that not all of ", count := [ 5, 2, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 5, 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 5, 2, 1, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := "'s objec\
t types are supported but it\n is relatively easy to extend the system.\
This package supports\n in particular boolean values, integers, permut\
ations, rational\n numbers, finite field elements, cyclotomics, strings\
, polynomials,\n rational functions,\n lists, records, compresse\
d vectors and matrices over finite fields\n (objects are uncompressed i\
n the byte stream but recompressed\n during unpickling), and straight l\
ine programs.\n ", count := [ 5, 2, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 5, 2, 1, 5 ],
mathmode := "Text",
name := "P",
next := 77840,
root := ~,
start := 77836,
stop := 77839 ),
rec(
content := "\n \
Self-referential objects built from records and lists are handled\n c\
orrectly and are restored completely with the same self-references\n du\
ring unpickling.\n ", count := [ 5, 2, 1, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 2, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 78036, root := ~,
start := 76559,
stop := 78035 ) ],
count := [ 5, 2, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 78050, root := ~,
start := 76430, stop := 78049 ),
rec( content := "\n\n",
count := [ 5, 2, 1, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "f",
Name := "IO_Unpickle" ),
content := 0,
count := [ 5, 2, 2, 2 ],
mathmode := "Text",
name := "Oper",
next := 78103, root := ~,
start := 78069,
stop := 78102 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_Error", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 78140,
root := ~,
start := 78118,
stop := 78139 ),
rec(
content := " or a ",
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " object \
", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 5, 2, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 78169, root := ~,
start := 78108,
stop := 78168 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n \
The argument ", count := [ 5, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 78217,
root := ~,
start := 78209,
stop := 78216 ),
rec(
content := " must be\
an open, readable ", count := [ 5, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 78255,
root := ~,
start := 78244,
stop := 78254 ),
rec(
content := "\n \
object. The operation reads from ", count := [ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 78305,
root := ~,
start := 78297,
stop := 78304 ),
rec( content := " and ",
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "u\
npickles", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "Q",
next := 78326,
root := ~,
start := 78310,
stop := 78325 ),
rec(
content := "\n \
the next object. If an error occurs, the unique value \n ",
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_Error", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 78420,
root := ~,
start := 78398,
stop := 78419 ),
rec(
content := "\n \
is returned. If the ", count := [ 5, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 78460,
root := ~,
start := 78449,
stop := 78459 ),
rec(
content := "\n \
object is at end of file, the value ", count := [ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
O_Nothing", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 78529,
root := ~,
start := 78505,
stop := 78528 ),
rec(
content := " is retu\
rned.\n Note that these two values are not picklable, because of\n \
their special meaning as return values of this operation here. \n ",
count :=
[ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 2, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 78698, root := ~,
start := 78174,
stop := 78697 ) ],
count := [ 5, 2, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 78712, root := ~,
start := 78052, stop := 78711 ),
rec( content := "\n\n",
count := [ 5, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Name := "IO_ClearPickleC\
ache" ), content := 0, count := [ 5, 2, 3, 2 ], mathmode := "Text",
name := "Func",
next := 78772, root := ~,
start := 78731,
stop := 78771 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " Nothing \
", count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 5, 2, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 78805, root := ~,
start := 78777,
stop := 78804 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n \
This function clears the ", count := [ 5, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ickle cache", count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 5, 2, 3, 3 ],
mathmode := "Text",
name := "Q",
next := 78876,
root := ~,
start := 78857,
stop := 78875 ),
rec(
content := ". This c\
ache stores all\n object pickled in the current recursive call to ",
count :=
[ 5, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IO_Pick\
le" ), content := 0, count := [ 5, 2, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 78979,
root := ~,
start := 78956,
stop := 78978 ),
rec(
content := "\n \
and is necessary to handle self-references. Usually it is not\n neces\
sary to call this function explicitly. Only in the rare\n case (that sh\
ould not happen) that a pickling or unpickling operation\n enters a bre\
ak loop which is left by the user, the pickle\n cache has to be cleared\
explicitly using this function for\n later calls to ",
count :=
[ 5, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IO_Pick\
le" ), content := 0, count := [ 5, 2, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 79376,
root := ~,
start := 79353,
stop := 79375 ),
rec( content := " and ",
count :=
[ 5, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IO_Unpi\
ckle" ), content := 0, count := [ 5, 2, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 79406,
root := ~,
start := 79381,
stop := 79405 ),
rec(
content := "\n \
to work!\n ", count := [ 5, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 5, 2, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 79442, root := ~,
start := 78810,
stop := 79441 ) ],
count := [ 5, 2, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 79456, root := ~,
start := 78714, stop := 79455 ),
rec( content := "\n\n",
count := [ 5, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 2, 0, 1 ], mathmode := "Text",
name := "Section", next := 79468,
root := ~, start := 76372, stop := 79467 ),
rec( content := "\n\n", count := [ 5, 2, 3, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes := rec( Label := "ExtPickFrame" )
,
content :=
[
rec( content := "\n",
count := [ 5, 3, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Extending the pic\
kling framework", count := [ 5, 3, 0, 2 ], mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 79552,
root := ~, start := 79501,
stop := 79551 ),
rec(
content := "\n\nThe framework can be\
extended for other ", count := [ 5, 3, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " object types as follows\
:\n\n", count := [ 5, 3, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "P",
next := 79630, root := ~,
start := 79626, stop := 79629 ),
rec(
content := "\nFor pickling, a method\
for the operation ", count := [ 5, 3, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Oper := "IO_Pickle" ),
content := 0,
count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "Ref",
next := 79695, root := ~,
start := 79672, stop := 79694 ),
rec(
content := " has\nto be installed wh\
ich does the work. If the object to be pickled has\nsubobjects, then the first\
action of the method is to call the function\n", count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "IO_AddToPickled",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "C",
next := 79870, root := ~,
start := 79841, stop := 79869 ),
rec(
content := " with the object as argu\
ment. This will put it\ninto the pickle cache and take care of self-references\
. Arbitrary\nsubobjects can then be pickled using recursive calls to the opera\
tion\n", count := [ 5, 3, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( Oper := "IO_Pickle" ),
content := 0,
count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "Ref",
next := 80076, root := ~,
start := 80053, stop := 80075 ),
rec(
content := " handing down the same "
, count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "C",
next := 80110, root := ~,
start := 80099, stop := 80109 ),
rec(
content := " object into\nthe recurs\
ion. The method must either return ", count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO_Error",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "C",
next := 80190, root := ~,
start := 80168, stop := 80189 ),
rec(
content := " in case of\nan error or\
", count := [ 5, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec( attributes := rec( ),
content :=
[
rec( content := "IO_OK",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "C",
next := 80233, root := ~,
start := 80214, stop := 80232 ),
rec(
content := " if everything goes well\
. Before returning,\na method that has called ", count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "IO_AddToPickled",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "C",
next := 80331, root := ~,
start := 80302, stop := 80330 ),
rec(
content := "\nmust call the function\
", count := [ 5, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec( attributes := rec( ),
content :=
[
rec(
content := "IO_FinalizePickle\
d", count := [ 5, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "C",
next := 80387, root := ~,
start := 80355, stop := 80386 ),
rec( content := " without\narguments ",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "under all circums\
tances", count := [ 5, 3, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 5, 3, 0, 4 ],
mathmode := "Text", name := "E",
next := 80436, root := ~,
start := 80406, stop := 80435 ),
rec(
content := ". If this call is missin\
g,\nglobal data for the pickling procedure becomes corrupt!\n\n",
count := [ 5, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 5 ],
mathmode := "Text", name := "P",
next := 80524, root := ~,
start := 80520, stop := 80523 ),
rec(
content := "\nEvery pickling method \
must first write a 4 byte magic value such that\nlater during unpickling of th\
e byte stream the right unpickling\nmethod can be called (see below). Then it \
can write arbitrary data,\nhowever, this data should be platform- and architec\
ture independent, and\nit must be possible to unpickle it later without ",
count := [ 5, 3, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "lookahead",
count := [ 5, 3, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 5 ],
mathmode := "Text", name := "Q",
next := 80865, root := ~,
start := 80849, stop := 80864 ),
rec( content := ".\n\n",
count := [ 5, 3, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 6 ],
mathmode := "Text", name := "P",
next := 80872, root := ~,
start := 80868, stop := 80871 ),
rec(
content := "\nPickling methods shoul\
d usually not go into a break loop, because\nafter leaving the user has to cal\
l ", count := [ 5, 3, 0, 6 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec(
Func := "IO_ClearPickleCache" ),
content := 0,
count := [ 5, 3, 0, 6 ],
mathmode := "Text", name := "Ref",
next := 81007, root := ~,
start := 80974, stop := 81006 ),
rec( content := "\nexplicitly!\n\n",
count := [ 5, 3, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 7 ],
mathmode := "Text", name := "P",
next := 81025, root := ~,
start := 81021, stop := 81024 ),
rec(
content := "\nUnpickling is implemen\
ted as follows: For every 4 byte magic value\nthere must be a function bound t\
o that value in the record\n", count := [ 5, 3, 0, 7 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO_Unpicklers",
count := [ 5, 3, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 7 ],
mathmode := "Text", name := "C",
next := 81179, root := ~,
start := 81152, stop := 81178 ),
rec(
content := ". If the unpickling oper\
ation ", count := [ 5, 3, 0, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( Oper := "IO_Unpickle" ),
content := 0,
count := [ 5, 3, 0, 7 ],
mathmode := "Text", name := "Ref",
next := 81234, root := ~,
start := 81209, stop := 81233 ),
rec(
content := "\nencounters that magic \
value, it calls the corresponding unpickling\nfunction. This function just get\
s one ", count := [ 5, 3, 0, 7 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 5, 3, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 7 ],
mathmode := "Text", name := "C",
next := 81351, root := ~,
start := 81340, stop := 81350 ),
rec(
content := " object as argument.\nSi\
nce the magic value is already read, it can immediately start \nwith reading a\
nd rebuilding the serialised object in memory. The method\nhas to take care to\
restore the object including its type completely.\n\n",
count := [ 5, 3, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 8 ],
mathmode := "Text", name := "P",
next := 81584, root := ~,
start := 81580, stop := 81583 ),
rec(
content := "\nIf an object type has \
subobjects, the unpickling function has to\nfirst create a skeleton of the obj\
ect without its subobjects, then\ncall ", count := [ 5, 3, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "IO_AddToUnpickled\
", count := [ 5, 3, 0, 8 ], mathmode := "Text", name := "PCDATA", root := ~ )
], count := [ 5, 3, 0, 8 ],
mathmode := "Text", name := "C",
next := 81753, root := ~,
start := 81722, stop := 81752 ),
rec( content := " on this skeleton, ",
count := [ 5, 3, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "before",
count := [ 5, 3, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 8 ],
mathmode := "Text", name := "E",
next := 81785, root := ~,
start := 81772, stop := 81784 ),
rec(
content := " unpickling\nsubobjects.\
If things are not done in this order, the handling of \nself-references down \
in the recursion will not work! An unpickling \nfunction that has called ",
count := [ 5, 3, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "IO_AddToUnpickled\
", count := [ 5, 3, 0, 8 ], mathmode := "Text", name := "PCDATA", root := ~ )
], count := [ 5, 3, 0, 8 ],
mathmode := "Text", name := "C",
next := 81988, root := ~,
start := 81957, stop := 81987 ),
rec(
content := " at the beginning\nhas t\
o call ", count := [ 5, 3, 0, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "IO_FinalizeUnpick\
led", count := [ 5, 3, 0, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 5, 3, 0, 8 ],
mathmode := "Text", name := "C",
next := 82052, root := ~,
start := 82018, stop := 82051 ),
rec(
content := " without arguments befor\
e\nreturning ", count := [ 5, 3, 0, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "under all circums\
tances", count := [ 5, 3, 0, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 5, 3, 0, 8 ],
mathmode := "Text", name := "E",
next := 82118, root := ~,
start := 82088, stop := 82117 ),
rec(
content := "! If this call is missin\
g,\nglobal data for the unpickling procedure becomes corrupt!\n\n",
count := [ 5, 3, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 9 ],
mathmode := "Text", name := "P",
next := 82208, root := ~,
start := 82204, stop := 82207 ),
rec(
content := "\nOf course, unpickling \
functions can recursively call ", count := [ 5, 3, 0, 9 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Oper := "IO_Unpickle" ),
content := 0,
count := [ 5, 3, 0, 9 ],
mathmode := "Text", name := "Ref",
next := 82287, root := ~,
start := 82262, stop := 82286 ),
rec(
content := "\nto unpickle subobjects\
. Apart from this, unpickling functions can use\narbitrary reading functions o\
n the ", count := [ 5, 3, 0, 9 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 5, 3, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 9 ],
mathmode := "Text", name := "C",
next := 82404, root := ~,
start := 82393, stop := 82403 ),
rec(
content := " object. However, they\n\
should only read sequentially and never move the current file position\npointe\
r otherwise. An unpickling function should return the newly\ncreated object or\
the value ", count := [ 5, 3, 0, 9 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO_Error",
count := [ 5, 3, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 5, 3, 0, 9 ],
mathmode := "Text", name := "C",
next := 82614, root := ~,
start := 82592, stop := 82613 ),
rec(
content := " if an error occurred.\n\
They should never go into a break loop, because after leaving the user\nhas to\
call ", count := [ 5, 3, 0, 9 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_ClearPickleCache" ),
content := 0,
count := [ 5, 3, 0, 9 ],
mathmode := "Text", name := "Ref",
next := 82753, root := ~,
start := 82720, stop := 82752 ),
rec( content := " explicitly!\n\n",
count := [ 5, 3, 0, 9 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 5, 3, 0, 10 ],
mathmode := "Text", name := "P",
next := 82771, root := ~,
start := 82767, stop := 82770 ),
rec(
content := "\nPerhaps the best way t\
o learn how to extend the framework is to\nstudy the code for the basic ",
count := [ 5, 3, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 5, 3, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 5, 3, 0, 10 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec( content := " objects in the file\n"
, count := [ 5, 3, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "pkg/io/gap/pickle\
.gi", count := [ 5, 3, 0, 10 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 5, 3, 0, 10 ],
mathmode := "Text", name := "F",
next := 82918, root := ~,
start := 82891, stop := 82917 ),
rec( content := ".\n\n",
count := [ 5, 3, 0, 10 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 5, 3, 0, 1 ], mathmode := "Text",
name := "Section", next := 82931,
root := ~, start := 79470, stop := 82930 ),
rec( content := "\n\n",
count := [ 5, 3, 0, 10 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 5, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 82943, root := ~, start := 74545,
stop := 82942 ),
rec( content := "\n\n", count := [ 5, 3, 0, 10 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 6, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Really random sources",
count := [ 6, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 6, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 82999,
root := ~, start := 82959, stop := 82998 ),
rec(
content := "\n\n This section describes s\
o called ", count := [ 6, 0, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "real random sources",
count := [ 6, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "Q", next := 83064, root := ~,
start := 83038, stop := 83063 ),
rec(
content := ". It is an\n extension to the\
library mechanism of random source objects that uses\n the devices ",
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "/dev/random",
count := [ 6, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "F", next := 83183, root := ~,
start := 83165, stop := 83182 ),
rec( content := " and ",
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "/dev/urandom",
count := [ 6, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "F", next := 83207, root := ~,
start := 83188, stop := 83206 ),
rec( content := " available\n on ",
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Linux",
count := [ 6, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "F", next := 83237, root := ~,
start := 83225, stop := 83236 ),
rec(
content := " systems (and maybe on other ope\
rating systems) providing\n random numbers that are impossible to predict. \
The idea is that such\n sources of random numbers are useful to produce unp\
redictable\n secret keys for cryptographic applications.\n\n ",
count := [ 6, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 6, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "The functions",
count := [ 6, 1, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 6, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 83537,
root := ~, start := 83505,
stop := 83536 ),
rec( content := "\n\n",
count := [ 6, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "r,dev",
Name := "RandomSource" )
, content := 0,
count := [ 6, 1, 1, 2 ],
mathmode := "Text",
name := "Meth",
next := 83591, root := ~,
start := 83552,
stop := 83590 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a real r\
andom source object or ", count := [ 6, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "C",
next := 83644,
root := ~,
start := 83633,
stop := 83643 ),
rec( content := " ",
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 6, 1, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 83655, root := ~,
start := 83592,
stop := 83654 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n The\
first argument ", count := [ 6, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "A",
next := 83705,
root := ~,
start := 83697,
stop := 83704 ),
rec(
content := " must be\
the ", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " filter \
\n ", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "I\
sRealRandomSource", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDA\
TA", root := ~ ) ], count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "C",
next := 83761,
root := ~,
start := 83736,
stop := 83760 ),
rec(
content := " and the\
second either the string\n ", count := [ 6, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
andom", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "F",
next := 83812,
root := ~,
start := 83799,
stop := 83811 ),
rec(
content := " or the \
string ", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "u\
random", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "F",
next := 83841,
root := ~,
start := 83827,
stop := 83840 ),
rec(
content := ". A real\
\n random source object is created that draws its random numbers from\n \
the kernel devices ", count := [ 6, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "/\
dev/random", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "F",
next := 83962,
root := ~,
start := 83944,
stop := 83961 ),
rec( content := " and ",
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "/\
dev/urandom", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "F",
next := 83986,
root := ~,
start := 83967,
stop := 83985 ),
rec(
content := "\n re\
spectively. Whereas ", count := [ 6, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "/\
dev/urandom", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "F",
next := 84032,
root := ~,
start := 84013,
stop := 84031 ),
rec(
content := " always \
provides random\n numbers of not guaranteed ", count := [ 6, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "q\
uality", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "Q",
next := 84100,
root := ~,
start := 84086,
stop := 84099 ),
rec(
content := ", the de\
vice ", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "/\
dev/random", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "F",
next := 84131,
root := ~,
start := 84113,
stop := 84130 ),
rec(
content := "\n me\
asures its entropy and produces guaranteed unpredictable numbers.\n However\
, it might block until enough ", count := [ 6, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
andom", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 6, 1, 1, 3 ],
mathmode := "Text",
name := "Q",
next := 84258,
root := ~,
start := 84245,
stop := 84257 ),
rec(
content := " events \
(like\n mouse movements) have been accumulated.\n", count := [ 6, 1, 1, 3 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 6, 1, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 84330, root := ~,
start := 83660,
stop := 84329 ) ],
count := [ 6, 1, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 84344, root := ~,
start := 83539, stop := 84343 ),
rec( content := "\n",
count := [ 6, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 6, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 84355,
root := ~, start := 83487, stop := 84354 ),
rec( content := "\n\n", count := [ 6, 1, 1, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 6, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 84367, root := ~, start := 82945,
stop := 84366 ),
rec( content := "\n\n", count := [ 6, 1, 1, 3 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 7, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "A client side implementat\
ion of the HTTP protocol", count := [ 7, 0, 0, 2 ], mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 7, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 84451,
root := ~, start := 84383, stop := 84450 ),
rec( content := "\n\nThe ",
count := [ 7, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 7, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 7, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 84478,
root := ~, start := 84457, stop := 84477 ),
rec(
content := " package contains an implementat\
ion of the client side\nof the HTTP protocol. The basic purpose of this is of \
course to be\nable to download data from web servers from the ",
count := [ 7, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 7, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 7, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " language. However,\nthe HTTP pr\
otocol can perform a much bigger variety of tasks.\n\n",
count := [ 7, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 7, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Functions for cli\
ent side HTTP", count := [ 7, 1, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 84799,
root := ~, start := 84750,
stop := 84798 ),
rec( content := "\n\n",
count := [ 7, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "hostname, port",
Name := "OpenHTTPConnect\
ion" ), content := 0, count := [ 7, 1, 1, 2 ], mathmode := "Text",
name := "Func",
next := 84868, root := ~,
start := 84814,
stop := 84867 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
", count := [ 7, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 7, 1, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 84898, root := ~,
start := 84869,
stop := 84897 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n The\
first argument ", count := [ 7, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
ostname", count := [ 7, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 3 ],
mathmode := "Text",
name := "A",
next := 84951,
root := ~,
start := 84936,
stop := 84950 ),
rec(
content := " must be\
a string containing the \n hostname of the server to connect. The second a\
rgument ", count := [ 7, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ort", count := [ 7, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 3 ],
mathmode := "Text",
name := "A",
next := 85055,
root := ~,
start := 85044,
stop := 85054 ),
rec(
content := "\n mu\
st be an integer in the range from ", count := [ 7, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "1\
", count := [ 7, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 7, 1, 1, 3 ],
mathmode := "Text",
name := "M",
next := 85105,
root := ~,
start := 85097,
stop := 85104 ),
rec( content := " to ",
count :=
[ 7, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "6\
5535", count := [ 7, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 3 ],
mathmode := "Text",
name := "M",
next := 85121,
root := ~,
start := 85109,
stop := 85120 ),
rec(
content := " and\n \
describes the port to connect to on the server. ", count := [ 7, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "P",
next := 85182,
root := ~,
start := 85178,
stop := 85181 ),
rec(
content := "\n Th\
e function opens a TCP/IP connection to the server and returns\n a record "
,
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
onn", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85276,
root := ~,
start := 85265,
stop := 85275 ),
rec(
content := " with th\
e following components: \n ", count := [ 7, 1, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
onn.sock", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85329,
root := ~,
start := 85313,
stop := 85328 ),
rec( content := " is ",
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85344,
root := ~,
start := 85333,
stop := 85343 ),
rec(
content := " if an e\
rror occurs and otherwise\n a ", count := [ 7, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "F\
ile", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "C",
next := 85395,
root := ~,
start := 85384,
stop := 85394 ),
rec(
content := " object \
linked to the file descriptor of the\n socket. In case of an error, the com\
ponent ", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
onn.errormsg", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85507,
root := ~,
start := 85487,
stop := 85506 ),
rec(
content := "\n co\
ntains an error message, it is otherwise empty. If everything\n went well t\
hen the component ", count := [ 7, 1, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
onn.host", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85625,
root := ~,
start := 85609,
stop := 85624 ),
rec(
content := " is the \
result from\n the host name lookup (see ", count := [ 7, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_geth\
ostbyname" ), content := 0, count := [ 7, 1, 1, 4 ], mathmode := "Text",
name := "Ref",
next := 85705,
root := ~,
start := 85675,
stop := 85704 ),
rec(
content := ") and th\
e\n component ", count := [ 7, 1, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
onn.closed", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85747,
root := ~,
start := 85729,
stop := 85746 ),
rec(
content := " is set \
to ", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 7, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 85770,
root := ~,
start := 85758,
stop := 85769 ),
rec( content := ". ",
count :=
[ 7, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 1, 5 ],
mathmode := "Text",
name := "P",
next := 85776,
root := ~,
start := 85772,
stop := 85775 ),
rec(
content := "\n No\
data is sent or received on the socket in this function.\n",
count :=
[ 7, 1, 1, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 85855, root := ~,
start := 84899,
stop := 85854 ) ],
count := [ 7, 1, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 85869, root := ~,
start := 84801, stop := 85868 ),
rec( content := "\n\n",
count := [ 7, 1, 1, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "conn, method, ur\
i, header, body, target", Name := "HTTPRequest" ), content := 0,
count := [ 7, 1, 2, 2 ],
mathmode := "Text",
name := "Func",
next := 85956, root := ~,
start := 85884,
stop := 85955 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 7, 1, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 85986, root := ~,
start := 85957,
stop := 85985 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Thi\
s function performs a complete HTTP request. The first argument must\n be a\
connection record as returned by a successful call to\n ",
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "OpenHTT\
PConnection" ), content := 0, count := [ 7, 1, 2, 3 ], mathmode := "Text",
name := "Ref",
next := 86176,
root := ~,
start := 86144,
stop := 86175 ),
rec(
content := ". The ar\
gument ", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ethod", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 86204,
root := ~,
start := 86191,
stop := 86203 ),
rec(
content := " must\n \
be a valid HTTP request ", count := [ 7, 1, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ethod", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "Q",
next := 86251,
root := ~,
start := 86238,
stop := 86250 ),
rec(
content := " in form\
of a string. \n The most common will be ", count := [ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
ET", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 86312,
root := ~,
start := 86302,
stop := 86311 ),
rec( content := ", ",
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "P\
OST", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 86325,
root := ~,
start := 86314,
stop := 86324 ),
rec( content := ", or ",
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "H\
EAD", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 86341,
root := ~,
start := 86330,
stop := 86340 ),
rec(
content := ".\n T\
he argument ", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "u\
ri", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 86370,
root := ~,
start := 86360,
stop := 86369 ),
rec(
content := " is a st\
ring containing the URI of the\n request, which is given in the first line \
of the request. This will\n usually be a relative or absolute path name giv\
en to the server.\n The argument ", count := [ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
eader", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 86580,
root := ~,
start := 86567,
stop := 86579 ),
rec(
content := " must be\
a ", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record.\
Each bound field\n of this record will we transformed into one header line\
with the\n name of the component being the key and the value the value. Al\
l\n bound values must be strings. The argument ", count := [ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ody", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 86818,
root := ~,
start := 86807,
stop := 86817 ),
rec(
content := " must ei\
ther\n be a string or ", count := [ 7, 1, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 86862,
root := ~,
start := 86850,
stop := 86861 ),
rec(
content := ". If it \
is a string, this string is sent\n away as the body of the request. If no s\
tring or an empty string is\n given, no body will be sent. The header field\
", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "C\
ontent-Length", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 87046,
root := ~,
start := 87025,
stop := 87045 ),
rec(
content := "\n is\
automatically created from the length of the string ", count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ody", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 87117,
root := ~,
start := 87106,
stop := 87116 ),
rec(
content := ".\n F\
inally, the argument ", count := [ 7, 1, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
arget", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 87158,
root := ~,
start := 87145,
stop := 87157 ),
rec(
content := " can eit\
her be ", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 87185,
root := ~,
start := 87173,
stop := 87184 ),
rec(
content := " or\n \
a string. In the latter case, the body of the request answer\n is written \
to the file with the name given in ", count := [ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
arget", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 87317,
root := ~,
start := 87304,
stop := 87316 ),
rec(
content := ". The\n \
", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ody", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 87338,
root := ~,
start := 87327,
stop := 87337 ),
rec(
content := " compone\
nt of the result will be the file name in this\n case. If ",
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
arget", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 87419,
root := ~,
start := 87406,
stop := 87418 ),
rec(
content := " is fals\
e, the full body of the answer is\n stored into the ", count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ody", count := [ 7, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 87492,
root := ~,
start := 87481,
stop := 87491 ),
rec(
content := " compone\
nt of the result. ", count := [ 7, 1, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "P",
next := 87522,
root := ~,
start := 87518,
stop := 87521 ),
rec(
content := "\n Th\
e function sends away the request and awaits the answer. If anything\n goes\
wrong during the transfer (for example if the connection is\n broken prema\
turely), then the component ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatuscode", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 87728,
root := ~,
start := 87711,
stop := 87727 ),
rec(
content := " of the\\
n resulting record is ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "0\
", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "M",
next := 87768,
root := ~,
start := 87760,
stop := 87767 ),
rec(
content := " and the\
component ", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatus", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 87800,
root := ~,
start := 87787,
stop := 87799 ),
rec(
content := " is\n \
a corresponding error message. In that case, all other fields may\n or may\
not be bound to sensible values, according to when the\n error occurred. I\
f everything goes well, then ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatuscode", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88007,
root := ~,
start := 87990,
stop := 88006 ),
rec(
content := " \n a\
nd ", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatus", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88030,
root := ~,
start := 88017,
stop := 88029 ),
rec(
content := " are bou\
nd to the corresponding values coming from\n the request answer. ",
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatuscode", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88122,
root := ~,
start := 88105,
stop := 88121 ),
rec(
content := " is tran\
sformed into a ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " \n i\
nteger. The header of the answer is parsed, transformed into\n a ",
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " record,\
and stored into the component ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
eader", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88281,
root := ~,
start := 88268,
stop := 88280 ),
rec(
content := " of the\\
n result. The ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
ody", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88316,
root := ~,
start := 88305,
stop := 88315 ),
rec(
content := " compone\
nt of the result record is set\n as described above. Finally, the ",
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
rotoversion", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88411,
root := ~,
start := 88392,
stop := 88410 ),
rec(
content := " compone\
nt\n contains the HTTP protocol version number used by the server as\n a\
string and the boolean value ", count := [ 7, 1, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
losed", count := [ 7, 1, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "K",
next := 88538,
root := ~,
start := 88525,
stop := 88537 ),
rec(
content := " indicat\
es, whether\n or not the function has detected, that the connection has bee\
n\n closed by the server. Note that by default, the connection will\n st\
ay open, at least for a certain time after the end of the\n request.",
count :=
[ 7, 1, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 2, 5 ],
mathmode := "Text",
name := "P",
next := 88773,
root := ~,
start := 88769,
stop := 88772 ),
rec(
content := "\n Se\
e the description of the global variable ", count := [ 7, 1, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Var := "HTTPTime\
outForSelect" ), content := 0, count := [ 7, 1, 2, 5 ], mathmode := "Text",
name := "Ref",
next := 88858,
root := ~,
start := 88821,
stop := 88857 ),
rec(
content := " for rul\
es how timeouts are done in\n this function.\n ", count :=
[ 7, 1, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "P",
next := 88921,
root := ~,
start := 88917,
stop := 88920 ),
rec(
content := " Note th\
at if the ", count := [ 7, 1, 2, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ethod", count := [ 7, 1, 2, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "A",
next := 88952,
root := ~,
start := 88939,
stop := 88951 ),
rec( content := " is ",
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "H\
EAD", count := [ 7, 1, 2, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "K",
next := 88967,
root := ~,
start := 88956,
stop := 88966 ),
rec(
content := ", then n\
o body\n is expected (none will be sent anyway) and the function returns\n \
immediately with empty body. Of course, the ", count := [ 7, 1, 2, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "C\
ontent-Length", count := [ 7, 1, 2, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "K",
next := 89119,
root := ~,
start := 89098,
stop := 89118 ),
rec(
content := "\n va\
lue in the header is as if it the request would be done with the\n ",
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
ET", count := [ 7, 1, 2, 6 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 2, 6 ],
mathmode := "Text",
name := "K",
next := 89205,
root := ~,
start := 89195,
stop := 89204 ),
rec(
content := " method.\
\n", count := [ 7, 1, 2, 6 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 7, 1, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 89228, root := ~,
start := 85987,
stop := 89227 ) ],
count := [ 7, 1, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 89242, root := ~,
start := 85871, stop := 89241 ),
rec( content := "\n\n",
count := [ 7, 1, 2, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Name := "HTTPTimeoutForS\
elect" ), content := 0, count := [ 7, 1, 3, 2 ], mathmode := "Text",
name := "Var",
next := 89291, root := ~,
start := 89257,
stop := 89290 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis gl\
obal variable holds a list of length two. By default, both entries\nare ",
count :=
[ 7, 1, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 7, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 3, 3 ],
mathmode := "Text",
name := "K",
next := 89395,
root := ~,
start := 89384,
stop := 89394 ),
rec(
content := " indicat\
ing that ", count := [ 7, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "HTTPReq\
uest" ), content := 0, count := [ 7, 1, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 89437,
root := ~,
start := 89412,
stop := 89436 ),
rec(
content := " should \
never\ntimeout and wait forever for an answer. Actually, the two values in\nth\
is variable are given to the ", count := [ 7, 1, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Sele\
ct" ), content := 0, count := [ 7, 1, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 89573,
root := ~,
start := 89550,
stop := 89572 ),
rec(
content := " functio\
n call\nduring I/O multiplexing. That is, the first number is in seconds and\n\
the second in milliseconds. Together they lead to a timeout for the\nHTTP requ\
est. If a timeout occurs, an error condition is triggered\nwhich returns a rec\
ord with status code ", count := [ 7, 1, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "0\
", count := [ 7, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 7, 1, 3, 3 ],
mathmode := "Text",
name := "M",
next := 89840,
root := ~,
start := 89832,
stop := 89839 ),
rec(
content := " and sta\
tus being\nthe timeout error message.", count := [ 7, 1, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 3, 4 ],
mathmode := "Text",
name := "P",
next := 89888,
root := ~,
start := 89884,
stop := 89887 ),
rec(
content := "\nYou ca\
n change the timeout by accessing the two entries of this\nwrite protected lis\
t variable directly.\n", count := [ 7, 1, 3, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 90007, root := ~,
start := 89292,
stop := 90006 ) ],
count := [ 7, 1, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 90021, root := ~,
start := 89244, stop := 90020 ),
rec( content := "\n\n",
count := [ 7, 1, 3, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "conn",
Name := "CloseHTTPConnec\
tion" ), content := 0, count := [ 7, 1, 4, 2 ], mathmode := "Text",
name := "Func",
next := 90081, root := ~,
start := 90036,
stop := 90080 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 7, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 7, 1, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 90110, root := ~,
start := 90082,
stop := 90109 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Clo\
ses the connection described by the connection record ", count :=
[ 7, 1, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "c\
onn", count := [ 7, 1, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 4, 3 ],
mathmode := "Text",
name := "A",
next := 90197,
root := ~,
start := 90186,
stop := 90196 ),
rec(
content := ".\n N\
o error can possibly occur.\n", count := [ 7, 1, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 90246, root := ~,
start := 90111,
stop := 90245 ) ],
count := [ 7, 1, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 90260, root := ~,
start := 90023, stop := 90259 ),
rec( content := "\n\n",
count := [ 7, 1, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "hostname, port, \
method, uri, header, body, target", Name := "SingleHTTPRequest" ),
content := 0,
count := [ 7, 1, 5, 2 ],
mathmode := "Text",
name := "Func",
next := 90370, root := ~,
start := 90275,
stop := 90369 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a record\
", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 7, 1, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 90400, root := ~,
start := 90371,
stop := 90399 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n The\
arguments are as the corresponding ones in the functions \n ",
count :=
[ 7, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "OpenHTT\
PConnection" ), content := 0, count := [ 7, 1, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 90519,
root := ~,
start := 90487,
stop := 90518 ),
rec( content := " and ",
count :=
[ 7, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "HTTPReq\
uest" ), content := 0, count := [ 7, 1, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 90549,
root := ~,
start := 90524,
stop := 90548 ),
rec(
content := "\n re\
spectively. This function opens an HTTP connection, tries\n a single HTTP r\
equest and immediately closes the connection\n again. The result is as for \
the ", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "HTTPReq\
uest" ), content := 0, count := [ 7, 1, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 90739,
root := ~,
start := 90714,
stop := 90738 ),
rec(
content := "\n fu\
nction. If an error occurs during the opening of the connection,\n the ",
count :=
[ 7, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatuscode", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 5, 3 ],
mathmode := "Text",
name := "K",
next := 90836,
root := ~,
start := 90819,
stop := 90835 ),
rec(
content := " value o\
f the result is ", count := [ 7, 1, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "0\
", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 7, 1, 5, 3 ],
mathmode := "Text",
name := "M",
next := 90868,
root := ~,
start := 90860,
stop := 90867 ),
rec(
content := " and the\
error\n message is stored in the ", count := [ 7, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
tatus", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 7, 1, 5, 3 ],
mathmode := "Text",
name := "K",
next := 90925,
root := ~,
start := 90912,
stop := 90924 ),
rec(
content := " compone\
nt of the result.\n", count := [ 7, 1, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 90965, root := ~,
start := 90401,
stop := 90964 ) ],
count := [ 7, 1, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 90979, root := ~,
start := 90262, stop := 90978 ),
rec(
content := "\n\nThe previous functio\
n allows for a very simple implementation of a\nfunction that checks, whether \
your current ", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 7, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 7, 1, 5, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " installation is\nup to \
date:\n\n", count := [ 7, 1, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Name := "CheckForUpdates\
" ), content := 0, count := [ 7, 1, 6, 2 ], mathmode := "Text",
name := "Func",
next := 91176, root := ~,
start := 91139,
stop := 91175 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 7, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 7, 1, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 91205, root := ~,
start := 91177,
stop := 91204 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Thi\
s function accesses a web page in St. Andrews and runs some\n ",
count :=
[ 7, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 6, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " code fr\
om there. This code knows all the currently released\n versions of ",
count :=
[ 7, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 6, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " and its\
packages. It prints out a summary and\n possibly suggests upgrades. If you\
do not want to executed\n code downloaded from the internet, then do not c\
all this function.\n ", count := [ 7, 1, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 6, 4 ],
mathmode := "Text",
name := "P",
next := 91567,
root := ~,
start := 91563,
stop := 91566 ),
rec(
content := "\n Mo\
re concretely, the page accessed is\n ", count := [ 7, 1, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
ttp://www.gap-system.org/Download/upgrade.html", count := [ 7, 1, 6, 4 ],
mathmode := \
"Text", name := "PCDATA", root := ~ ) ], count := [ 7, 1, 6, 4 ],
mathmode := "Text",
name := "URL",
next := 91672,
root := ~,
start := 91614,
stop := 91671 ),
rec(
content := " and the\
\n code executed is a single call to the function ", count :=
[ 7, 1, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "S\
uggestUpgrades", count := [ 7, 1, 6, 4 ], mathmode := "Text", name := "PCDATA"
,
root := ~ )
],
count :=
[ 7, 1, 6, 4 ],
mathmode := "Text",
name := "C",
next := 91754,
root := ~,
start := 91732,
stop := 91753 ),
rec(
content := " \n f\
unction in the ", count := [ 7, 1, 6, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 6, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 6, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " library\
.\n", count := [ 7, 1, 6, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 91805, root := ~,
start := 91206,
stop := 91804 ) ],
count := [ 7, 1, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 91819, root := ~,
start := 91126, stop := 91818 ),
rec( content := "\n\n",
count := [ 7, 1, 6, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "URL",
Name := "ReadWeb" ),
content := 0,
count := [ 7, 1, 7, 2 ],
mathmode := "Text",
name := "Func",
next := 91866, root := ~,
start := 91834,
stop := 91865 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 7, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 7, 1, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 91895, root := ~,
start := 91867,
stop := 91894 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Thi\
s function downloads the file from the given uniform resource\n locator ",
count :=
[ 7, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "U\
RL", count := [ 7, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 7, 3 ],
mathmode := "Text",
name := "A",
next := 92001,
root := ~,
start := 91991,
stop := 92000 ),
rec(
content := " using t\
he HTTP protocol \n and reads the contents into ", count := [ 7, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 7, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " using\n\
", count := [ 7, 1, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "Read" ), content := 0, count := [ 7, 1, 7, 3 ],
mathmode := "Text",
name := "Ref",
next := 92108,
root := ~,
start := 92075,
stop := 92107 ),
rec(
content := ".\n "
,
count :=
[ 7, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 7, 1, 7, 4 ],
mathmode := "Text",
name := "P",
next := 92118,
root := ~,
start := 92114,
stop := 92117 ),
rec(
content := "\n No\
te that this can execute arbitrary code on your machine with the\n privileg\
es of the ", count := [ 7, 1, 7, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 7, 1, 7, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 7, 1, 7, 4 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " job run\
ning, so you should be very careful\n what files you download and execute. \
You have been warned!\n", count := [ 7, 1, 7, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 7, 1, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 92338, root := ~,
start := 91896,
stop := 92337 ) ],
count := [ 7, 1, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 92352, root := ~,
start := 91821, stop := 92351 ),
rec( content := "\n\n",
count := [ 7, 1, 7, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 7, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 92364,
root := ~, start := 84736, stop := 92363 ),
rec( content := "\n\n", count := [ 7, 1, 7, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 7, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 92376, root := ~, start := 84369,
stop := 92375 ),
rec( content := "\n\n", count := [ 7, 1, 7, 4 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n", count := [ 8, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Background jobs using for\
k", count := [ 8, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~
) ], count := [ 8, 0, 0, 2 ],
mathmode := "Text", name := "Heading",
next := 92433, root := ~, start := 92388,
stop := 92432 ),
rec(
content := "\n\nThis chapter describes a way\
to use multi-processor or multi-core machines\nfrom within ",
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 8, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec( content := ". In its current version the ",
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 8, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " system is a single\nthreaded an\
d single process system. However, modern operating systems\nallow, via the ",
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fork",
count := [ 8, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "C", next := 92677, root := ~,
start := 92666, stop := 92676 ),
rec(
content := " system call, to replicate a com\
plete process\non the same machine relatively efficiently. That is, at first a\
fter\na ", count := [ 8, 0, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fork",
count := [ 8, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "C", next := 92804, root := ~,
start := 92793, stop := 92803 ),
rec(
content := " the two processes actually use \
the same physical memory\nsuch that not much copying needs to be done. The chi\
ld process is in \nexactly the same state as the parent process, sharing open \
files, network \nconnections and the complete status of the workspace. However\
, whenever\na page of memory is written, it is then automatically copied using\
new,\nadditional physical memory, such that it behaves like a completely sepa\
rate\nprocess. This method is called ", count := [ 8, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "copy-on-write",
count := [ 8, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "Q", next := 93277, root := ~,
start := 93257, stop := 93276 ),
rec( content := ".\n\n",
count := [ 8, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 8, 0, 0, 4 ], mathmode := "Text",
name := "P", next := 93284, root := ~,
start := 93280, stop := 93283 ),
rec(
content := "\nThus this is a method to paral\
lelise certain computations. Note however, that\nfrom the point of time when t\
he ", count := [ 8, 0, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "fork",
count := [ 8, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 4 ], mathmode := "Text",
name := "C", next := 93406, root := ~,
start := 93395, stop := 93405 ),
rec(
content := " has occurred, all further \ncom\
munication between the two processes has to be realised via pipes\nor even fil\
es.\n\n", count := [ 8, 0, 0, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "P", next := 93523, root := ~,
start := 93519, stop := 93522 ),
rec(
content := "\nThe operations and methods des\
cribed in this chapter help to use ", count := [ 8, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 8, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := " in this\nway and implement cert\
ain ", count := [ 8, 0, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "skeletons",
count := [ 8, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "Q", next := 93645, root := ~,
start := 93629, stop := 93644 ),
rec(
content := " of parallel programming to\nmak\
e these readily available in ", count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 8, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec(
content := ". Note that this implementation\\
nhas its severe limitations and should probably eventually be replaced\nby a p\
roper multi-threaded version of ", count := [ 8, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 8, 0, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "Package", next := 23, root := ~,
start := 1, stop := 22 ),
rec( content := ".\n\n",
count := [ 8, 0, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 8, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Background jobs",
count := [ 8, 1, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 8, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 93902,
root := ~, start := 93868,
stop := 93901 ),
rec(
content := "\n\nOne creates a backgr\
ound job with the following operation:\n\n", count := [ 8, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "fun, args [,opt]\
", Name := "BackgroundJobByFork" ), content := 0, count := [ 8, 1, 1, 2 ],
mathmode := "Text",
name := "Oper",
next := 94034, root := ~,
start := 93977,
stop := 94033 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "a backgro\
und job object or ", count := [ 8, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "K",
next := 94082,
root := ~,
start := 94071,
stop := 94081 ) ],
count := [ 8, 1, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 94092, root := ~,
start := 94035,
stop := 94091 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration creates a background job using ", count := [ 8, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_fork\
" ), content := 0, count := [ 8, 1, 1, 3 ], mathmode := "Text",
name := "Ref",
next := 94174,
root := ~,
start := 94153,
stop := 94173 ),
rec(
content := "\nwhich \
starts up as an identical copy of the currently running ",
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := "\nproces\
s. In this child process the function ", count := [ 8, 1, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "A",
next := 94297,
root := ~,
start := 94287,
stop := 94296 ),
rec(
content := " is call\
ed\nwith the argument list ", count := [ 8, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "A",
next := 94342,
root := ~,
start := 94331,
stop := 94341 ),
rec(
content := ". The th\
ird argument ", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "A",
next := 94373,
root := ~,
start := 94363,
stop := 94372 ),
rec(
content := "\nmust b\
e a record for options. The operation returns either an object\nrepresenting t\
he background job or ", count := [ 8, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 1, 3 ],
mathmode := "Text",
name := "K",
next := 94489,
root := ~,
start := 94478,
stop := 94488 ),
rec(
content := " if the \
startup did not\nwork.\n", count := [ 8, 1, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "P",
next := 94523,
root := ~,
start := 94519,
stop := 94522 ),
rec(
content := "\nThis o\
peration automatically sets up two pipes for communication with\nthe child pro\
cess. This is in particular used to report the result of\nthe function call to\
", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "A",
next := 94695,
root := ~,
start := 94685,
stop := 94694 ),
rec(
content := " back to\
the parent. However, if called\nwithout the option ", count := [ 8, 1, 1, 4 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
erminateImmediately", count := [ 8, 1, 1, 4 ], mathmode := "Text",
name := "PCD\
ATA", root := ~ ) ], count := [ 8, 1, 1, 4 ], mathmode := "Text",
name := "C",
next := 94781,
root := ~,
start := 94754,
stop := 94780 ),
rec(
content := " (see be\
low) the child\nprocess stays alive even after the completion of ",
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "A",
next := 94863,
root := ~,
start := 94853,
stop := 94862 ),
rec(
content := " and one\
\ncan submit further argument lists for subsequent calls to ",
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "A",
next := 94940,
root := ~,
start := 94930,
stop := 94939 ),
rec(
content := ".\nOf co\
urse, these additional argument lists will have to be sent \nover a pipe to th\
e child process. A special case is if the argument\n", count := [ 8, 1, 1, 4 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "A",
next := 95086,
root := ~,
start := 95075,
stop := 95085 ),
rec(
content := " is equa\
l to ", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "K",
next := 95110,
root := ~,
start := 95099,
stop := 95109 ),
rec(
content := ", in thi\
s case the child process is\nstarted but does not automatically call ",
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 4 ],
mathmode := "Text",
name := "A",
next := 95196,
root := ~,
start := 95186,
stop := 95195 ),
rec(
content := " but rat\
her\nwaits in an idle state until an argument list is submitted via the\npipe \
using the ", count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "bgjob"
,
Oper := "Submit"\
), content := 0, count := [ 8, 1, 1, 4 ], mathmode := "Text", name := "Ref",
next := 95324,
root := ~,
start := 95290,
stop := 95323 ),
rec(
content := " operati\
on described below.\n", count := [ 8, 1, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "P",
next := 95356,
root := ~,
start := 95352,
stop := 95355 ),
rec(
content := "\nThere \
are two components defined which can be bound in the options record\n",
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "A",
next := 95441,
root := ~,
start := 95431,
stop := 95440 ),
rec(
content := ". One is\
", count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
erminateImmediately", count := [ 8, 1, 1, 5 ], mathmode := "Text",
name := "PCD\
ATA", root := ~ ) ], count := [ 8, 1, 1, 5 ], mathmode := "Text",
name := "C",
next := 95477,
root := ~,
start := 95450,
stop := 95476 ),
rec(
content := ", if thi\
s is bound to ", count := [ 8, 1, 1, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "K",
next := 95510,
root := ~,
start := 95499,
stop := 95509 ),
rec(
content := "\nthen t\
he child process immediately terminates after the function ",
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "A",
next := 95586,
root := ~,
start := 95576,
stop := 95585 ),
rec(
content := "\nreturn\
s its result. In this case, no pipe for communication from parent\nto child is\
created since it would never be used. Note that in this case\none can still g\
et the result of the function ", count := [ 8, 1, 1, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "A",
next := 95787,
root := ~,
start := 95777,
stop := 95786 ),
rec(
content := " using t\
he\n", count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "bgjob"
,
Oper := "Pickup"\
), content := 0, count := [ 8, 1, 1, 5 ], mathmode := "Text", name := "Ref",
next := 95832,
root := ~,
start := 95798,
stop := 95831 ),
rec(
content := " operati\
on described below, even when\nthe child has already terminated, since the res\
ult is first transmitted\nback to the parent before termination.\n",
count :=
[ 8, 1, 1, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 95995, root := ~,
start := 94093,
stop := 95994 ) ],
count := [ 8, 1, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 96009, root := ~,
start := 93964, stop := 96008 ),
rec(
content := "\n\nThe following operat\
ions are available to deal with background job\nobjects:\n\n",
count := [ 8, 1, 1, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "job",
Label := "bgjob",
Name := "IsIdle" ),
content := 0,
count := [ 8, 1, 2, 2 ],
mathmode := "Text",
name := "Oper",
next := 96146, root := ~,
start := 96101,
stop := 96145 ),
rec( attributes := rec( ),
content :=
[
rec(
attributes := rec( )
,
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96167,
root := ~,
start := 96156,
stop := 96166 ),
rec( content := ", ",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96181,
root := ~,
start := 96169,
stop := 96180 ),
rec( content := " or ",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96196,
root := ~,
start := 96185,
stop := 96195 ) ],
count := [ 8, 1, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 96206, root := ~,
start := 96147,
stop := 96205 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration checks whether or not the background job represented by\nthe object ",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
ob", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "A",
next := 96313,
root := ~,
start := 96303,
stop := 96312 ),
rec(
content := " has alr\
eady finished the function call to its\nworker function and is now idle. If so\
, ", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96411,
root := ~,
start := 96400,
stop := 96410 ),
rec(
content := " is retu\
rned. If it\nis still running and working on the worker function, ",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96496,
root := ~,
start := 96484,
stop := 96495 ),
rec(
content := " is retu\
rned.\nIf the background job has already terminated altogether, this operation\
\nreturns ", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96601,
root := ~,
start := 96590,
stop := 96600 ),
rec(
content := ". Note t\
hat if a child process terminates automatically\nafter the first completion of\
its worker function and sending the result,\nthen the first call to ",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "bgjob"
,
Oper := "IsIdle"\
), content := 0, count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "Ref",
next := 96788,
root := ~,
start := 96754,
stop := 96787 ),
rec(
content := " \nafter\
completion will return\n", count := [ 8, 1, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96830,
root := ~,
start := 96819,
stop := 96829 ),
rec(
content := " to indi\
cate successful completion and all subsequent calls\nwill return ",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "K",
next := 96913,
root := ~,
start := 96902,
stop := 96912 ),
rec( content := ".\n",
count :=
[ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 96929, root := ~,
start := 96207,
stop := 96928 ) ],
count := [ 8, 1, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 96943, root := ~,
start := 96088, stop := 96942 ),
rec( content := "\n\n",
count := [ 8, 1, 2, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "job",
Name := "HasTerminated"
), content := 0,
count := [ 8, 1, 3, 2 ],
mathmode := "Text",
name := "Oper",
next := 96996, root := ~,
start := 96958,
stop := 96995 ),
rec( attributes := rec( ),
content :=
[
rec(
attributes := rec( )
,
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "K",
next := 97017,
root := ~,
start := 97006,
stop := 97016 ),
rec( content := " or ",
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 8, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "K",
next := 97033,
root := ~,
start := 97021,
stop := 97032 ) ],
count := [ 8, 1, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 97043, root := ~,
start := 96997,
stop := 97042 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration checks whether or not the background job represented by\nthe object ",
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
ob", count := [ 8, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "A",
next := 97150,
root := ~,
start := 97140,
stop := 97149 ),
rec(
content := " has alr\
eady terminated. \nIf so, ", count := [ 8, 1, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "K",
next := 97194,
root := ~,
start := 97183,
stop := 97193 ),
rec(
content := " is retu\
rned, if not, ", count := [ 8, 1, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 8, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 3, 3 ],
mathmode := "Text",
name := "K",
next := 97228,
root := ~,
start := 97216,
stop := 97227 ),
rec(
content := " is retu\
rned.\n", count := [ 8, 1, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 97256, root := ~,
start := 97044,
stop := 97255 ) ],
count := [ 8, 1, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 97270, root := ~,
start := 96945, stop := 97269 ),
rec( content := "\n\n",
count := [ 8, 1, 3, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "job",
Name := "WaitUntilIdle"
), content := 0,
count := [ 8, 1, 4, 2 ],
mathmode := "Text",
name := "Oper",
next := 97323, root := ~,
start := 97285,
stop := 97322 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "the resul\
t of the worker function or ", count := [ 8, 1, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 4, 3 ],
mathmode := "Text",
name := "K",
next := 97381,
root := ~,
start := 97370,
stop := 97380 ) ],
count := [ 8, 1, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 97391, root := ~,
start := 97324,
stop := 97390 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration waits until the worker function of the background job \n",
count :=
[ 8, 1, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
ob", count := [ 8, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 4, 3 ],
mathmode := "Text",
name := "A",
next := 97486,
root := ~,
start := 97476,
stop := 97485 ),
rec(
content := " has fin\
ished and the job is idle. It then returns the result\nof the worker function,\
which has automatically been transmitted to\nthe parent process. If the child\
process has died before completion\n", count := [ 8, 1, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 4, 3 ],
mathmode := "Text",
name := "K",
next := 97695,
root := ~,
start := 97684,
stop := 97694 ),
rec(
content := " is retu\
rned.\n", count := [ 8, 1, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 97723, root := ~,
start := 97392,
stop := 97722 ) ],
count := [ 8, 1, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 97737, root := ~,
start := 97272, stop := 97736 ),
rec( content := "\n\n",
count := [ 8, 1, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "job",
Label := "bgjob",
Name := "Pickup" ),
content := 0,
count := [ 8, 1, 5, 2 ],
mathmode := "Text",
name := "Oper",
next := 97797, root := ~,
start := 97752,
stop := 97796 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "the resul\
t of the worker function or ", count := [ 8, 1, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 5, 3 ],
mathmode := "Text",
name := "K",
next := 97855,
root := ~,
start := 97844,
stop := 97854 ) ],
count := [ 8, 1, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 97865, root := ~,
start := 97798,
stop := 97864 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration does the same as ", count := [ 8, 1, 5, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "WaitUnt\
ilIdle" ), content := 0, count := [ 8, 1, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 97939,
root := ~,
start := 97912,
stop := 97938 ),
rec( content := ".\n",
count :=
[ 8, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 97955, root := ~,
start := 97866,
stop := 97954 ) ],
count := [ 8, 1, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 97969, root := ~,
start := 97739, stop := 97968 ),
rec( content := "\n\n",
count := [ 8, 1, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "job, args",
Label := "bgjob",
Name := "Submit" ),
content := 0,
count := [ 8, 1, 6, 2 ],
mathmode := "Text",
name := "Oper",
next := 98035, root := ~,
start := 97984,
stop := 98034 ),
rec( attributes := rec( ),
content :=
[
rec(
attributes := rec( )
,
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "K",
next := 98056,
root := ~,
start := 98045,
stop := 98055 ),
rec( content := " or ",
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "K",
next := 98071,
root := ~,
start := 98060,
stop := 98070 ) ],
count := [ 8, 1, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 98081, root := ~,
start := 98036,
stop := 98080 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis su\
bmits another argument list ", count := [ 8, 1, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "A",
next := 98142,
root := ~,
start := 98131,
stop := 98141 ),
rec(
content := " for ano\
ther call to the\nworker function in the background job ",
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
ob", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "A",
next := 98215,
root := ~,
start := 98205,
stop := 98214 ),
rec(
content := ". It is \
an error if\neither the background job has already terminated or if it is stil\
l busy\nworking on the previous argument list. That is, one must only submit\n\
another argument in a situation when ", count := [ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "bgjob"
,
Oper := "IsIdle"\
), content := 0, count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "Ref",
next := 98447,
root := ~,
start := 98413,
stop := 98446 ),
rec(
content := " \nwould\
return\n", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "K",
next := 98473,
root := ~,
start := 98462,
stop := 98472 ),
rec(
content := ". This i\
s for example the case directly after a successful\ncall to ",
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "bgjob"
,
Oper := "Pickup"\
), content := 0, count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "Ref",
next := 98574,
root := ~,
start := 98540,
stop := 98573 ),
rec(
content := " or i\n"
,
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "WaitUnt\
ilIdle" ), content := 0, count := [ 8, 1, 6, 3 ], mathmode := "Text",
name := "Ref",
next := 98607,
root := ~,
start := 98580,
stop := 98606 ),
rec(
content := " which d\
id\nnot return ", count := [ 8, 1, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "K",
next := 98640,
root := ~,
start := 98629,
stop := 98639 ),
rec(
content := ", unless\
the background job was created with the\n", count := [ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
erminateImmediately", count := [ 8, 1, 6, 3 ], mathmode := "Text",
name := "PCD\
ATA", root := ~ ) ], count := [ 8, 1, 6, 3 ], mathmode := "Text",
name := "C",
next := 98716,
root := ~,
start := 98689,
stop := 98715 ),
rec(
content := " option \
set to ", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "K",
next := 98742,
root := ~,
start := 98731,
stop := 98741 ),
rec( content := ".\n",
count :=
[ 8, 1, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 1, 6, 4 ],
mathmode := "Text",
name := "P",
next := 98748,
root := ~,
start := 98744,
stop := 98747 ),
rec(
content := "\nThis o\
peration returns immediately after submission, when the new argument \nlist ha\
s been sent to the child process through a pipe. In particular, \nit does not \
await completion of the worker function for the new\nargument list.\n",
count :=
[ 8, 1, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 98990, root := ~,
start := 98082,
stop := 98989 ) ],
count := [ 8, 1, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 99004, root := ~,
start := 97971, stop := 99003 ),
rec( content := "\n\n",
count := [ 8, 1, 6, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "job",
Label := "bgjob",
Name := "Kill" ),
content := 0,
count := [ 8, 1, 7, 2 ],
mathmode := "Text",
name := "Oper",
next := 99062, root := ~,
start := 99019,
stop := 99061 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "nothing",
count :=
[ 8, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 99089, root := ~,
start := 99063,
stop := 99088 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis ki\
lls the background job represented by the object ", count := [ 8, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
ob", count := [ 8, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 7, 3 ],
mathmode := "Text",
name := "A",
next := 99170,
root := ~,
start := 99160,
stop := 99169 ),
rec(
content := "\nwith i\
mmediate effect. No more results can be expected from it.\nNote that unless on\
e has created the background job with the\n", count := [ 8, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
erminateImmediately", count := [ 8, 1, 7, 3 ], mathmode := "Text",
name := "PCD\
ATA", root := ~ ) ], count := [ 8, 1, 7, 3 ], mathmode := "Text",
name := "C",
next := 99323,
root := ~,
start := 99296,
stop := 99322 ),
rec(
content := " option \
set to ", count := [ 8, 1, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 1, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 1, 7, 3 ],
mathmode := "Text",
name := "K",
next := 99349,
root := ~,
start := 99338,
stop := 99348 ),
rec(
content := " one alw\
ays\nhas to call ", count := [ 8, 1, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "bgjob"
,
Oper := "Kill" )
, content := 0,
count :=
[ 8, 1, 7, 3 ],
mathmode := "Text",
name := "Ref",
next := 99405,
root := ~,
start := 99373,
stop := 99404 ),
rec(
content := " on a ba\
ckground job eventually\nfor cleanup purposes. Otherwise, the background job a\
nd the connecting\npipes remain alive until the parent ", count :=
[ 8, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 8, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 1, 7, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " process\
terminates.\n", count := [ 8, 1, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 1, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 99584, root := ~,
start := 99090,
stop := 99583 ) ],
count := [ 8, 1, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 99598, root := ~,
start := 99006, stop := 99597 ),
rec( content := "\n\n",
count := [ 8, 1, 7, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 99610,
root := ~, start := 93858, stop := 99609 ),
rec( content := "\n\n\n",
count := [ 8, 1, 7, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 8, 2, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Parallel programm\
ing skeletons", count := [ 8, 2, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 8, 2, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 99672,
root := ~, start := 99623,
stop := 99671 ),
rec(
content := "\n\nIn this section we d\
ocument the operations for the available\nskeletons. For a general description\
of these ideas see other\nsources. \n\n", count := [ 8, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "jobs, args [,opt\
]", Name := "ParTakeFirstResultByFork" ), content := 0,
count := [ 8, 2, 1, 2 ],
mathmode := "Text",
name := "Oper",
next := 99884, root := ~,
start := 99821,
stop := 99883 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "a list of\
results or ", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "K",
next := 99926,
root := ~,
start := 99915,
stop := 99925 ) ],
count := [ 8, 2, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 99936, root := ~,
start := 99885,
stop := 99935 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
obs", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 99975,
root := ~,
start := 99964,
stop := 99974 ),
rec(
content := " must be\
a list of ", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " functio\
ns and the\nargument ", count := [ 8, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 100038,
root := ~,
start := 100027,
stop := 100037 ),
rec(
content := " a list \
of the same length containing argument\nlists with which the job functions can\
be called. This operation\nstarts up a background job using ",
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ork", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "C",
next := 100194,
root := ~,
start := 100183,
stop := 100193 ),
rec(
content := " for eac\
h of the functions\nin ", count := [ 8, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
obs", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 100235,
root := ~,
start := 100224,
stop := 100234 ),
rec(
content := ", calls \
it with the corresponding argument list in\n", count := [ 8, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "A",
next := 100297,
root := ~,
start := 100286,
stop := 100296 ),
rec(
content := ". As soo\
n as any of the background jobs finishes with a result,\n",
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParTake\
FirstResultByFork" ), content := 0, count := [ 8, 2, 1, 3 ],
mathmode := "Text",
name := "Ref",
next := 100399,
root := ~,
start := 100361,
stop := 100398 ),
rec(
content := " termina\
tes all other jobs and\nreports the results found so far. Note that it can hap\
pen that two\njobs finish ", count := [ 8, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
t the same time", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA\
", root := ~ ) ], count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "Q",
next := 100532,
root := ~,
start := 100509,
stop := 100531 ),
rec(
content := " in the \
sense that both results \nare received before all other jobs could be terminat\
ed. Therefore\nthe result of ", count := [ 8, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParTake\
FirstResultByFork" ), content := 0, count := [ 8, 2, 1, 3 ],
mathmode := "Text",
name := "Ref",
next := 100683,
root := ~,
start := 100645,
stop := 100682 ),
rec(
content := " is a li\
st, in which\nposition ", count := [ 8, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "M",
next := 100721,
root := ~,
start := 100713,
stop := 100720 ),
rec(
content := " is boun\
d if and only if job number ", count := [ 8, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
", count := [ 8, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 8, 2, 1, 3 ],
mathmode := "Text",
name := "M",
next := 100765,
root := ~,
start := 100757,
stop := 100764 ),
rec(
content := " returne\
d\na result. So in the result at least one entry is bound but it is possible\n\
that more than one entry is bound.\n", count := [ 8, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "P",
next := 100888,
root := ~,
start := 100884,
stop := 100887 ),
rec(
content := "\nYou ca\
n specify an overall timeout to give up the whole computation\nif no job finis\
hes by setting the ", count := [ 8, 2, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
imeOut", count := [ 8, 2, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "C",
next := 101005,
root := ~,
start := 100991,
stop := 101004 ),
rec(
content := " compone\
nt of the\noptions record ", count := [ 8, 2, 1, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "A",
next := 101048,
root := ~,
start := 101038,
stop := 101047 ),
rec(
content := ". In thi\
s case you have to set it to\na record with two components ",
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_sec", count := [ 8, 2, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "C",
next := 101127,
root := ~,
start := 101114,
stop := 101126 ),
rec( content := " and ",
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_usec", count := [ 8, 2, 1, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "C",
next := 101146,
root := ~,
start := 101132,
stop := 101145 ),
rec(
content := " which\n\
are seconds and microseconds respectively, exactly as returned by the\n",
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_gett\
imeofday" ), content := 0, count := [ 8, 2, 1, 4 ], mathmode := "Text",
name := "Ref",
next := 101252,
root := ~,
start := 101223,
stop := 101251 ),
rec(
content := " functio\
n. In the case of timeout \nan empty list is returned.\n",
count :=
[ 8, 2, 1, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 2, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 101328, root := ~,
start := 99937,
stop := 101327 ) ],
count := [ 8, 2, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 101342, root := ~,
start := 99808, stop := 101341 ),
rec( content := "\n\n",
count := [ 8, 2, 1, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "jobs, args [,opt\
]", Name := "ParDoByFork" ), content := 0, count := [ 8, 2, 2, 2 ],
mathmode := "Text",
name := "Oper",
next := 101407, root := ~,
start := 101357,
stop := 101406 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "a list of\
results or ", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "K",
next := 101449,
root := ~,
start := 101438,
stop := 101448 ) ],
count := [ 8, 2, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 101459, root := ~,
start := 101408,
stop := 101458 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
obs", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 101498,
root := ~,
start := 101487,
stop := 101497 ),
rec(
content := " must be\
a list of ", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " functio\
ns and the\nargument ", count := [ 8, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 101561,
root := ~,
start := 101550,
stop := 101560 ),
rec(
content := " a list \
of the same length containing argument\nlists with which the job functions can\
be called. This operation\nstarts up a background job using ",
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ork", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "C",
next := 101717,
root := ~,
start := 101706,
stop := 101716 ),
rec(
content := " for eac\
h of the functions\nin ", count := [ 8, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "j\
obs", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 101758,
root := ~,
start := 101747,
stop := 101757 ),
rec(
content := ", calls \
it with the corresponding argument list in\n", count := [ 8, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
rgs", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 101820,
root := ~,
start := 101809,
stop := 101819 ),
rec(
content := ". As soo\
n as all of the background jobs finish with a result,\n", count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParDoBy\
Fork" ), content := 0, count := [ 8, 2, 2, 3 ], mathmode := "Text",
name := "Ref",
next := 101907,
root := ~,
start := 101882,
stop := 101906 ),
rec(
content := " reports\
the results found. \nTherefore\nthe result of ", count := [ 8, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParDoBy\
Fork" ), content := 0, count := [ 8, 2, 2, 3 ], mathmode := "Text",
name := "Ref",
next := 101985,
root := ~,
start := 101960,
stop := 101984 ),
rec(
content := " is a li\
st, in which\nposition ", count := [ 8, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "M",
next := 102023,
root := ~,
start := 102015,
stop := 102022 ),
rec(
content := " is boun\
d to the result that job number ", count := [ 8, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 8, 2, 2, 3 ],
mathmode := "Text",
name := "M",
next := 102071,
root := ~,
start := 102063,
stop := 102070 ),
rec(
content := " returne\
d.\n", count := [ 8, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "P",
next := 102086,
root := ~,
start := 102082,
stop := 102085 ),
rec(
content := "\nYou ca\
n specify an overall timeout to stop the whole computation\nif not all jobs fi\
nish in time by setting the ", count := [ 8, 2, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
imeOut", count := [ 8, 2, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "C",
next := 102212,
root := ~,
start := 102198,
stop := 102211 ),
rec(
content := " compone\
nt of the\noptions record ", count := [ 8, 2, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 2, 2, 4 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "A",
next := 102255,
root := ~,
start := 102245,
stop := 102254 ),
rec(
content := ". In thi\
s case you have to set it to\na record with two components ",
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_sec", count := [ 8, 2, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "C",
next := 102334,
root := ~,
start := 102321,
stop := 102333 ),
rec( content := " and ",
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
v_usec", count := [ 8, 2, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "C",
next := 102353,
root := ~,
start := 102339,
stop := 102352 ),
rec(
content := " which\n\
are seconds and microseconds respectively, exactly as returned by the\n",
count :=
[ 8, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_gett\
imeofday" ), content := 0, count := [ 8, 2, 2, 4 ], mathmode := "Text",
name := "Ref",
next := 102459,
root := ~,
start := 102430,
stop := 102458 ),
rec(
content := " functio\
n. In the case of timeout \na list is returned in which the positions correspo\
nding to those\njobs that have already finished are bound to the respective re\
sults\nand the other positions are unbound.\n", count := [ 8, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 2, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 102678, root := ~,
start := 101460,
stop := 102677 ) ],
count := [ 8, 2, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 102692, root := ~,
start := 101344, stop := 102691 ),
rec( content := "\n\n",
count := [ 8, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "l, worker [,opt]\
", Name := "ParListByFork" ), content := 0, count := [ 8, 2, 3, 2 ],
mathmode := "Text",
name := "Oper",
next := 102758, root := ~,
start := 102707,
stop := 102757 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "a list of\
results or ", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "K",
next := 102800,
root := ~,
start := 102789,
stop := 102799 ) ],
count := [ 8, 2, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 102810, root := ~,
start := 102759,
stop := 102809 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis is\
a parallel version of the ", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
BookName := "ref\
", Func := "List" ), content := 0, count := [ 8, 2, 3, 3 ],
mathmode := "Text",
name := "Ref",
next := 102892,
root := ~,
start := 102859,
stop := 102891 ),
rec(
content := "\nfuncti\
on. It applies the function ", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
orker", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "A",
next := 102940,
root := ~,
start := 102927,
stop := 102939 ),
rec(
content := " to all \
elements of \nthe list ", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "A",
next := 102978,
root := ~,
start := 102970,
stop := 102977 ),
rec(
content := " and ret\
urns a list containing the results in\ncorresponding positions. You have to sp\
ecify the component\n", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "N\
umberJobs", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "C",
next := 103100,
root := ~,
start := 103083,
stop := 103099 ),
rec(
content := " in the \
options record ", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "A",
next := 103133,
root := ~,
start := 103123,
stop := 103132 ),
rec(
content := " which i\
ndicates how many\nbackground processes to start. You can optionally use the "
,
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
imeOut", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "C",
next := 103231,
root := ~,
start := 103217,
stop := 103230 ),
rec(
content := "\noption\
exactly as for ", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParDoBy\
Fork" ), content := 0, count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 103279,
root := ~,
start := 103254,
stop := 103278 ),
rec(
content := ", howeve\
r, if a timeout\noccurs, ", count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParList\
ByFork" ), content := 0, count := [ 8, 2, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 103338,
root := ~,
start := 103311,
stop := 103337 ),
rec(
content := " returns\
", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "K",
next := 103358,
root := ~,
start := 103347,
stop := 103357 ),
rec( content := ".\n",
count :=
[ 8, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 2, 3, 4 ],
mathmode := "Text",
name := "P",
next := 103364,
root := ~,
start := 103360,
stop := 103363 ),
rec(
content := "\nNote t\
hat the usefulness of this operation is relatively limited, since\nevery indiv\
idual result has to be sent back over a pipe from the child process\nto the pa\
rent process. Therefore this only makes sense if the computation\ntime for the\
worker function dominates the communication time.\n", count := [ 8, 2, 3, 4 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 2, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 103667, root := ~,
start := 102811,
stop := 103666 ) ],
count := [ 8, 2, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 103681, root := ~,
start := 102694, stop := 103680 ),
rec( content := "\n\n",
count := [ 8, 2, 3, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "l, map, reduce [\
,opt]", Name := "ParMapReduceByFork" ), content := 0, count := [ 8, 2, 4, 2 ],
mathmode := "Text",
name := "Oper",
next := 103757, root := ~,
start := 103696,
stop := 103756 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "a value o\
r ", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 103789,
root := ~,
start := 103778,
stop := 103788 ) ],
count := [ 8, 2, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 103799, root := ~,
start := 103758,
stop := 103798 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis is\
a parallel version implementation of the classical ", count := [ 8, 2, 4, 3 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "M\
apReduce", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "C",
next := 103889,
root := ~,
start := 103873,
stop := 103888 ),
rec(
content := "\npatter\
n.\nIt applies the function ", count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ap", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 103933,
root := ~,
start := 103923,
stop := 103932 ),
rec(
content := " to all \
elements of \nthe list ", count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "l\
", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 103971,
root := ~,
start := 103963,
stop := 103970 ),
rec(
content := " and the\
n reduces the result using the ", count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "r\
educe", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 104023,
root := ~,
start := 104010,
stop := 104022 ),
rec(
content := " functio\
n\nwhich accepts two return values of ", count := [ 8, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "m\
ap", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 104078,
root := ~,
start := 104068,
stop := 104077 ),
rec(
content := " and ret\
urns one of them.\nThus, the final result is one return value or ",
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 104161,
root := ~,
start := 104150,
stop := 104160 ),
rec(
content := " if the \
startup\nof the jobs fails. You have to specify the component\n",
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "N\
umberJobs", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "C",
next := 104247,
root := ~,
start := 104230,
stop := 104246 ),
rec(
content := " in the \
options record ", count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 104280,
root := ~,
start := 104270,
stop := 104279 ),
rec(
content := " which i\
ndicates how many\nbackground processes to start. You can optionally use the "
,
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "T\
imeOut", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "C",
next := 104378,
root := ~,
start := 104364,
stop := 104377 ),
rec(
content := "\noption\
exactly as for ", count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParDoBy\
Fork" ), content := 0, count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "Ref",
next := 104426,
root := ~,
start := 104401,
stop := 104425 ),
rec(
content := ", howeve\
r, if a timeout\noccurs, ", count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "ParMapR\
educeByFork" ), content := 0, count := [ 8, 2, 4, 3 ], mathmode := "Text",
name := "Ref",
next := 104490,
root := ~,
start := 104458,
stop := 104489 ),
rec(
content := " returns\
", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 104510,
root := ~,
start := 104499,
stop := 104509 ),
rec( content := ".\n",
count :=
[ 8, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 2, 4, 4 ],
mathmode := "Text",
name := "P",
next := 104516,
root := ~,
start := 104512,
stop := 104515 ),
rec(
content := "\nNote t\
hat this can be very useful because quite often \nthe cumulated computation ti\
me for all the worker function calls\ndominates the communication time for a s\
ingle result.\n", count := [ 8, 2, 4, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 2, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 104705, root := ~,
start := 103800,
stop := 104704 ) ],
count := [ 8, 2, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 104719, root := ~,
start := 103683, stop := 104718 ),
rec(
content := "\n\nNote that the next p\
arallel skeleton is a worker farm which\nis described in the following section\
.\n", count := [ 8, 2, 4, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 8, 2, 0, 1 ], mathmode := "Text",
name := "Section", next := 104830,
root := ~, start := 99613, stop := 104829 ),
rec( content := "\n\n", count := [ 8, 2, 4, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 8, 3, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Worker farms",
count := [ 8, 3, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 8, 3, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 104873,
root := ~, start := 104842,
stop := 104872 ),
rec(
content := "\n\nThe parallel skeleto\
n of a worker farm is basically nothing but\na bunch of background jobs all wi\
th the same worker function and\nall eagerly waiting for work. The only additi\
onal concepts needed\nare an input and an output queue. The input queue contai\
ns\nargument lists and the output queue pairs of argument lists\nand results.\
\n\n", count := [ 8, 3, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 8, 3, 0, 4 ],
mathmode := "Text", name := "P",
next := 105207, root := ~,
start := 105203, stop := 105206 ),
rec(
content := " \nOne creates a worker \
farm with the following operation:\n", count := [ 8, 3, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "fun, opt",
Name := "ParWorkerFarmBy\
Fork" ), content := 0, count := [ 8, 3, 1, 2 ], mathmode := "Text",
name := "Oper",
next := 105327, root := ~,
start := 105278,
stop := 105326 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "an object\
representing the worker farm or ", count := [ 8, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "K",
next := 105390,
root := ~,
start := 105379,
stop := 105389 ) ],
count := [ 8, 3, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 105400, root := ~,
start := 105328,
stop := 105399 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration creates a worker farm with the worker function\n",
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
un", count := [ 8, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "A",
next := 105487,
root := ~,
start := 105477,
stop := 105486 ),
rec(
content := " and set\
s up its input and output queue. An object representing\nthe farm is returned \
unless not all jobs could be started up in which\ncase ", count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 8, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "K",
next := 105637,
root := ~,
start := 105626,
stop := 105636 ),
rec(
content := " is retu\
rned. After startup all background jobs in the\nfarm are idle. The only valid \
option in the options record ", count := [ 8, 3, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
pt", count := [ 8, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "A",
next := 105761,
root := ~,
start := 105751,
stop := 105760 ),
rec( content := "\nis ",
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "N\
umberJobs", count := [ 8, 3, 1, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 1, 3 ],
mathmode := "Text",
name := "C",
next := 105782,
root := ~,
start := 105765,
stop := 105781 ),
rec(
content := " and it \
must be bound to the number of worker\njobs in the farm, a positive integer.\n\
", count := [ 8, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 8, 3, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 105880, root := ~,
start := 105401,
stop := 105879 ) ],
count := [ 8, 3, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 105894, root := ~,
start := 105265, stop := 105893 ),
rec(
content := "\n\nThe following operat\
ions are for worker farm objects:\n\n", count := [ 8, 3, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "wf, block",
Name := "DoQueues" ),
content := 0,
count := [ 8, 3, 2, 2 ],
mathmode := "Text",
name := "Oper",
next := 106003, root := ~,
start := 105964,
stop := 106002 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 8, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 8, 3, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 106032, root := ~,
start := 106004,
stop := 106031 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration called on a worker farm object ", count := [ 8, 3, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
f", count := [ 8, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 3, 2, 3 ],
mathmode := "Text",
name := "A",
next := 106102,
root := ~,
start := 106093,
stop := 106101 ),
rec(
content := " adminis\
trates\nthe input and output queues of the worker farm. In particular it\nchec\
ks whether new results are available from the workers and if so\nit appends th\
em to the output queue. If jobs are idle and the input\nqueue is non-empty, ar\
gument lists from the input queue are sent\nto the idle jobs and removed from \
the input queue.\n", count := [ 8, 3, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 3, 2, 4 ],
mathmode := "Text",
name := "P",
next := 106438,
root := ~,
start := 106434,
stop := 106437 ),
rec(
content := "\nThis o\
peration must be called regularly to keep up the communication\nwith the clien\
ts. It uses ", count := [ 8, 3, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
elect", count := [ 8, 3, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 4 ],
mathmode := "Text",
name := "C",
next := 106547,
root := ~,
start := 106534,
stop := 106546 ),
rec(
content := " and so \
does not\nblock if the boolean argument ", count := [ 8, 3, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
lock", count := [ 8, 3, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 4 ],
mathmode := "Text",
name := "A",
next := 106606,
root := ~,
start := 106594,
stop := 106605 ),
rec(
content := " is set \
to ", count := [ 8, 3, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 8, 3, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 4 ],
mathmode := "Text",
name := "K",
next := 106629,
root := ~,
start := 106617,
stop := 106628 ),
rec(
content := ". \nHowe\
ver, if larger chunks of data has to be sent or received this\noperation might\
need some time to return.\n", count := [ 8, 3, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "P",
next := 106744,
root := ~,
start := 106740,
stop := 106743 ),
rec(
content := "\nIf the\
boolean argument ", count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
lock", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "A",
next := 106781,
root := ~,
start := 106769,
stop := 106780 ),
rec(
content := " is set \
to true then the \n", count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoQueue\
s" ), content := 0, count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "Ref",
next := 106829,
root := ~,
start := 106807,
stop := 106828 ),
rec(
content := " blocks \
until at least one job has returned\na result. This can be used to wait for th\
e termination of all tasks\nwithout burning CPU cycles in the parent job. One \
would repeatedly\ncall ", count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoQueue\
s" ), content := 0, count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "Ref",
next := 107035,
root := ~,
start := 107013,
stop := 107034 ),
rec(
content := " with ",
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
lock", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "A",
next := 107053,
root := ~,
start := 107041,
stop := 107052 ),
rec(
content := " set to \
", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "K",
next := 107072,
root := ~,
start := 107061,
stop := 107071 ),
rec(
content := "\nand af\
ter each such call check with ", count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "wfarm"
,
Oper := "IsIdle"\
), content := 0, count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "Ref",
next := 107143,
root := ~,
start := 107109,
stop := 107142 ),
rec(
content := "\nwhethe\
r all tasks are done. Note that one should no longer call\n",
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoQueue\
s" ), content := 0, count := [ 8, 3, 2, 5 ], mathmode := "Text",
name := "Ref",
next := 107230,
root := ~,
start := 107208,
stop := 107229 ),
rec(
content := " with ",
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
lock", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "A",
next := 107248,
root := ~,
start := 107236,
stop := 107247 ),
rec(
content := " set to \
", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 3, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 2, 5 ],
mathmode := "Text",
name := "K",
next := 107267,
root := ~,
start := 107256,
stop := 107266 ),
rec(
content := " once\nt\
his is the case since then it would block forever.\n", count := [ 8, 3, 2, 5 ]
,
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 3, 2, 6 ],
mathmode := "Text",
name := "P",
next := 107329,
root := ~,
start := 107325,
stop := 107328 ),
rec(
content := "\nThis o\
peration is called automatically by most of the following\noperations.\n",
count :=
[ 8, 3, 2, 6 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 3, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 107420, root := ~,
start := 106033,
stop := 107419 ) ],
count := [ 8, 3, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 107434, root := ~,
start := 105951, stop := 107433 ),
rec( content := "\n\n",
count := [ 8, 3, 2, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "wf",
Label := "wfarm",
Name := "Kill" ),
content := 0,
count := [ 8, 3, 3, 2 ],
mathmode := "Text",
name := "Oper",
next := 107491, root := ~,
start := 107449,
stop := 107490 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 8, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 8, 3, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 107520, root := ~,
start := 107492,
stop := 107519 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration terminates all background jobs in the farm ", count := [ 8, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
f", count := [ 8, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 3, 3, 3 ],
mathmode := "Text",
name := "A",
next := 107602,
root := ~,
start := 107593,
stop := 107601 ),
rec(
content := ", \nwhic\
h cannot be used subsequently. One should always call this operation\nwhen the\
worker farm is no longer needed to free resources.\n", count :=
[ 8, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 3, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 107752, root := ~,
start := 107521,
stop := 107751 ) ],
count := [ 8, 3, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 107766, root := ~,
start := 107436, stop := 107765 ),
rec( content := "\n\n",
count := [ 8, 3, 3, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "wf",
Label := "wfarm",
Name := "IsIdle" ),
content := 0,
count := [ 8, 3, 4, 2 ],
mathmode := "Text",
name := "Oper",
next := 107825, root := ~,
start := 107781,
stop := 107824 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "K",
next := 107847,
root := ~,
start := 107836,
stop := 107846 ),
rec( content := " or ",
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "K",
next := 107863,
root := ~,
start := 107851,
stop := 107862 ),
rec( content := " ",
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 3, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 107874, root := ~,
start := 107826,
stop := 107873 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration returns ", count := [ 8, 3, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "K",
next := 107923,
root := ~,
start := 107912,
stop := 107922 ),
rec(
content := " if all \
background jobs in the\nworker farm ", count := [ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "w\
f", count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "A",
next := 107975,
root := ~,
start := 107966,
stop := 107974 ),
rec(
content := " are idl\
e. This means, that all tasks which\nhave previously been submitted using ",
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "wfarm"
,
Oper := "Submit"\
), content := 0, count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "Ref",
next := 108090,
root := ~,
start := 108056,
stop := 108089 ),
rec(
content := " have\nb\
een completed and their result been appended to the output\nqueue. The operati\
on ", count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoQueue\
s" ), content := 0, count := [ 8, 3, 4, 3 ], mathmode := "Text",
name := "Ref",
next := 108199,
root := ~,
start := 108177,
stop := 108198 ),
rec(
content := " is auto\
matically\ncalled before the execution of ", count := [ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "wfarm"
,
Oper := "IsIdle"\
), content := 0, count := [ 8, 3, 4, 3 ], mathmode := "Text", name := "Ref",
next := 108282,
root := ~,
start := 108248,
stop := 108281 ),
rec( content := ".\n",
count :=
[ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 3, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 108298, root := ~,
start := 107875,
stop := 108297 ) ],
count := [ 8, 3, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 108312, root := ~,
start := 107768, stop := 108311 ),
rec( content := "\n\n",
count := [ 8, 3, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "wg, arglist",
Label := "wfarm",
Name := "Submit" ),
content := 0,
count := [ 8, 3, 5, 2 ],
mathmode := "Text",
name := "Oper",
next := 108380, root := ~,
start := 108327,
stop := 108379 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 8, 3, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 8, 3, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 108409, root := ~,
start := 108381,
stop := 108408 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration submits a task in the form of an argument list for the\nworker functio\
n to the worker farm. It is appended at the end of the\ninput queue.\nThe oper\
ation ", count := [ 8, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoQueue\
s" ), content := 0, count := [ 8, 3, 5, 3 ], mathmode := "Text",
name := "Ref",
next := 108612,
root := ~,
start := 108590,
stop := 108611 ),
rec(
content := " is auto\
matically\ncalled after the execution of ", count := [ 8, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "wfarm"
,
Oper := "Submit"\
), content := 0, count := [ 8, 3, 5, 3 ], mathmode := "Text", name := "Ref",
next := 108694,
root := ~,
start := 108660,
stop := 108693 ),
rec(
content := ", giving\
the\nfarm a chance to actually send the work out to the worker background\njo\
bs.\n", count := [ 8, 3, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 8, 3, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 108796, root := ~,
start := 108410,
stop := 108795 ) ],
count := [ 8, 3, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 108810, root := ~,
start := 108314, stop := 108809 ),
rec( content := "\n\n",
count := [ 8, 3, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "wg, arglist",
Label := "wfarm",
Name := "Pickup" ),
content := 0,
count := [ 8, 3, 6, 2 ],
mathmode := "Text",
name := "Oper",
next := 108878, root := ~,
start := 108825,
stop := 108877 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 8, 3, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 8, 3, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 108907, root := ~,
start := 108879,
stop := 108906 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThis op\
eration collects all results from the output queue of the\nworker farm. The ou\
tput queue is empty after this function returns.\nThe results are reported as \
a list of pairs, each pair has the\ninput argument list as first component and\
the output object\nas second component.\n", count := [ 8, 3, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 8, 3, 6, 4 ],
mathmode := "Text",
name := "P",
next := 109204,
root := ~,
start := 109200,
stop := 109203 ),
rec(
content := "\nThe op\
eration ", count := [ 8, 3, 6, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoQueue\
s" ), content := 0, count := [ 8, 3, 6, 4 ], mathmode := "Text",
name := "Ref",
next := 109241,
root := ~,
start := 109219,
stop := 109240 ),
rec(
content := " is auto\
matically\ncalled before the execution of ", count := [ 8, 3, 6, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Label := "wfarm"
,
Oper := "Pickup"\
), content := 0, count := [ 8, 3, 6, 4 ], mathmode := "Text", name := "Ref",
next := 109324,
root := ~,
start := 109290,
stop := 109323 ),
rec(
content := ", giving\
the\nfarm a chance to actually receive some more results from the worker back\
ground\njobs.\n", count := [ 8, 3, 6, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 8, 3, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 109436, root := ~,
start := 108908,
stop := 109435 ) ],
count := [ 8, 3, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 109450, root := ~,
start := 108812, stop := 109449 ),
rec( content := "\n\n",
count := [ 8, 3, 6, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 8, 3, 0, 1 ], mathmode := "Text",
name := "Section", next := 109462,
root := ~, start := 104832, stop := 109461 )
,
rec( content := "\n\n", count := [ 8, 3, 6, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 8, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 109474, root := ~, start := 92378,
stop := 109473 ),
rec( content := "\n\n", count := [ 8, 3, 6, 4 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 9, 0, 0, 1 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "I/O multiplexing",
count := [ 9, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 9, 0, 0, 2 ], mathmode := "Text",
name := "Heading", next := 109525,
root := ~, start := 109490, stop := 109524 )
,
rec( content := "\n\n ",
count := [ 9, 0, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 9, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Introduction",
count := [ 9, 1, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 9, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 109580,
root := ~, start := 109549,
stop := 109579 ),
rec(
content := "\n\nWhenever one needs t\
o do input/output on more than one connection (file\ndescriptor) at a time, so\
me code is needed to organise the I/O\nmultiplexing. Due to the single-threade\
d nature of the current ", count := [ 9, 1, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := "\nlanguage one has to us\
e ", count := [ 9, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( Func := "IO_select" ),
content := 0,
count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "Ref",
next := 109833, root := ~,
start := 109810, stop := 109832 ),
rec(
content := " and some\nbuffering and\
queueing to organise this. This chapter describes a\nrelative generic impleme\
ntation of I/O-multiplexing using so-called\n", count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes := rec( Oper := "IOHub" )
, content := 0,
count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "Ref",
next := 109996, root := ~,
start := 109977, stop := 109995 ),
rec(
content := " objects. The basic idea\
is that an ", count := [ 9, 1, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes := rec( Oper := "IOHub" )
, content := 0,
count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "Ref",
next := 110055, root := ~,
start := 110032, stop := 110054 ),
rec(
content := " object handles lots of \
I/O connections at the same\ntime and maintains a buffer for each of them. The\
re is a very simple\nprotocol that marks chunks of data (called ",
count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "messages",
count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "Q",
next := 110234, root := ~,
start := 110219, stop := 110233 ),
rec(
content := ") and whenever\na messag\
e has been received completely it is collected in the input\nqueue of the ",
count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes := rec( Oper := "IOHub" )
, content := 0,
count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "Ref",
next := 110349, root := ~,
start := 110330, stop := 110348 ),
rec(
content := ", marked with the number\
of the\nconnection it came from. Rather than sending a message away\nin one g\
o, one would always schedule it for sending by appending it to\nthe output que\
ue. The operation ", count := [ 9, 1, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( Oper := "DoIO" )
, content := 0,
count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "Ref",
next := 110562, root := ~,
start := 110544, stop := 110561 ),
rec(
content := ", when called often\neno\
ugh, will then make sure that the message is sent away eventually.\n\n",
count := [ 9, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 9, 1, 0, 1 ], mathmode := "Text",
name := "Section", next := 110663,
root := ~, start := 109531, stop := 110662 )
,
rec( content := "\n\n", count := [ 9, 1, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 9, 2, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "The operations fo\
r ", count := [ 9, 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec( attributes := rec( ),
content :=
[
rec( content := "IOHub",
count :=
[ 9, 2, 0, 2 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 0, 2 ],
mathmode := "Text",
name := "C",
next := 110719, root := ~,
start := 110707,
stop := 110718 ),
rec( content := " objects",
count := [ 9, 2, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 9, 2, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 110737,
root := ~, start := 110679,
stop := 110736 ),
rec(
content := "\n\nIn this section, we \
simply describe the functions and operations\nto create, use and destroy ",
count := [ 9, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes := rec( Oper := "IOHub" )
, content := 0,
count := [ 9, 2, 0, 3 ],
mathmode := "Text", name := "Ref",
next := 110850, root := ~,
start := 110831, stop := 110849 ),
rec( content := " objects.\n",
count := [ 9, 2, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "",
Name := "IOHub" ),
content := 0,
count := [ 9, 2, 1, 2 ],
mathmode := "Text",
name := "Oper",
next := 110900, root := ~,
start := 110873,
stop := 110899 ),
rec( attributes := rec( ),
content :=
[
rec( content := " an ",
count :=
[ 9, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 1, 3 ],
mathmode := "Text",
name := "Ref",
next := 110933,
root := ~,
start := 110914,
stop := 110932 ),
rec(
content := " object \
", count := [ 9, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 9, 2, 1, 3 ],
mathmode := "Text",
name := "Returns",
next := 110951, root := ~,
start := 110901,
stop := 110950 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Thi\
s creates a new ", count := [ 9, 2, 1, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 1, 3 ],
mathmode := "Text",
name := "Ref",
next := 111008,
root := ~,
start := 110989,
stop := 111007 ),
rec(
content := " object \
at first without any open\n connections.\n", count := [ 9, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 1, 3 ],
mathmode := "Text",
name := "Description",
next := 111073, root := ~,
start := 110952,
stop := 111072 ) ],
count := [ 9, 2, 1, 1 ],
mathmode := "Text",
name := "ManSection",
next := 111087, root := ~,
start := 110860, stop := 111086 ),
rec( content := "\n\n",
count := [ 9, 2, 1, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h, i, o",
Name := "NewConnection"
), content := 0,
count := [ 9, 2, 2, 2 ],
mathmode := "Text",
name := "Oper",
next := 111144, root := ~,
start := 111102,
stop := 111143 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a positi\
ve integer ", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "Returns",
next := 111184, root := ~,
start := 111145,
stop := 111183 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n Thi\
s operation adds a new connection to the ", count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "Ref",
next := 111266,
root := ~,
start := 111247,
stop := 111265 ),
rec(
content := " object\\
n", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 111282,
root := ~,
start := 111274,
stop := 111281 ),
rec(
content := ". The ar\
guments ", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 111306,
root := ~,
start := 111298,
stop := 111305 ),
rec( content := " and ",
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 111319,
root := ~,
start := 111311,
stop := 111318 ),
rec(
content := " must be\
Unix file\ndescriptors or ", count := [ 9, 2, 2, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "0\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "M",
next := 111361,
root := ~,
start := 111353,
stop := 111360 ),
rec( content := " and ",
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "i\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 111374,
root := ~,
start := 111366,
stop := 111373 ),
rec(
content := " must be\
open for reading if\nit is positive and ", count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "o\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 111430,
root := ~,
start := 111422,
stop := 111429 ),
rec(
content := " must be\
open for writing if it is\npositive. It is allowed that both file descriptors\
are equal, but they\nmay not both be equal to ", count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "0\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "M",
next := 111569,
root := ~,
start := 111561,
stop := 111568 ),
rec(
content := ". The op\
eration returns a positive\ninteger which is the number under which this new c\
onnection will be\nadministrated in the ", count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "Ref",
next := 111712,
root := ~,
start := 111693,
stop := 111711 ),
rec(
content := " object.\
Note that this number is\nspecific to the object ", count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "A",
next := 111777,
root := ~,
start := 111769,
stop := 111776 ),
rec( content := ". ",
count :=
[ 9, 2, 2, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 9, 2, 2, 4 ],
mathmode := "Text",
name := "P",
next := 111783,
root := ~,
start := 111779,
stop := 111782 ),
rec(
content := "\nFrom t\
he moment these file descriptors are registered with the\n",
count :=
[ 9, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 2, 4 ],
mathmode := "Text",
name := "Ref",
next := 111866,
root := ~,
start := 111847,
stop := 111865 ),
rec(
content := " object,\
every subsequent call to ", count := [ 9, 2, 2, 4 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoIO" )
, content := 0,
count :=
[ 9, 2, 2, 4 ],
mathmode := "Text",
name := "Ref",
next := 111918,
root := ~,
start := 111900,
stop := 111917 ),
rec(
content := " will\nt\
ry to do input and output on them. This means in particular that the\nother si\
de of this connection should be in the same initial\nstate of the protocol. Us\
ually this will be achieved by them being\nadded as a new connection to a corr\
esponding ", count := [ 9, 2, 2, 4 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 2, 4 ],
mathmode := "Text",
name := "Ref",
next := 112185,
root := ~,
start := 112166,
stop := 112184 ),
rec(
content := " object \
on\nthe other side at the same time. ", count := [ 9, 2, 2, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 9, 2, 2, 5 ],
mathmode := "Text",
name := "P",
next := 112233,
root := ~,
start := 112229,
stop := 112232 ),
rec(
content := " \nSee a\
lso ", count := [ 9, 2, 2, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "NewTCPC\
onnection" ), content := 0, count := [ 9, 2, 2, 5 ], mathmode := "Text",
name := "Ref",
next := 112274,
root := ~,
start := 112244,
stop := 112273 ),
rec(
content := " below.\\
n", count := [ 9, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count := [ 9, 2, 2, 3 ],
mathmode := "Text",
name := "Description",
next := 112296, root := ~,
start := 111185,
stop := 112295 ) ],
count := [ 9, 2, 2, 1 ],
mathmode := "Text",
name := "ManSection",
next := 112310, root := ~,
start := 111089, stop := 112309 ),
rec( content := "\n\n",
count := [ 9, 2, 2, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h, nr",
Name := "CloseConnection\
" ), content := 0, count := [ 9, 2, 3, 2 ], mathmode := "Text",
name := "Oper",
next := 112367, root := ~,
start := 112325,
stop := 112366 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 9, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 9, 2, 3, 3 ],
mathmode := "Text",
name := "Returns",
next := 112396, root := ~,
start := 112368,
stop := 112395 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n The\
argument ", count := [ 9, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "A",
next := 112436,
root := ~,
start := 112428,
stop := 112435 ),
rec(
content := " must be\
an ", count := [ 9, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "Ref",
next := 112467,
root := ~,
start := 112448,
stop := 112466 ),
rec(
content := " object \
and\n ", count := [ 9, 2, 3, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "A",
next := 112492,
root := ~,
start := 112483,
stop := 112491 ),
rec(
content := " the num\
ber of a connection which was previously returned\n by ",
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "NewConn\
ection" ), content := 0, count := [ 9, 2, 3, 3 ], mathmode := "Text",
name := "Ref",
next := 112584,
root := ~,
start := 112557,
stop := 112583 ),
rec(
content := ". The co\
rresponding connection is\n closed and removed from the ",
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "Ref",
next := 112669,
root := ~,
start := 112650,
stop := 112668 ),
rec( content := ".\n",
count :=
[ 9, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 3, 3 ],
mathmode := "Text",
name := "Description",
next := 112685, root := ~,
start := 112397,
stop := 112684 ) ],
count := [ 9, 2, 3, 1 ],
mathmode := "Text",
name := "ManSection",
next := 112699, root := ~,
start := 112312, stop := 112698 ),
rec( content := "\n\n",
count := [ 9, 2, 3, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "h, addr, port",
Name := "AttachServingSo\
cket" ), content := 0, count := [ 9, 2, 4, 2 ], mathmode := "Text",
name := "Oper",
next := 112768, root := ~,
start := 112714,
stop := 112767 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a Unix f\
ile descriptor or ", count := [ 9, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 112816,
root := ~,
start := 112805,
stop := 112815 ),
rec( content := " ",
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 4, 3 ],
mathmode := "Text",
name := "Returns",
next := 112827, root := ~,
start := 112769,
stop := 112826 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 112863,
root := ~,
start := 112855,
stop := 112862 ),
rec(
content := " must be\
an ", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "Ref",
next := 112894,
root := ~,
start := 112875,
stop := 112893 ),
rec(
content := " object,\
\n", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ddr", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 112914,
root := ~,
start := 112903,
stop := 112913 ),
rec(
content := " an IP a\
ddress or host name as a string and ", count := [ 9, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ort", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 112969,
root := ~,
start := 112958,
stop := 112968 ),
rec(
content := " a\nport\
number (see also ", count := [ 9, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Make\
IPAddressPort" ), content := 0, count := [ 9, 2, 4, 3 ], mathmode := "Text",
name := "Ref",
next := 113028,
root := ~,
start := 112994,
stop := 113027 ),
rec(
content := "). \nThi\
s operation creates a new socket, binds it to the IP\naddress\nand port and at\
taches it to the ", count := [ 9, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "Ref",
next := 113147,
root := ~,
start := 113128,
stop := 113146 ),
rec(
content := " object.\
From\nthis moment on the operation ", count := [ 9, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoIO" )
, content := 0,
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "Ref",
next := 113208,
root := ~,
start := 113190,
stop := 113207 ),
rec(
content := " will ac\
cept new\nbidirectional TCP/IP connections on that socket and add them to \n",
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "A",
next := 113298,
root := ~,
start := 113290,
stop := 113297 ),
rec(
content := ". The op\
eration returns either the file descriptor of the\nnew socket or ",
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 4, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 4, 3 ],
mathmode := "Text",
name := "K",
next := 113381,
root := ~,
start := 113370,
stop := 113380 ),
rec(
content := " if an e\
rror occurred.\n", count := [ 9, 2, 4, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 4, 3 ],
mathmode := "Text",
name := "Description",
next := 113418, root := ~,
start := 112828,
stop := 113417 ) ],
count := [ 9, 2, 4, 1 ],
mathmode := "Text",
name := "ManSection",
next := 113432, root := ~,
start := 112701, stop := 113431 ),
rec( content := "\n\n",
count := [ 9, 2, 4, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h",
Name := "ShutdownServing\
Socket" ), content := 0, count := [ 9, 2, 5, 2 ], mathmode := "Text",
name := "Oper",
next := 113491, root := ~,
start := 113447,
stop := 113490 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 9, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 9, 2, 5, 3 ],
mathmode := "Text",
name := "Returns",
next := 113520, root := ~,
start := 113492,
stop := 113519 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 5, 3 ],
mathmode := "Text",
name := "A",
next := 113556,
root := ~,
start := 113548,
stop := 113555 ),
rec(
content := " must be\
an ", count := [ 9, 2, 5, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 5, 3 ],
mathmode := "Text",
name := "Ref",
next := 113587,
root := ~,
start := 113568,
stop := 113586 ),
rec(
content := " object.\
\nAny server socket which was attached to ", count := [ 9, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 5, 3 ],
mathmode := "Text",
name := "A",
next := 113644,
root := ~,
start := 113636,
stop := 113643 ),
rec(
content := " is shut\
down,\nso no new connections will be accepted.\n", count := [ 9, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 5, 3 ],
mathmode := "Text",
name := "Description",
next := 113713, root := ~,
start := 113521,
stop := 113712 ) ],
count := [ 9, 2, 5, 1 ],
mathmode := "Text",
name := "ManSection",
next := 113727, root := ~,
start := 113434, stop := 113726 ),
rec( content := "\n\n",
count := [ 9, 2, 5, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h",
Name := "Shutdown" ),
content := 0,
count := [ 9, 2, 6, 2 ],
mathmode := "Text",
name := "Oper",
next := 113773, root := ~,
start := 113742,
stop := 113772 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " nothing \
", count := [ 9, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count := [ 9, 2, 6, 3 ],
mathmode := "Text",
name := "Returns",
next := 113802, root := ~,
start := 113774,
stop := 113801 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 6, 3 ],
mathmode := "Text",
name := "A",
next := 113838,
root := ~,
start := 113830,
stop := 113837 ),
rec(
content := " must be\
an ", count := [ 9, 2, 6, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 6, 3 ],
mathmode := "Text",
name := "Ref",
next := 113869,
root := ~,
start := 113850,
stop := 113868 ),
rec(
content := " object.\
\nAll connections of ", count := [ 9, 2, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 6, 3 ],
mathmode := "Text",
name := "A",
next := 113905,
root := ~,
start := 113897,
stop := 113904 ),
rec(
content := " will be\
closed using ", count := [ 9, 2, 6, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "CloseCo\
nnection" ), content := 0, count := [ 9, 2, 6, 3 ], mathmode := "Text",
name := "Ref",
next := 113960,
root := ~,
start := 113927,
stop := 113959 ),
rec(
content := " and any\
serving socket will be\nshut down using ", count := [ 9, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "Shutdow\
nServingSocket" ), content := 0, count := [ 9, 2, 6, 3 ], mathmode := "Text",
name := "Ref",
next := 114043,
root := ~,
start := 114008,
stop := 114042 ),
rec(
content := ". The ",
count :=
[ 9, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 6, 3 ],
mathmode := "Text",
name := "Ref",
next := 114072,
root := ~,
start := 114049,
stop := 114071 ),
rec(
content := " object \
will not be usable any more after this call.\n", count := [ 9, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 6, 3 ],
mathmode := "Text",
name := "Description",
next := 114139, root := ~,
start := 113803,
stop := 114138 ) ],
count := [ 9, 2, 6, 1 ],
mathmode := "Text",
name := "ManSection",
next := 114153, root := ~,
start := 113729, stop := 114152 ),
rec( content := "\n\n",
count := [ 9, 2, 6, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h",
Name := "AcceptNewConnec\
tion" ), content := 0, count := [ 9, 2, 7, 2 ], mathmode := "Text",
name := "Oper",
next := 114210, root := ~,
start := 114168,
stop := 114209 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a positi\
ve integer or ", count := [ 9, 2, 7, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "K",
next := 114254,
root := ~,
start := 114243,
stop := 114253 ) ],
count := [ 9, 2, 7, 3 ],
mathmode := "Text",
name := "Returns",
next := 114264, root := ~,
start := 114211,
stop := 114263 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "A",
next := 114300,
root := ~,
start := 114292,
stop := 114299 ),
rec(
content := " must be\
an ", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "Ref",
next := 114331,
root := ~,
start := 114312,
stop := 114330 ),
rec(
content := " object.\
\nThe object ", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "A",
next := 114359,
root := ~,
start := 114351,
stop := 114358 ),
rec(
content := " must ha\
ve a serving socket attached to it\nvia ", count := [ 9, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "AttachS\
ervingSocket" ), content := 0, count := [ 9, 2, 7, 3 ], mathmode := "Text",
name := "Ref",
next := 114439,
root := ~,
start := 114406,
stop := 114438 ),
rec(
content := ", otherw\
ise ", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 7, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "K",
next := 114462,
root := ~,
start := 114451,
stop := 114461 ),
rec(
content := " is\nret\
urned and nothing happens. One more connection is accepted through\nthe servin\
g socket. It is added as a new bidirectional TCP/IP\nconnection to the ",
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "Ref",
next := 114635,
root := ~,
start := 114616,
stop := 114634 ),
rec(
content := " object \
and the new connection\nnumber is returned. Note first that this operation blo\
cks until a new\nconnection comes in. Note furthermore that this operation is \
usually\ncalled automatically in ", count := [ 9, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoIO" )
, content := 0,
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "Ref",
next := 114848,
root := ~,
start := 114830,
stop := 114847 ),
rec(
content := " wheneve\
r a new connection\nhas come in, which is reported in the internal ",
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_sele\
ct" ), content := 0, count := [ 9, 2, 7, 3 ], mathmode := "Text",
name := "Ref",
next := 114945,
root := ~,
start := 114922,
stop := 114944 ),
rec(
content := "\ncall. \
So usually, the client code does not have to call this operation\nat all.\n",
count :=
[ 9, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 7, 3 ],
mathmode := "Text",
name := "Description",
next := 115039, root := ~,
start := 114265,
stop := 115038 ) ],
count := [ 9, 2, 7, 1 ],
mathmode := "Text",
name := "ManSection",
next := 115053, root := ~,
start := 114155, stop := 115052 ),
rec( content := "\n\n",
count := [ 9, 2, 7, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h, nr, st",
Name := "SubmitOutput" )
, content := 0,
count := [ 9, 2, 8, 2 ],
mathmode := "Text",
name := "Oper",
next := 115111, root := ~,
start := 115068,
stop := 115110 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "K",
next := 115133,
root := ~,
start := 115122,
stop := 115132 ),
rec( content := " or ",
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "K",
next := 115148,
root := ~,
start := 115137,
stop := 115147 ),
rec( content := " ",
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "Returns",
next := 115159, root := ~,
start := 115112,
stop := 115158 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\n The\
argument ", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 115199,
root := ~,
start := 115191,
stop := 115198 ),
rec(
content := " must be\
an ", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "Ref",
next := 115230,
root := ~,
start := 115211,
stop := 115229 ),
rec(
content := " object,\
\n ", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 115252,
root := ~,
start := 115243,
stop := 115251 ),
rec(
content := " must be\
a positive integer which is the number of\n an open connection of ",
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 115337,
root := ~,
start := 115329,
stop := 115336 ),
rec(
content := " which c\
an be used for output.\n The argument ", count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 115394,
root := ~,
start := 115385,
stop := 115393 ),
rec(
content := " must be\
a ", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "G\
AP", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "Package",
next := 23,
root := ~,
start := 1,
stop := 22 ),
rec(
content := " string.\
This operation\n appends the message ", count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "s\
t", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 115467,
root := ~,
start := 115458,
stop := 115466 ),
rec(
content := " to the \
end of the output queue\n for the connection ", count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "A",
next := 115531,
root := ~,
start := 115522,
stop := 115530 ),
rec(
content := ". Note t\
hat at this stage no output\n is actually performed automatically. One has \
to call\n ", count := [ 9, 2, 8, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoIO" )
, content := 0,
count :=
[ 9, 2, 8, 3 ],
mathmode := "Text",
name := "Ref",
next := 115646,
root := ~,
start := 115628,
stop := 115645 ),
rec(
content := " subsequ\
ently to actually send the message away.\n", count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "Description",
next := 115709, root := ~,
start := 115160,
stop := 115708 ) ],
count := [ 9, 2, 8, 1 ],
mathmode := "Text",
name := "ManSection",
next := 115723, root := ~,
start := 115055, stop := 115722 ),
rec( content := "\n\n",
count := [ 9, 2, 8, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h, nr",
Name := "GetInput" ),
content := 0,
count := [ 9, 2, 9, 2 ],
mathmode := "Text",
name := "Oper",
next := 115773, root := ~,
start := 115738,
stop := 115772 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list o\
f length ", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "2\
", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "M",
next := 115809,
root := ~,
start := 115801,
stop := 115808 ),
rec( content := " ",
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 9, 3 ],
mathmode := "Text",
name := "Returns",
next := 115820, root := ~,
start := 115774,
stop := 115819 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "A",
next := 115856,
root := ~,
start := 115848,
stop := 115855 ),
rec(
content := " must be\
an ", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "Ref",
next := 115887,
root := ~,
start := 115868,
stop := 115886 ),
rec(
content := " object,\
\n", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "A",
next := 115905,
root := ~,
start := 115896,
stop := 115904 ),
rec(
content := " must be\
an integer.\nIf ", count := [ 9, 2, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "A",
next := 115938,
root := ~,
start := 115929,
stop := 115937 ),
rec(
content := " is posi\
tive, this operation returns the earliest message\nwhich has come in from conn\
ection number ", count := [ 9, 2, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "A",
next := 116046,
root := ~,
start := 116037,
stop := 116045 ),
rec(
content := " and has\
not yet been\nreturned by ", count := [ 9, 2, 9, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "GetInpu\
t" ), content := 0, count := [ 9, 2, 9, 3 ], mathmode := "Text",
name := "Ref",
next := 116102,
root := ~,
start := 116080,
stop := 116101 ),
rec(
content := " before.\
This message is then removed \nfrom the input queue. If there is no such mess\
age, then ", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "K",
next := 116209,
root := ~,
start := 116197,
stop := 116208 ),
rec(
content := "\nis ret\
urned. A message is returned as a plain list of length ", count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "2\
", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "M",
next := 116279,
root := ~,
start := 116271,
stop := 116278 ),
rec(
content := "\nwhere \
the first entry is the connection number it came from and\nthe second entry is\
a string containing the message itself. If\n", count := [ 9, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "n\
r", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "A",
next := 116416,
root := ~,
start := 116407,
stop := 116415 ),
rec(
content := " is equa\
l to ", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "0\
", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "M",
next := 116437,
root := ~,
start := 116429,
stop := 116436 ),
rec(
content := " then th\
e first message in the input\nqueue from any connection is returned or ",
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 9, 2, 9, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 9, 3 ],
mathmode := "Text",
name := "K",
next := 116527,
root := ~,
start := 116515,
stop := 116526 ),
rec(
content := " if ther\
e is no\nmessage in the input queue.\n", count := [ 9, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 9, 3 ],
mathmode := "Text",
name := "Description",
next := 116585, root := ~,
start := 115821,
stop := 116584 ) ],
count := [ 9, 2, 9, 1 ],
mathmode := "Text",
name := "ManSection",
next := 116599, root := ~,
start := 115725, stop := 116598 ),
rec( content := "\n\n",
count := [ 9, 2, 9, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec(
Arg := "h, addr, port",
Name := "NewTCPConnectio\
n" ), content := 0, count := [ 9, 2, 10, 2 ], mathmode := "Text",
name := "Oper",
next := 116665, root := ~,
start := 116614,
stop := 116664 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a connec\
tion number or ", count := [ 9, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 116710,
root := ~,
start := 116699,
stop := 116709 ),
rec( content := " ",
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 10, 3 ],
mathmode := "Text",
name := "Returns",
next := 116721, root := ~,
start := 116666,
stop := 116720 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 116757,
root := ~,
start := 116749,
stop := 116756 ),
rec(
content := " must be\
an ", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "Ref",
next := 116788,
root := ~,
start := 116769,
stop := 116787 ),
rec(
content := " object,\
\nthe arguments ", count := [ 9, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ddr", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 116822,
root := ~,
start := 116811,
stop := 116821 ),
rec( content := " and ",
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ort", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 116838,
root := ~,
start := 116827,
stop := 116837 ),
rec(
content := " must be\
an address/port\npair as used in ", count := [ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_Make\
IPAddressPort" ), content := 0, count := [ 9, 2, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 116913,
root := ~,
start := 116879,
stop := 116912 ),
rec( content := ", so ",
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "a\
ddress", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 116932,
root := ~,
start := 116918,
stop := 116931 ),
rec(
content := "\ncan ei\
ther be a host name or an IP address and ", count := [ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "p\
ort", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 116991,
root := ~,
start := 116980,
stop := 116990 ),
rec(
content := " is a po\
rt\nnumber. This operation opens a new TCP connection to the address and\nport\
specified, adds a new bidirectional connection to the ", count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "Ref",
next := 117149,
root := ~,
start := 117130,
stop := 117148 ),
rec( content := "\n",
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 117158,
root := ~,
start := 117150,
stop := 117157 ),
rec(
content := " using "
,
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "NewConn\
ection" ), content := 0, count := [ 9, 2, 10, 3 ], mathmode := "Text",
name := "Ref",
next := 117192,
root := ~,
start := 117165,
stop := 117191 ),
rec(
content := " \nand r\
eturns the connection number specific to the object\n", count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "A",
next := 117259,
root := ~,
start := 117251,
stop := 117258 ),
rec(
content := ". If any\
thing goes wrong, ", count := [ 9, 2, 10, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 10, 3 ],
mathmode := "Text",
name := "K",
next := 117296,
root := ~,
start := 117285,
stop := 117295 ),
rec(
content := " is retu\
rned.\n", count := [ 9, 2, 10, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 10, 3 ],
mathmode := "Text",
name := "Description",
next := 117324, root := ~,
start := 116722,
stop := 117323 ) ],
count := [ 9, 2, 10, 1 ],
mathmode := "Text",
name := "ManSection",
next := 117338, root := ~,
start := 116601, stop := 117337 ),
rec( content := "\n\n",
count := [ 9, 2, 10, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h",
Name := "OutputQueue" ),
content := 0,
count := [ 9, 2, 11, 2 ],
mathmode := "Text",
name := "Oper",
next := 117387, root := ~,
start := 117353,
stop := 117386 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list "
,
count :=
[ 9, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 11, 3 ],
mathmode := "Text",
name := "Returns",
next := 117415, root := ~,
start := 117388,
stop := 117414 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 11, 3 ],
mathmode := "Text",
name := "A",
next := 117451,
root := ~,
start := 117443,
stop := 117450 ),
rec(
content := " must be\
an ", count := [ 9, 2, 11, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 11, 3 ],
mathmode := "Text",
name := "Ref",
next := 117482,
root := ~,
start := 117463,
stop := 117481 ),
rec(
content := " object.\
\nThis returns the internal object for the output queue. Its elements\nare pai\
rs where the first entry is the connection number where it\nis going to be sen\
t and the second entry is the message as a string.\nOnly modify this list if y\
ou really know what you are doing.\n", count := [ 9, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 11, 3 ],
mathmode := "Text",
name := "Description",
next := 117769, root := ~,
start := 117416,
stop := 117768 ) ],
count := [ 9, 2, 11, 1 ],
mathmode := "Text",
name := "ManSection",
next := 117783, root := ~,
start := 117340, stop := 117782 ),
rec( content := "\n\n",
count := [ 9, 2, 11, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h",
Name := "InputQueue" ),
content := 0,
count := [ 9, 2, 12, 2 ],
mathmode := "Text",
name := "Oper",
next := 117831, root := ~,
start := 117798,
stop := 117830 ),
rec( attributes := rec( ),
content :=
[
rec(
content := " a list "
,
count :=
[ 9, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 12, 3 ],
mathmode := "Text",
name := "Returns",
next := 117859, root := ~,
start := 117832,
stop := 117858 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 12, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 12, 3 ],
mathmode := "Text",
name := "A",
next := 117895,
root := ~,
start := 117887,
stop := 117894 ),
rec(
content := " must be\
an ", count := [ 9, 2, 12, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 12, 3 ],
mathmode := "Text",
name := "Ref",
next := 117926,
root := ~,
start := 117907,
stop := 117925 ),
rec(
content := " object.\
\nThis returns the internal object for the input queue. Its elements\nare pair\
s where the first entry is the connection number from where\nthe message was r\
eceived and the second entry is the message as a string.\nOnly modify this lis\
t if you really know what you are doing.\n", count := [ 9, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 12, 3 ],
mathmode := "Text",
name := "Description",
next := 118219, root := ~,
start := 117860,
stop := 118218 ) ],
count := [ 9, 2, 12, 1 ],
mathmode := "Text",
name := "ManSection",
next := 118233, root := ~,
start := 117785, stop := 118232 ),
rec( content := "\n\n",
count := [ 9, 2, 12, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
attributes :=
rec( Arg := "h [,block]",
Name := "DoIO" ),
content := 0,
count := [ 9, 2, 13, 2 ],
mathmode := "Text",
name := "Oper",
next := 118284, root := ~,
start := 118248,
stop := 118283 ),
rec( attributes := rec( ),
content :=
[
rec( content := " ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118306,
root := ~,
start := 118295,
stop := 118305 ),
rec( content := " or ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118322,
root := ~,
start := 118310,
stop := 118321 ),
rec( content := " or ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118337,
root := ~,
start := 118326,
stop := 118336 ),
rec( content := " ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 13, 3 ],
mathmode := "Text",
name := "Returns",
next := 118348, root := ~,
start := 118285,
stop := 118347 ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\nThe arg\
ument ", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 118384,
root := ~,
start := 118376,
stop := 118383 ),
rec(
content := " must be\
an ", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "Ref",
next := 118415,
root := ~,
start := 118396,
stop := 118414 ),
rec(
content := " object,\
\nand the optional second argument ", count := [ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
lock", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 118469,
root := ~,
start := 118457,
stop := 118468 ),
rec(
content := " must be\
", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118489,
root := ~,
start := 118478,
stop := 118488 ),
rec( content := " or\n",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118505,
root := ~,
start := 118493,
stop := 118504 ),
rec(
content := ". This o\
peration uses ", count := [ 9, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Func := "IO_sele\
ct" ), content := 0, count := [ 9, 2, 13, 3 ], mathmode := "Text",
name := "Ref",
next := 118550,
root := ~,
start := 118527,
stop := 118549 ),
rec(
content := " to deci\
de\nwhich of the file descriptors belonging to the connections of ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "h\
", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
) ],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 118631,
root := ~,
start := 118623,
stop := 118630 ),
rec(
content := "\nare re\
ady to read or write. All file descriptors which are ready are\nserved, possib\
ly updating the input and output queues. A possible\nserving socket is also se\
rved accepting a new connection if there is one.\nThe operation ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoIO" )
, content := 0,
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "Ref",
next := 118873,
root := ~,
start := 118855,
stop := 118872 ),
rec(
content := " loops u\
ntil no more file\ndescriptors are ready. It returns ", count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "t\
rue", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118944,
root := ~,
start := 118933,
stop := 118943 ),
rec(
content := " if some\
I/O was\nperformed and ", count := [ 9, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 118987,
root := ~,
start := 118975,
stop := 118986 ),
rec(
content := " if not.\
It returns ", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
ail", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 119018,
root := ~,
start := 119007,
stop := 119017 ),
rec(
content := " if the\\
n", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec(
attributes :=
rec(
Oper := "IOHub"
), content := 0,
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "Ref",
next := 119045,
root := ~,
start := 119026,
stop := 119044 ),
rec(
content := " is alre\
ady shut down.\nThe second argument ", count := [ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "b\
lock", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "A",
next := 119100,
root := ~,
start := 119088,
stop := 119099 ),
rec(
content := " indicat\
es\nwhether or not ", count := [ 9, 2, 13, 3 ], mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec(
Oper := "DoIO" )
, content := 0,
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "Ref",
next := 119144,
root := ~,
start := 119126,
stop := 119143 ),
rec(
content := " should \
block until some I/O\nhas taken place. If this argument is omitted then ",
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content :=
[
rec(
content := "f\
alse", count := [ 9, 2, 13, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ )
],
count :=
[ 9, 2, 13, 3 ],
mathmode := "Text",
name := "K",
next := 119235,
root := ~,
start := 119223,
stop := 119234 ),
rec(
content := "\n(non-b\
locking operation) is the default.", count := [ 9, 2, 13, 3 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( ),
content := 0,
count :=
[ 9, 2, 13, 4 ],
mathmode := "Text",
name := "P",
next := 119280,
root := ~,
start := 119276,
stop := 119279 ),
rec(
content := "\nNote t\
hat broken connections are silently closed.\n", count := [ 9, 2, 13, 4 ],
mathmode := "Text",
name := "PCDATA",
root := ~ ) ],
count := [ 9, 2, 13, 3 ],
mathmode := "Text",
name := "Description",
next := 119345, root := ~,
start := 118349,
stop := 119344 ) ],
count := [ 9, 2, 13, 1 ],
mathmode := "Text",
name := "ManSection",
next := 119359, root := ~,
start := 118235, stop := 119358 ),
rec( content := "\n\n",
count := [ 9, 2, 13, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 9, 2, 0, 1 ], mathmode := "Text",
name := "Section", next := 119371,
root := ~, start := 110665, stop := 119370 )
,
rec( content := "\n\n",
count := [ 9, 2, 13, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 9, 3, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := " Examples ",
count := [ 9, 3, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ], count := [ 9, 3, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 119416,
root := ~, start := 119387,
stop := 119415 ),
rec(
content := "\n\nThere is an example \
hash server in the file\n", count := [ 9, 3, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "examples/hashserv\
er.g", count := [ 9, 3, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 9, 3, 0, 3 ],
mathmode := "Text", name := "F",
next := 119490, root := ~,
start := 119462, stop := 119489 ),
rec( content := ".\n\n",
count := [ 9, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 9, 3, 0, 1 ], mathmode := "Text",
name := "Section", next := 119503,
root := ~, start := 119373, stop := 119502 )
,
rec( content := "\n\n", count := [ 9, 3, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 9, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 119515, root := ~, start := 109476,
stop := 119514 ),
rec( content := "\n\n", count := [ 9, 3, 0, 3 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n", count := [ 10, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "Examples of usage",
count := [ 10, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 0, 0, 2 ],
mathmode := "Text", name := "Heading",
next := 119563, root := ~, start := 119527,
stop := 119562 ),
rec(
content := "\n\nFor larger examples see the \
", count := [ 10, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec( attributes := rec( ),
content :=
[
rec( content := "example",
count := [ 10, 0, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 0, 0, 3 ],
mathmode := "Text", name := "F",
next := 119607, root := ~, start := 119593,
stop := 119606 ),
rec(
content := " directory of the package. \nYou\
find there a small server using the TCP/IP protocol and\na corresponding clie\
nt and another small server using the UDP protocol\nand a corresponding client\
. ", count := [ 10, 0, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 10, 0, 0, 4 ],
mathmode := "Text", name := "P",
next := 119798, root := ~, start := 119794,
stop := 119797 ),
rec(
content := "\n\nFurther, there is an example\
for the\nusage of ", count := [ 10, 0, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "File",
count := [ 10, 0, 0, 4 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 0, 0, 4 ],
mathmode := "Text", name := "C",
next := 119857, root := ~, start := 119846,
stop := 119856 ),
rec(
content := " objects, that read from or writ\
e to strings.", count := [ 10, 0, 0, 4 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 10, 0, 0, 5 ],
mathmode := "Text", name := "P",
next := 119906, root := ~, start := 119902,
stop := 119905 ),
rec(
content := "\n\nAnother example there shows \
starting up a child process and piping\na few megabytes through it using ",
count := [ 10, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( Func := "IO_Popen2" ),
content := 0, count := [ 10, 0, 0, 5 ],
mathmode := "Text", name := "Ref",
next := 120031, root := ~, start := 120008,
stop := 120030 ),
rec( content := ".\n\n",
count := [ 10, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 10, 0, 0, 6 ],
mathmode := "Text", name := "P",
next := 120038, root := ~, start := 120034,
stop := 120037 ),
rec(
content := "\nIn the following, we present a\
few explicit, interactive short examples \nfor the usage of the functions in \
this package. Note that you have to\nload the ", count := [ 10, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 10, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 0, 0, 6 ],
mathmode := "Text", name := "Package",
next := 120212, root := ~, start := 120191,
stop := 120211 ),
rec( content := " package with the command \n",
count := [ 10, 0, 0, 6 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "LoadPackage(\"IO\");",
count := [ 10, 0, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 0, 0, 6 ],
mathmode := "Text", name := "C",
next := 120264, root := ~, start := 120239,
stop := 120263 ),
rec(
content := "\nbefore trying these examples.\\
n\n", count := [ 10, 0, 0, 6 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 10, 1, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Writing and readi\
ng a file", count := [ 10, 1, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 10, 1, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 120351,
root := ~, start := 120306,
stop := 120350 ),
rec(
content := "\n\nThe following sequen\
ce of commands opens a file with name ", count := [ 10, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "guck",
count := [ 10, 1, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 1, 0, 3 ],
mathmode := "Text", name := "F",
next := 120422, root := ~,
start := 120411, stop := 120421 ),
rec(
content := " and\nwrites some things\
to it:\n\n", count := [ 10, 1, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> f := IO_Fi\
le(\"guck\",\"w\");\n<file fd=3 wbufsize=65536 wdata=0>\ngap> IO_Write(f,\"Hel\
lo world\\n\");\n12\ngap> IO_WriteLine(f,\"Hello world2!\");\n14\ngap> IO_Writ\
e(f,12345);\n5\ngap> IO_Flush(f);\ntrue\ngap> IO_Close(f);\ntrue\n",
count := [ 10, 1, 0, 4 ],
name := "PCDATA", root := ~
) ],
count := [ 10, 1, 0, 4 ],
mathmode := "Text", name := "Log",
next := 120685, root := ~,
start := 120454, stop := 120684 ),
rec(
content := "\n\nThere is nothing spe\
cial about this, the numbers are numbers of bytes\nwritten. Note that only aft\
er the ", count := [ 10, 1, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( Func := "IO_Flush" ),
content := 0,
count := [ 10, 1, 0, 5 ],
mathmode := "Text", name := "Ref",
next := 120813, root := ~,
start := 120791, stop := 120812 ),
rec(
content := " command the\ndata is ac\
tually written to disk. Before that, it resides in the\nwrite buffer of the fi\
le. Note further, that the ", count := [ 10, 1, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Func := "IO_Flush" ),
content := 0,
count := [ 10, 1, 0, 5 ],
mathmode := "Text", name := "Ref",
next := 120962, root := ~,
start := 120940, stop := 120961 ),
rec(
content := "\ncall here would not ha\
ve been necessary, since the ", count := [ 10, 1, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Func := "IO_Close" ),
content := 0,
count := [ 10, 1, 0, 5 ],
mathmode := "Text", name := "Ref",
next := 121036, root := ~,
start := 121014, stop := 121035 ),
rec(
content := "\ncall flushes the buffe\
r anyway.", count := [ 10, 1, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content := 0,
count := [ 10, 1, 0, 6 ],
mathmode := "Text", name := "P",
next := 121072, root := ~,
start := 121068, stop := 121071 ),
rec(
content := "\n\nThe file can again b\
e read with the following sequence of commands:\n\n",
count := [ 10, 1, 0, 6 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> f := IO_Fi\
le(\"guck\",\"r\");\n<file fd=3 rbufsize=65536 rpos=1 rdata=0>\ngap> IO_Read(f\
,10);\n\"Hello worl\"\ngap> IO_ReadLine(f);\n\"d\\n\"\ngap> IO_ReadLine(f);\n\
\"Hello world2!\\n\"\ngap> IO_ReadLine(f);\n\"12345\"\ngap> IO_ReadLine(f);\n\
\"\"\ngap> IO_Close(f);\ntrue\n", count := [ 10, 1, 0, 7 ], name := "PCDATA",
root := ~ ) ],
count := [ 10, 1, 0, 7 ],
mathmode := "Text", name := "Log",
next := 121406, root := ~,
start := 121143, stop := 121405 ),
rec(
content := "\n\nNote here that readi\
ng line-wise can only be done efficiently by using\nbuffered I/O. You can mix \
calls to ", count := [ 10, 1, 0, 8 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec(
attributes :=
rec( Func := "IO_Read" ),
content := 0,
count := [ 10, 1, 0, 8 ],
mathmode := "Text", name := "Ref",
next := 121535, root := ~,
start := 121514, stop := 121534 ),
rec( content := " and to\n",
count := [ 10, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Func := "IO_ReadLine" ),
content := 0,
count := [ 10, 1, 0, 8 ],
mathmode := "Text", name := "Ref",
next := 121568, root := ~,
start := 121543, stop := 121567 ),
rec(
content := ". The end of file is ind\
icated by an empty\nstring returned by one of the read functions.\n",
count := [ 10, 1, 0, 8 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 1, 0, 1 ],
mathmode := "Text", name := "Section",
next := 121667, root := ~, start := 120296,
stop := 121666 ),
rec( content := "\n\n",
count := [ 10, 1, 0, 8 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 10, 2, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Using filtering p\
rograms to read and write files", count := [ 10, 2, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 2, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 121746,
root := ~, start := 121679,
stop := 121745 ),
rec(
content := "\n\nIf you want to write\
a big amount of data to file you might want to compress\nit on the fly withou\
t using much disk space. This can be achieved with\nthe following command:\n\n\
", count := [ 10, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ )
,
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> s := \"\"\
;; for i in [1..10000] do Append(s,String(i)); od;;\ngap> Length(s);\n38894\ng\
ap> IO_FileFilterString(\"guck.gz\",[[\"gzip\",[\"-9c\"]]],s);\ntrue\ngap> sgz\
:= StringFile(\"guck.gz\");;\ngap> Length(sgz);\n18541\ngap> ss := IO_StringF\
ilterFile([[\"gzip\",[\"-dc\"]]],\"guck.gz\");;\ngap> s=ss;\ntrue\n",
count := [ 10, 2, 0, 4 ],
name := "PCDATA", root := ~
) ],
count := [ 10, 2, 0, 4 ],
mathmode := "Text", name := "Log",
next := 122220, root := ~,
start := 121920, stop := 122219 ),
rec(
content := "\n\nThis sequence of com\
mands needs that the program ", count := [ 10, 2, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "gzip",
count := [ 10, 2, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 2, 0, 5 ],
mathmode := "Text", name := "F",
next := 122282, root := ~,
start := 122271, stop := 122281 ),
rec(
content := " is installed\non your s\
ystem.\n", count := [ 10, 2, 0, 5 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 10, 2, 0, 1 ],
mathmode := "Text", name := "Section",
next := 122322, root := ~, start := 121669,
stop := 122321 ),
rec( content := "\n\n",
count := [ 10, 2, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 10, 3, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Using filters whe\
n reading or writing files sequentially", count := [ 10, 3, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 3, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 122409,
root := ~, start := 122334,
stop := 122408 ),
rec(
content := "\n\nIf you want to proce\
ss bigger amounts of data you might not want to\nstore all of it in a single "
, count := [ 10, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 10, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 3, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " string. In that case yo\
u might want\nto access a file on disk sequentially through a filter:\n\n",
count := [ 10, 3, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> f := IO_Fi\
lteredFile([[\"gzip\",[\"-9c\"]]],\"guck.gz\",\"w\");\n<file fd=5 wbufsize=655\
36 wdata=0>\ngap> IO_Write(f,\"Hello world!\\n\");\n13\ngap> IO_Write(f,Elemen\
ts(SymmetricGroup(5)),\"\\n\");\n1359\ngap> IO_Close(f);\ntrue\ngap> f := IO_F\
ilteredFile([[\"gzip\",[\"-dc\"]]],\"guck.gz\",\"r\");\n<file fd=4 rbufsize=65\
536 rpos=1 rdata=0>\ngap> IO_ReadLine(f);\n\"Hello world!\\n\"\ngap> s := IO_R\
eadLine(f);; Length(s);\n1359\ngap> IO_Read(f,10); \n\"\"\nga\
p> IO_Close(f);\ntrue\n", count := [ 10, 3, 0, 4 ], name := "PCDATA",
root := ~ ) ],
count := [ 10, 3, 0, 4 ],
mathmode := "Text", name := "Log",
next := 123085, root := ~,
start := 122606, stop := 123084 ),
rec( content := "\n",
count := [ 10, 3, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 3, 0, 1 ],
mathmode := "Text", name := "Section",
next := 123096, root := ~, start := 122324,
stop := 123095 ),
rec( content := "\n\n",
count := [ 10, 3, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 10, 4, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "Accessing a web p\
age", count := [ 10, 4, 0, 2 ], mathmode := "Text", name := "PCDATA",
root := ~ ) ],
count := [ 10, 4, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 123147,
root := ~, start := 123108,
stop := 123146 ),
rec( content := "\n\nThe ",
count := [ 10, 4, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "IO",
count := [ 10, 4, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 4, 0, 3 ],
mathmode := "Text",
name := "Package", next := 123174,
root := ~, start := 123153,
stop := 123173 ),
rec(
content := " package has an HTTP cli\
ent implementation. Using this\nyou can access web pages and other web downloa\
ds from within ", count := [ 10, 4, 0, 3 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 10, 4, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 4, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := ". Here\nis an example:\n\
\n", count := [ 10, 4, 0, 3 ], mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> r := Singl\
eHTTPRequest(\"www.math.rwth-aachen.de\",80,\"GET\",\n> \"/~Max.N\
eunhoeffer/index.html\",rec(),false,false);;\ngap> RecFields(r);\n[ \"protover\
sion\", \"statuscode\", \"status\", \"header\", \"body\", \"closed\" ]\ngap> r\
.status;\n\"OK\"\ngap> r.statuscode;\n200\ngap> r.header;\nrec( date := \"Thu,\
07 Dec 2006 22:08:22 GMT\", \n server := \"Apache/2.0.55 (Ubuntu)\", \n las\
t-modified := \"Thu, 16 Nov 2006 00:21:44 GMT\", \n etag := \"\\\"2179cf-11a5\
-3c77f600\\\"\", accept-ranges := \"bytes\", \n content-length := \"4517\", c\
ontent-type := \"text/html; charset=ISO-8859-1\" )\ngap> Length(r.body);\n4517\
\n", count := [ 10, 4, 0, 4 ], name := "PCDATA", root := ~ ) ],
count := [ 10, 4, 0, 4 ],
mathmode := "Text", name := "Log",
next := 123917, root := ~,
start := 123318, stop := 123916 ),
rec(
content := "\n\nOf course, the time \
stamps and exact sizes of the answer may differ\nwhen you do this.\n",
count := [ 10, 4, 0, 5 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 4, 0, 1 ],
mathmode := "Text", name := "Section",
next := 124015, root := ~, start := 123098,
stop := 124014 ),
rec( content := "\n\n",
count := [ 10, 4, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n",
count := [ 10, 5, 0, 1 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "(Un-)Pickling",
count := [ 10, 5, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 5, 0, 2 ],
mathmode := "Text",
name := "Heading", next := 124059,
root := ~, start := 124027,
stop := 124058 ),
rec(
content := "\n\nAssume you have some\
", count := [ 10, 5, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~
),
rec( attributes := rec( ),
content :=
[
rec( content := "GAP",
count := [ 10, 5, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~
) ],
count := [ 10, 5, 0, 3 ],
mathmode := "Text",
name := "Package", next := 23,
root := ~, start := 1, stop := 22 ),
rec(
content := " objects you want to arc\
hive to disk grouped\ntogether. Then you might do the following:\n\n",
count := [ 10, 5, 0, 3 ],
mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> r := rec( \
a := 1, b := \"Max\", c := [1,2,3] );\nrec( a := 1, b := \"Max\", c := [ 1, 2,\
3 ] )\ngap> r.c[4] := r;\nrec( a := 1, b := \"Max\", c := [ 1, 2, 3, ~ ] )\ng\
ap> f := IO_File(\"guck\",\"w\");\n<file fd=3 wbufsize=65536 wdata=0>\ngap> IO\
_Pickle(f,r);\nIO_OK\ngap> IO_Pickle(f,[(1,2,3,4),(3,4)]);\nIO_OK\ngap> IO_Clo\
se(f);\ntrue\n", count := [ 10, 5, 0, 4 ], name := "PCDATA", root := ~ ) ],
count := [ 10, 5, 0, 4 ],
mathmode := "Text", name := "Log",
next := 124510, root := ~,
start := 124176, stop := 124509 ),
rec(
content := "\n\nThen, to read it in \
again, just do:\n\n", count := [ 10, 5, 0, 5 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec(
content := "\ngap> f := IO_Fi\
le(\"guck\");\n<file fd=3 rbufsize=65536 rpos=1 rdata=0>\ngap> IO_Unpickle(f);\
\nrec( a := 1, b := \"Max\", c := [ 1, 2, 3, ~ ] )\ngap> IO_Unpickle(f);\n[ (1\
,2,3,4), (3,4) ]\ngap> IO_Unpickle(f);\nIO_Nothing\ngap> IO_Close(f);\ntrue\n"
,
count := [ 10, 5, 0, 6 ],
name := "PCDATA", root := ~
) ],
count := [ 10, 5, 0, 6 ],
mathmode := "Text", name := "Log",
next := 124798, root := ~,
start := 124549, stop := 124797 ),
rec(
content := "\n\nNote that this works\
for a certain amount of builtin objects. If you want\nto archive your own obj\
ects or more sophisticated objects you have to\nuse extend the functionality a\
s explained in Section \n", count := [ 10, 5, 0, 7 ], mathmode := "Text",
name := "PCDATA", root := ~ ),
rec(
attributes :=
rec( Sect := "ExtPickFrame" ),
content := 0,
count := [ 10, 5, 0, 7 ],
mathmode := "Text", name := "Ref",
next := 125024, root := ~,
start := 124998, stop := 125023 ),
rec(
content := ". However, it works for \
lists and records and\nthey may be arbitrarily self-referential.\n\n",
count := [ 10, 5, 0, 7 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 10, 5, 0, 1 ],
mathmode := "Text", name := "Section",
next := 125123, root := ~, start := 124017,
stop := 125122 ),
rec( content := "\n", count := [ 10, 5, 0, 7 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 10, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 125134, root := ~, start := 119517,
stop := 125133 ),
rec( content := "\n\n", count := [ 10, 5, 0, 7 ],
mathmode := "Text", name := "PCDATA", root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "\n ",
count := [ 11, 0, 0, 1 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ),
content :=
[
rec( content := "License",
count := [ 11, 0, 0, 2 ],
mathmode := "Text",
name := "PCDATA", root := ~ ) ],
count := [ 11, 0, 0, 2 ],
mathmode := "Text", name := "Heading",
next := 125176, root := ~, start := 125150,
stop := 125175 ),
rec(
content := "\n\nThis program is free softwar\
e: you can redistribute it and/or modify\nit under the terms of the GNU Genera\
l Public License as published by\nthe Free Software Foundation, either version\
3 of the License, or\n(at your option) any later version.",
count := [ 11, 0, 0, 3 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 11, 0, 0, 4 ],
mathmode := "Text", name := "P",
next := 125421, root := ~, start := 125417,
stop := 125420 ),
rec(
content := "\n\nThis program is distributed \
in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even th\
e implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. S\
ee the\nGNU General Public License for more details.",
count := [ 11, 0, 0, 4 ],
mathmode := "Text", name := "PCDATA",
root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ 11, 0, 0, 5 ],
mathmode := "Text", name := "P",
next := 125660, root := ~, start := 125656,
stop := 125659 ),
rec(
content := "\n\nYou should have received a c\
opy of the GNU General Public License\nalong with this program. If not, see h\
ttp://www.gnu.org/licenses/.\n\n", count := [ 11, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA",
root := ~ ) ], count := [ 11, 0, 0, 1 ],
mathmode := "Text", name := "Chapter",
next := 125807, root := ~, start := 125136,
stop := 125806 ),
rec( content := "\n\n", count := [ 11, 0, 0, 5 ],
mathmode := "Text", name := "PCDATA", root := ~ ) ],
count := [ 0, 0, 2, 1 ], mathmode := "Text",
name := "Body", next := 125816, root := ~, start := 1197,
stop := 125815 ),
rec( content := " We do not need a bibliography ",
count := [ 11, 0, 0, 5 ], mathmode := "Text",
name := "XMLCOMMENT", root := ~ ),
rec( content := " <Bibliography Databases=\"edim\"/>",
count := [ 11, 0, 0, 5 ], mathmode := "Text",
name := "XMLCOMMENT", root := ~ ),
rec( content := " And finally an index as well ",
count := [ 11, 0, 0, 5 ], mathmode := "Text",
name := "XMLCOMMENT", root := ~ ),
rec( attributes := rec( ), content := 0,
count := [ "Ind", 0, 0, 1 ], mathmode := "Text",
name := "TheIndex", next := 125953, root := ~,
start := 125942, stop := 125952 ) ],
count := [ 0, 0, 0, 1 ], name := "Book", next := 125962, root := ~,
start := 309, stop := 125961 ),
rec(
content := "\nThis program is free software: you can redistribute it\
and/or modify\nit under the terms of the GNU General Public License as publis\
hed by\nthe Free Software Foundation, either version 3 of the License, or\n(at\
your option) any later version.\n\nThis program is distributed in the hope th\
at it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warr\
anty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Ge\
neral Public License for more details.\n\nYou should have received a copy of t\
he GNU General Public License\nalong with this program. If not, see <http://w\
ww.gnu.org/licenses/>.\n", count := [ "Ind", 0, 0, 1 ], name := "XMLCOMMENT",
root := ~ ) ], count := [ 0, 0, 0, 1 ], indent := "",
indextext := "<strong class=\"pkg\">IO</strong> <a href=\"chap1.html#X874E1\
D45845007FE\">1.</a><br />\n<code class=\"func\">AcceptNewConnection</code> <\
a href=\"chap9.html#X7BE1B9FD82C9B8E0\">9.2-7</a><br />\n<code class=\"func\">\
AttachServingSocket</code> <a href=\"chap9.html#X7F7FD824866CB582\">9.2-4</a>\
<br />\n<code class=\"func\">BackgroundJobByFork</code> <a href=\"chap8.html#\
X7FE0061F8484814B\">8.1-1</a><br />\n<code class=\"func\">ChangeCurrentDirecto\
ry</code> <a href=\"chap4.html#X7D849D987800A0F6\">4.3-5</a><br />\n<code cla\
ss=\"func\">CheckForUpdates</code> <a href=\"chap7.html#X78BAF7A77F6BE631\">7\
.1-6</a><br />\n<code class=\"func\">CloseConnection</code> <a href=\"chap9.h\
tml#X8553D2E47C05797F\">9.2-3</a><br />\n<code class=\"func\">CloseHTTPConnect\
ion</code> <a href=\"chap7.html#X81702FA07F2AF472\">7.1-4</a><br />\n<code cl\
ass=\"func\">DoIO</code> <a href=\"chap9.html#X810D418A802D09D1\">9.2-13</a><\
br />\n<code class=\"func\">DoQueues</code> <a href=\"chap8.html#X7ED2CE687EA\
7FC66\">8.3-2</a><br />\n<code class=\"func\">GetInput</code> <a href=\"chap9\
.html#X837629707DF9B60E\">9.2-9</a><br />\n<code class=\"func\">HasTerminated<\
/code> <a href=\"chap8.html#X86E1283D7AD05169\">8.1-3</a><br />\n<code class=\
\"func\">HTTPRequest</code> <a href=\"chap7.html#X80FF9E307BDA0659\">7.1-2</a\
><br />\n<code class=\"func\">HTTPTimeoutForSelect</code> <a href=\"chap7.htm\
l#X83526BF378B3D8F2\">7.1-3</a><br />\n<code class=\"func\">InputQueue</code> \
<a href=\"chap9.html#X7972FF1C7B59D0A4\">9.2-12</a><br />\n<code class=\"func\
\">IO_accept</code> <a href=\"chap3.html#X7E474E9787012FE4\">3.2-1</a><br />\
\n<code class=\"func\">IO_bind</code> <a href=\"chap3.html#X791A6341852001F8\
\">3.2-2</a><br />\n<code class=\"func\">IO_chdir</code> <a href=\"chap3.html\
#X790139B37E87FA61\">3.2-3</a><br />\n<code class=\"func\">IO_chmod</code> <a\
href=\"chap3.html#X83D4CB2681674FA4\">3.2-4</a><br />\n<code class=\"func\">I\
O_chown</code> <a href=\"chap3.html#X85C0617479E4D952\">3.2-5</a><br />\n<cod\
e class=\"func\">IO_ClearPickleCache</code> <a href=\"chap5.html#X844736FB80F\
6EE97\">5.2-3</a><br />\n<code class=\"func\">IO_close</code> <a href=\"chap3\
.html#X820DA9C97C2E80BA\">3.2-6</a><br />\n<code class=\"func\">IO_Close</code\
> <a href=\"chap4.html#X820DA9C97C2E80BA\">4.2-16</a><br />\n<code class=\"fu\
nc\">IO_CloseAllFDs</code> <a href=\"chap4.html#X7C43017E7AC5973A\">4.4-2</a>\
<br />\n<code class=\"func\">IO_closedir</code> <a href=\"chap3.html#X8078699\
B84F082A4\">3.2-7</a><br />\n<code class=\"func\">IO_connect</code> <a href=\
\"chap3.html#X7DE9D8B387D3A3D5\">3.2-8</a><br />\n<code class=\"func\">IO_crea\
t</code> <a href=\"chap3.html#X78FCF69C7FCF3BD7\">3.2-9</a><br />\n<code clas\
s=\"func\">IO_dup</code> <a href=\"chap3.html#X7DAAD93A80F76681\">3.2-10</a><\
br />\n<code class=\"func\">IO_dup2</code> <a href=\"chap3.html#X7F7B8FAC7ABA\
285B\">3.2-11</a><br />\n<code class=\"func\">IO_environ</code> <a href=\"cha\
p3.html#X7F3E88AD7EFD52F4\">3.3-2</a><br />\n<code class=\"func\">IO_Environme\
nt</code> <a href=\"chap4.html#X7F9AAE018474E1D8\">4.3-7</a><br />\n<code cla\
ss=\"func\">IO_Error</code> <a href=\"chap5.html#X86E06A128511BA25\">5.1-1</a\
><br />\n<code class=\"func\">IO_execv</code> <a href=\"chap3.html#X7B30A7FA8\
4692EC5\">3.2-12</a><br />\n<code class=\"func\">IO_execve</code> <a href=\"c\
hap3.html#X875D9A9E8201D461\">3.2-13</a><br />\n<code class=\"func\">IO_execvp\
</code> <a href=\"chap3.html#X818044D07C64A412\">3.2-14</a><br />\n<code clas\
s=\"func\">IO_exit</code> <a href=\"chap3.html#X843634347E88C357\">3.2-15</a>\
<br />\n<code class=\"func\">IO_fchmod</code> <a href=\"chap3.html#X7F08E1187\
BDB619A\">3.2-16</a><br />\n<code class=\"func\">IO_fchown</code> <a href=\"c\
hap3.html#X791C4B4A81059A88\">3.2-17</a><br />\n<code class=\"func\">IO_fcntl<\
/code> <a href=\"chap3.html#X7870647E866D29A4\">3.2-18</a><br />\n<code class\
=\"func\">IO_File</code>, bufsize <a href=\"chap4.html#X7EC160D07E815DBB\">4.\
1-3</a><br />\n<code class=\"func\">IO_File</code>, mode <a href=\"chap4.html\
#X7EC160D07E815DBB\">4.1-3</a><br />\n<code class=\"func\">IO_File</code>, mod\
e and bufsize <a href=\"chap4.html#X7EC160D07E815DBB\">4.1-3</a><br />\n<code\
class=\"func\">IO_FileFilterString</code>, append <a href=\"chap4.html#X83E7\
65D783531845\">4.4-8</a><br />\n<code class=\"func\">IO_FilteredFile</code> <\
a href=\"chap4.html#X801CE3708656FB00\">4.4-9</a><br />\n<code class=\"func\">\
IO_FindExecutable</code> <a href=\"chap4.html#X84E91FE27A7860F3\">4.4-1</a><b\
r />\n<code class=\"func\">IO_Flush</code> <a href=\"chap4.html#X7873A49F7CC7\
ECFB\">4.2-10</a><br />\n<code class=\"func\">IO_FlushNonBlocking</code> <a h\
ref=\"chap4.html#X80E977B48771D207\">4.2-15</a><br />\n<code class=\"func\">IO\
_fork</code> <a href=\"chap3.html#X86C819F37D07ECF7\">3.2-19</a><br />\n<code\
class=\"func\">IO_fstat</code> <a href=\"chap3.html#X7E27748983EC7B5C\">3.2-\
20</a><br />\n<code class=\"func\">IO_GetFD</code> <a href=\"chap4.html#X7F89\
3EFC7D0C7BF2\">4.3-1</a><br />\n<code class=\"func\">IO_gethostbyname</code> \
<a href=\"chap3.html#X7DD25BDC79EE65AD\">3.2-21</a><br />\n<code class=\"func\
\">IO_gethostname</code> <a href=\"chap3.html#X7B7164EF8307D26B\">3.2-22</a><\
br />\n<code class=\"func\">IO_getpid</code> <a href=\"chap3.html#X7ECF948083\
E38BD0\">3.2-23</a><br />\n<code class=\"func\">IO_getppid</code> <a href=\"c\
hap3.html#X7EC6ABAB7AB9F40F\">3.2-24</a><br />\n<code class=\"func\">IO_getsoc\
kname</code> <a href=\"chap3.html#X877A161482FC1769\">3.2-25</a><br />\n<code\
class=\"func\">IO_getsockopt</code> <a href=\"chap3.html#X790213D885BAB495\"\
>3.2-26</a><br />\n<code class=\"func\">IO_gettimeofday</code> <a href=\"chap\
3.html#X7BC965198011083B\">3.2-27</a><br />\n<code class=\"func\">IO_GetWBuf</\
code> <a href=\"chap4.html#X86666C9681EA7297\">4.3-2</a><br />\n<code class=\
\"func\">IO_gmtime</code> <a href=\"chap3.html#X7DC156EA86F3F356\">3.2-28</a>\
<br />\n<code class=\"func\">IO_HasData</code> <a href=\"chap4.html#X87E0AC54\
7835F21D\">4.2-5</a><br />\n<code class=\"func\">IO_InstallSIGCHLDHandler</cod\
e> <a href=\"chap3.html#X8383E62D86BE30C6\">3.3-3</a><br />\n<code class=\"fu\
nc\">IO_kill</code> <a href=\"chap3.html#X7D0439128512FBF6\">3.2-29</a><br />\
\n<code class=\"func\">IO_lchown</code> <a href=\"chap3.html#X8305F97C87FE448\
E\">3.2-30</a><br />\n<code class=\"func\">IO_link</code> <a href=\"chap3.htm\
l#X7E1C65EB84497185\">3.2-31</a><br />\n<code class=\"func\">IO_ListDir</code>\
<a href=\"chap4.html#X84B16DB878265F02\">4.3-4</a><br />\n<code class=\"func\
\">IO_listen</code> <a href=\"chap3.html#X7957063B807025C7\">3.2-32</a><br />\
\n<code class=\"func\">IO_localtime</code> <a href=\"chap3.html#X7B7D3D64805F\
335F\">3.2-33</a><br />\n<code class=\"func\">IO_lseek</code> <a href=\"chap3\
.html#X85C475187C824830\">3.2-34</a><br />\n<code class=\"func\">IO_lstat</cod\
e> <a href=\"chap3.html#X7A8C75038517A55A\">3.2-35</a><br />\n<code class=\"f\
unc\">IO_make_sockaddr_in</code> <a href=\"chap3.html#X878007A67E806CEF\">3.3\
-1</a><br />\n<code class=\"func\">IO_MakeEnvList</code> <a href=\"chap4.html\
#X7CF3DB5081A91600\">4.3-8</a><br />\n<code class=\"func\">IO_MakeIPAddressPor\
t</code> <a href=\"chap4.html#X8568CE6684C90CE5\">4.3-6</a><br />\n<code clas\
s=\"func\">IO_mkdir</code> <a href=\"chap3.html#X83D968AB84F00ABF\">3.2-36</a\
><br />\n<code class=\"func\">IO_mkfifo</code> <a href=\"chap3.html#X80BFF17A\
8099815F\">3.2-37</a><br />\n<code class=\"func\">IO_mknod</code> <a href=\"c\
hap3.html#X7928F1DB8379F850\">3.2-38</a><br />\n<code class=\"func\">IO_Nothin\
g</code> <a href=\"chap5.html#X7887BFCF824B439B\">5.1-2</a><br />\n<code clas\
s=\"func\">IO_OK</code> <a href=\"chap5.html#X7D4D092B8401EA0F\">5.1-3</a><br\
/>\n<code class=\"func\">IO_open</code> <a href=\"chap3.html#X8731A44E8032D9\
D2\">3.2-39</a><br />\n<code class=\"func\">IO_opendir</code> <a href=\"chap3\
.html#X78E234797EB01883\">3.2-40</a><br />\n<code class=\"func\">IO_Pickle</co\
de> <a href=\"chap5.html#X7E01770481297DF1\">5.2-1</a><br />\n<code class=\"f\
unc\">IO_pipe</code> <a href=\"chap3.html#X7C8F0A44837BBE8C\">3.2-41</a><br /\
>\n<code class=\"func\">IO_PipeThrough</code> <a href=\"chap4.html#X8484B0CD7\
836A19E\">4.4-11</a><br />\n<code class=\"func\">IO_PipeThroughWithError</code\
> <a href=\"chap4.html#X7A9ACA3979635506\">4.4-12</a><br />\n<code class=\"fu\
nc\">IO_Popen</code> <a href=\"chap4.html#X7891F56386C008CE\">4.4-3</a><br />\
\n<code class=\"func\">IO_Popen2</code> <a href=\"chap4.html#X7E05CF6481CBC0A\
1\">4.4-4</a><br />\n<code class=\"func\">IO_Popen3</code> <a href=\"chap4.ht\
ml#X7975BC6D80BC71E5\">4.4-5</a><br />\n<code class=\"func\">IO_read</code> <\
a href=\"chap3.html#X84F3D862836BF17C\">3.2-42</a><br />\n<code class=\"func\"\
>IO_Read</code> <a href=\"chap4.html#X84F3D862836BF17C\">4.2-6</a><br />\n<co\
de class=\"func\">IO_ReadBlock</code> <a href=\"chap4.html#X7D2686ED854BEF95\
\">4.2-2</a><br />\n<code class=\"func\">IO_readdir</code> <a href=\"chap3.ht\
ml#X8410C6F17DE9302D\">3.2-43</a><br />\n<code class=\"func\">IO_ReadLine</cod\
e> <a href=\"chap4.html#X8738708E7B9DF8DB\">4.2-3</a><br />\n<code class=\"fu\
nc\">IO_ReadLines</code> <a href=\"chap4.html#X81E72756806C0945\">4.2-4</a><b\
r />\n<code class=\"func\">IO_readlink</code> <a href=\"chap3.html#X7943F25E7\
EBA9A6B\">3.2-44</a><br />\n<code class=\"func\">IO_ReadUntilEOF</code> <a hr\
ef=\"chap4.html#X865A873E78C822B7\">4.2-1</a><br />\n<code class=\"func\">IO_R\
eadyForFlush</code> <a href=\"chap4.html#X7C5786E07813434B\">4.2-14</a><br />\
\n<code class=\"func\">IO_ReadyForWrite</code> <a href=\"chap4.html#X80CF240F\
78664DF4\">4.2-12</a><br />\n<code class=\"func\">IO_recv</code> <a href=\"ch\
ap3.html#X78EB295E78B363B2\">3.2-45</a><br />\n<code class=\"func\">IO_recvfro\
m</code> <a href=\"chap3.html#X84C617887EE02EB4\">3.2-46</a><br />\n<code cla\
ss=\"func\">IO_rename</code> <a href=\"chap3.html#X78EC95007A92AB69\">3.2-47<\
/a><br />\n<code class=\"func\">IO_RestoreSIGCHLDHandler</code> <a href=\"cha\
p3.html#X7EEB7471816B64DF\">3.3-4</a><br />\n<code class=\"func\">IO_rewinddir\
</code> <a href=\"chap3.html#X7F86DBEB7876FBA5\">3.2-48</a><br />\n<code clas\
s=\"func\">IO_rmdir</code> <a href=\"chap3.html#X7FA4DD537C83A199\">3.2-49</a\
><br />\n<code class=\"func\">IO_seekdir</code> <a href=\"chap3.html#X84A98D2\
380BF6574\">3.2-50</a><br />\n<code class=\"func\">IO_select</code> <a href=\
\"chap3.html#X81CA6EE88062010E\">3.2-51</a><br />\n<code class=\"func\">IO_Sel\
ect</code> <a href=\"chap4.html#X81CA6EE88062010E\">4.3-3</a><br />\n<code cl\
ass=\"func\">IO_send</code> <a href=\"chap3.html#X87019FD887F55C27\">3.2-52</\
a><br />\n<code class=\"func\">IO_SendStringBackground</code> <a href=\"chap4\
.html#X7D62E9C57F1F96FB\">4.4-10</a><br />\n<code class=\"func\">IO_sendto</co\
de> <a href=\"chap3.html#X8388B0147B5745EC\">3.2-53</a><br />\n<code class=\"\
func\">IO_setsockopt</code> <a href=\"chap3.html#X7BE641C1784D0899\">3.2-54</\
a><br />\n<code class=\"func\">IO_socket</code> <a href=\"chap3.html#X852B16C\
F82B96C84\">3.2-55</a><br />\n<code class=\"func\">IO_StartPipeline</code> <a\
href=\"chap4.html#X813219C17FB54731\">4.4-6</a><br />\n<code class=\"func\">I\
O_stat</code> <a href=\"chap3.html#X7F7D23867B45D525\">3.2-56</a><br />\n<cod\
e class=\"func\">IO_StringFilterFile</code> <a href=\"chap4.html#X86D61FAE871\
B23E8\">4.4-7</a><br />\n<code class=\"func\">IO_symlink</code> <a href=\"cha\
p3.html#X7B0D9CEF7A3CD431\">3.2-57</a><br />\n<code class=\"func\">IO_telldir<\
/code> <a href=\"chap3.html#X81FF8B678748900B\">3.2-58</a><br />\n<code class\
=\"func\">IO_unlink</code> <a href=\"chap3.html#X78C93B6587B478C2\">3.2-59</a\
><br />\n<code class=\"func\">IO_Unpickle</code> <a href=\"chap5.html#X8228EE\
63809A6DEF\">5.2-2</a><br />\n<code class=\"func\">IO_WaitPid</code> <a href=\
\"chap3.html#X80737A008450184F\">3.2-60</a><br />\n<code class=\"func\">IO_Wra\
pFD</code> <a href=\"chap4.html#X7DDB0BA6836DA208\">4.1-2</a><br />\n<code cl\
ass=\"func\">IO_write</code> <a href=\"chap3.html#X84EB06707D1BD3F1\">3.2-61<\
/a><br />\n<code class=\"func\">IO_Write</code> <a href=\"chap4.html#X84EB067\
07D1BD3F1\">4.2-7</a><br />\n<code class=\"func\">IO_WriteFlush</code> <a hre\
f=\"chap4.html#X7870634278F6C69F\">4.2-11</a><br />\n<code class=\"func\">IO_W\
riteLine</code> <a href=\"chap4.html#X83A03ACB81F53BB1\">4.2-8</a><br />\n<co\
de class=\"func\">IO_WriteLines</code> <a href=\"chap4.html#X87CE6EC17C1573AC\
\">4.2-9</a><br />\n<code class=\"func\">IO_WriteNonBlocking</code> <a href=\
\"chap4.html#X84052F9886ADED0D\">4.2-13</a><br />\n<code class=\"func\">IOHub<\
/code> <a href=\"chap9.html#X83C0523D8538E866\">9.2-1</a><br />\n<code class=\
\"func\">IsFile</code> <a href=\"chap4.html#X80C9B80A80E3A555\">4.1-1</a><br \
/>\n<code class=\"func\">IsIdle</code>, bgjob <a href=\"chap8.html#X7B7D93458\
3257B9A\">8.1-2</a><br />\n<code class=\"func\">IsIdle</code>, wfarm <a href=\
\"chap8.html#X7C4E3D5A7FE617FE\">8.3-4</a><br />\n<code class=\"func\">Kill</c\
ode>, bgjob <a href=\"chap8.html#X841B3A1A7967DEA4\">8.1-7</a><br />\n<code c\
lass=\"func\">Kill</code>, wfarm <a href=\"chap8.html#X83289405792FF902\">8.3\
-3</a><br />\n<code class=\"func\">NewConnection</code> <a href=\"chap9.html#\
X7D1D9A8D837ECCEB\">9.2-2</a><br />\n<code class=\"func\">NewTCPConnection</co\
de> <a href=\"chap9.html#X79031BC687502CB6\">9.2-10</a><br />\n<code class=\"\
func\">OpenHTTPConnection</code> <a href=\"chap7.html#X7B5588D5856BE6DD\">7.1\
-1</a><br />\n<code class=\"func\">OutputQueue</code> <a href=\"chap9.html#X7\
F8C7F5782213A71\">9.2-11</a><br />\n<code class=\"func\">ParDoByFork</code> <\
a href=\"chap8.html#X7A1F40D1841C36D2\">8.2-2</a><br />\n<code class=\"func\">\
ParListByFork</code> <a href=\"chap8.html#X80DA6945873DCC66\">8.2-3</a><br />\
\n<code class=\"func\">ParMapReduceByFork</code> <a href=\"chap8.html#X7AD5D8\
5283BC41AC\">8.2-4</a><br />\n<code class=\"func\">ParTakeFirstResultByFork</c\
ode> <a href=\"chap8.html#X78A59A628449960F\">8.2-1</a><br />\n<code class=\"\
func\">ParWorkerFarmByFork</code> <a href=\"chap8.html#X87896E477DCB9C55\">8.\
3-1</a><br />\n<code class=\"func\">Pickup</code>, bgjob <a href=\"chap8.html\
#X7F4B8B9078D0E18E\">8.1-5</a><br />\n<code class=\"func\">Pickup</code>, wfar\
m <a href=\"chap8.html#X7878258F84138DEA\">8.3-6</a><br />\n<code class=\"fun\
c\">RandomSource</code> <a href=\"chap6.html#X7CB0B5BC82F8FD8F\">6.1-1</a><br\
/>\n<code class=\"func\">ReadWeb</code> <a href=\"chap7.html#X872B174F7FFD34\
5B\">7.1-7</a><br />\n<code class=\"func\">Shutdown</code> <a href=\"chap9.ht\
ml#X84AFBD658118ABB8\">9.2-6</a><br />\n<code class=\"func\">ShutdownServingSo\
cket</code> <a href=\"chap9.html#X7866F9DA8358968C\">9.2-5</a><br />\n<code c\
lass=\"func\">SingleHTTPRequest</code> <a href=\"chap7.html#X7DBCB0B4801E4D6D\
\">7.1-5</a><br />\n<code class=\"func\">Submit</code>, bgjob <a href=\"chap8\
.html#X864492F37E858197\">8.1-6</a><br />\n<code class=\"func\">Submit</code>,\
wfarm <a href=\"chap8.html#X81773CEC8246EDF3\">8.3-5</a><br />\n<code class=\
\"func\">SubmitOutput</code> <a href=\"chap9.html#X85F634D4826D89F1\">9.2-8</\
a><br />\n<code class=\"func\">WaitUntilIdle</code> <a href=\"chap8.html#X7C1\
39805804E6FE1\">8.1-4</a><br />\n",
input := "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!DOCTYPE Book SYSTE\
M \"gapdoc.dtd\">\n\n<!--\n\n io.xml IO package documentation \
Max Neunhoeffer\n\n Copyright (C) 2006-2012 Max Neunhoeffer, Lehrst\
uhl D f. Math., RWTH Aachen\n This file is free software, see license informa\
tion at the end.\n\n-->\n\n<Book Name=\"IO\">\n\n<TitlePage>\n <Title>GAP 4\
Package <Package>IO</Package></Title>\n <Subtitle>Bindings for low level C\
library I/O routines</Subtitle>\n <Version>\n Version 4.3.1\n </Ve\
rsion>\n <Author>Max Neunhöffer\n<Address>\nSchool of Mathematics and Stat\
istics\nMathematical Institute\nUniversity of St Andrews\nNorth Haugh\nSt Andr\
ews, Fife KY16 9SS\nScotland, UK\n</Address>\n <Email>neunhoef@mcs.st-and.a\
c.uk</Email>\n <Homepage>http://www-groups.mcs.st-and.ac.uk/˜neunhoef\
</Homepage>\n </Author>\n <Date>March 2014</Date>\n\n<Copyright>\n &c\
opyright; 2005-2012 by Max Neunhöffer<P/>\n\n This package may be distribute\
d under the terms and conditions of the\n GNU Public License Version 3 or lat\
er.\n</Copyright>\n</TitlePage>\n\n<!-- TableOfContents . . . . . . generat\
e a table of contents -->\n<TableOfContents/>\n\n<!-- The only chapter of t\
he book --> \n<Body>\n<!-- \n\n main.xml IO package documentation\
Max Neunhoeffer\n\n Copyright (C) 2006-2010 Max Neunhoeffer\n Th\
is file is free software, see license information at the end.\n\nThis is the m\
ain chapter of the documentation.\n\n-->\n\n<Chapter Label=\"Chap-Preface\">\n\
<Heading>Preface</Heading>\n<Index><Package>IO</Package></Index>\n\nThe purpos\
e of this package is to allow efficient and flexible input/output\noperations \
from &GAP;. This is achieved by providing bindings to the\nlow-level I/O funct\
ions in the C-library. On top of this an implementation\nof buffered I/O in th\
e &GAP; language is provided. Further, a framework\nfor serialisation of arbit\
rary &GAP; objects is implemented.\nFinally, an implementation of the client s\
ide of the HTTP protocol is\nincluded in the package.<P/>\n\nThis package allo\
ws to use file based I/O, access to links and file\nsystems, pipes, sockets, a\
nd the UDP and TCP/IP protocols.<P/>\n\nBy default the <Package>IO</Package> p\
ackage is not automatically loaded\nby &GAP; when it is installed\
. You must load the package\nwith <C>LoadPackage(\"IO\");</C> befo\
re its functions become\navailable.<P/>\n\nFor bug reports, feature reque\
sts and suggestions, please use our\n<URL Text=\"issue tracker\">https://githu\
b.com/neunhoef/io/issues</URL>.\n\n</Chapter>\n\n<Chapter Label=\"Chap-Install\
\">\n<Heading>Installation of the <Package>IO</Package>-package</Heading>\n\nT\
o get the newest version of this &GAP; 4 package download one of the\narchive \
files\n<List>\n<Item> <F>io-x.x.tar.gz</F> </Item>\n<Item> <F>io-x.x.tar.bz2</\
F> </Item>\n<Item> <F>io-x.x.zip</F> </Item>\n</List>\nand unpack it using \n<\
Verb>\ngunzip io-x.x.tar.gz; tar xvf io-x.x.tar\n</Verb>\nor\n<Verb>\nbzip2 -d\
io-x.x.tar.bz2; tar xvf io-x.x.tar\n</Verb>\nor\n<Verb>\nunzip -x io-x.x.zip\
\n</Verb>\nrespectively.\n<P/>\n\nDo this in a directory called <Q><F>pkg</F><\
/Q>, preferably (but not necessarily)\nin the <Q><F>pkg</F></Q> subdirectory o\
f your &GAP; 4 installation. It creates a\nsubdirectory called <Q><F>io</F></Q\
>.<P/>\n\nThe package will not work without the following compilation step.<P\
/>\n\nTo compile the C part of the package do (in the <F>pkg</F> directory)\n\
\n<Verb>\n cd io\n ./configure\n make\n</Verb>\n\nIf you installed th\
e package in another <Q><F>pkg</F></Q> directory than\nthe standard <Q><F>pkg<\
/F></Q> directory in your &GAP; 4 installation,\nthen you have to do two thing\
s. Firstly during compilation \nyou have to use the option\n<C>--with-gaproot=\
PATH</C> of the <F>configure</F> script\nwhere <Q>PATH</Q> is a path to the ma\
in &GAP; root directory \n(if not given the\ndefault <Q><F>../..</F></Q> is as\
sumed). <P/>\nSecondly you have to \nspecify the path to the directory contain\
ing your\n<Q><F>pkg</F></Q>\ndirectory to &GAP;'s list of directories. This ca\
n be done by starting\n&GAP; with the <Q><F>-l</F></Q> command line option fol\
lowed by the name\nof the directory and a semicolon. Then your directory is pr\
epended to\nthe list of directories searched. Otherwise the package is not fou\
nd by\n&GAP;. Of course, you can add this option to your &GAP; startup script.\
\n<P/>\n\nIf you installed &GAP; on several architectures, you must execute th\
e\nconfigure/make step for each of the architectures. You can either\ndo this \
immediately after configuring and compiling &GAP; itself on\nthis architecture\
, or alternatively (when using version 4.5 of &GAP; or\nnewer) set the environ\
ment variable\n<C>CONFIGNAME</C> to the name of the configuration you used whe\
n\ncompiling &GAP; before running <C>./configure</C>. \nNote however that your\
compiler choice and flags\n(environment variables <C>CC</C> and <C>CFLAGS</C>\
) need to be\nchosen to match the setup of the original &GAP; compilation. For\
\nexample you have to specify 32-bit or 64-bit mode correctly!<P/>\n\n\n<!--\n\
<Section>\n<Heading>Static linking</Heading>\n\n\nThis feature does not work i\
n this version of the package.\nWe leave the old documentation here for the ca\
se that the\nfeature will be reenabled inthe future.<P/>\n\nThis might be inte\
resting for M$ Windows users, as\ndynamic loading of binary modules doe\
s not always work there.\nYou can also create a new statically linked <Q><F>ga\
p</F></Q> binary as follows:\n<P/>\n\nGo into the main &GAP; directory and the\
n into <F>bin/BINDIR</F>. Here\n<F>BINDIR</F> means the directory containing t\
he <Q><F>gap</F></Q> \nexecutable after\ncompiling <Q><F>gap</F></Q>. This dir\
ectory also contains the &GAP; compiler script\n<Q><F>gac</F></Q>. Assuming IO\
in the standard location you can then say\n\n<Verb>\n ./gac -o gap-static \
-p \"-DIOSTATIC -I../../pkg/io/bin/BINDIR\" \\\n -P \"-static\" ../../p\
kg/io/src/io.c\n</Verb>\n\nThen copy your <Q><F>gap</F></Q> start script to, s\
ay, <Q><F>gaps</F></Q> and change the\nreferences to the &GAP; binary to <Q><F\
>gap-static</F></Q>.<P/>\n\nNote that you have to replace <F>BINDIR</F> by the\
name containing the \n<Q><F>gap</F></Q>\nexecutable after compiling GAP as ab\
ove. If you have installed the\npackage in a different place than the standard\
, you have to replace\n<Q><F>../..</F></Q> in the above command by the path to\
the directory containing\nthe <Q><F>pkg</F></Q> directory into which you inst\
alled\n<Package>IO</Package>.\n\nIf you want to install more than one package \
with a C-part like this\npackage, you can still create a statically linked &GA\
P; executable by\ncombining all the compile and link options and all the .c fi\
les as\nin the ./gac command above. For the IO package, you have to add\n<Verb\
>\n -DIOSTATIC -I../../pkg/io/bin/BINDIR\n</Verb>\nto the string of the -p \
option and the file\n<Verb>\n ../../pkg/io/src/io.c\n</Verb>\nsomewhere on th\
e command line. As above, <Q><F>../..</F></Q> and \n<Q><F>BINDIR</F></Q> have \
to be replaced if you installed in a\nnon-standard location.\n\n\n</Section>\n\
-->\n\n<Section>\n<Heading>Recompiling the documentation</Heading>\n\nRecompil\
ing the documentation is possible by the command <Q><F>gap\nmakedoc.g</F></Q>\
\nin the <F>io</F> directory. But this should not be necessary.\n\n</Section>\
\n\n</Chapter>\n\n<!-- #######################################################\
##### -->\n<Chapter Label=\"Chap-CLibFuncs\">\n<Heading>Functions directly ava\
ilable from the C library</Heading>\n\nThe following functions from the C libr\
ary are made available as\n&GAP; functions: <P/>\n\n<C>accept</C>, \n<C>bind</\
C>, \n<C>chdir</C>, \n<C>chmod</C>, \n<C>chown</C>, \n<C>close</C>,\n<C>closed\
ir</C>, \n<C>connect</C>, \n<C>creat</C>, \n<C>dup</C>, \n<C>dup2</C>, \n<C>ex\
ecv</C>,\n<C>execve</C>,\n<C>execvp</C>,\n<C>exit</C>,\n<C>fchmod</C>, \n<C>fc\
hown</C>, \n<C>fcntl</C>,\n<C>fork</C>,\n<C>fstat</C>, \n<C>gethostbyname</C>,\
\n<C>gethostname</C>,\n<C>getpid</C>,\n<C>getppid</C>,\n<C>getsockname</C>,\n\
<C>getsockopt</C>, \n<C>gettimeofday</C>,\n<C>gmtime</C>,\n<C>kill</C>,\n<C>lc\
hown</C>,\n<C>link</C>, \n<C>listen</C>,\n<C>localtime</C>,\n<C>lseek</C>, \n<\
C>lstat</C>,\n<C>mkdir</C>, \n<C>mkfifo</C>, \n<C>mknod</C>, \n<C>open</C>, \n\
<C>opendir</C>, \n<C>pipe</C>,\n<C>read</C>, \n<C>readdir</C>, \n<C>readlink</\
C>,\n<C>recv</C>, \n<C>recvfrom</C>, \n<C>rename</C>, \n<C>rewinddir</C>, \n<C\
>rmdir</C>, \n<C>seekdir</C>,\n<C>select</C>,\n<C>send</C>, \n<C>sendto</C>,\n\
<C>setsockopt</C>, \n<C>socket</C>,\n<C>stat</C>, \n<C>symlink</C>, \n<C>telld\
ir</C>, \n<C>unlink</C>, \n<C>write</C>. <P/>\n\nUse the <C>man</C> command in\
your shell to get information about these\nfunctions.<P/>\n\nFor each of thes\
e functions there is a corresponding &GAP; global function \nwith the prefix <\
C>IO&uscore;</C> before its name. Apart from minor differences\n(see below) th\
ey take exactly the same arguments as their C\ncounterparts. Strings must be s\
pecified as &GAP; strings and integers\nas &GAP; immediate integers. Return va\
lues are in general the same as\nfor the C counterparts. However, an error con\
dition is indicated by the\nvalue <C>fail</C> instead of -1, and if the result\
can only be success\nor failure, <C>true</C> indicates success. <P/>\n\nAll e\
rrors are reported via the <Ref Func=\"LastSystemError\"\nBookName=\"ref\"/> f\
unction.<P/>\n\nIn the C library a lot of integers are defined as macros in he\
ader files.\nAll the necessary values for the above functions are bound to the\
ir name\nin the global <C>IO</C> record. <P/>\n\n<E>Warning:</E> Existence of \
many of these functions and constants\nis platform dependent. The compilation \
process checks existence and\nthis leads to the situation that on the &GAP; le\
vels the functions\nand constants are there or not. If you want to develop pla\
tform\nindependent &GAP; code using this package, then you have to check\nfor \
existence of the functions and constants you need.\n\n<Section>\n<Heading>Diff\
erences in arguments - an overview</Heading>\n\nThe <C>open</C> function has t\
o be called with three arguments. The\nversion with two arguments is not avail\
able on the &GAP; level. <P/>\n\nThe <C>read</C> function takes four arguments\
: <A>fd</A> is an integer\nfile descriptor, <A>st</A> is a &GAP; string, <A>of\
fset</A> is an offset\nwithin this string (zero based), and <A>count</A> is th\
e maximal number \nof bytes to read. The data is read and stored into the stri\
ng <A>st</A>,\nstarting at position <M><A>offset</A>+1</M>. The string <A>st</\
A> is \nmade long enough, such that <A>count</A> bytes would fit into it, begi\
nning\nat position <M><A>offset</A>+1</M>. The number of bytes read is returne\
d\nor <C>fail</C> in case of an error. <P/>\n\nThe <C>write</C> function is si\
milar, it also takes four arguments:\n<A>fd</A> is an integer file descriptor,\
<A>st</A> is a &GAP; string,\n<A>offset</A> is an offset within this string (\
zero based), and \n<A>count</A> is the number of bytes to write, starting from\
position\n<M><A>offset</A>+1</M> in the string <A>st</A>. The number of bytes\
\nwritten is returned, or a <C>fail</C> in case of an error. <P/>\n\nThe <C>op\
endir</C> function only returns <C>true</C> or <C>fail</C>. <P/>\n\nThe <C>rea\
ddir</C> function takes no argument. It reads the directory that\nwas specifie\
d in the last call to <C>opendir</C>. It just returns a string,\nwhich is the \
name of a file or subdirectory in the corresponding directory.\nIt returns <C>\
false</C> after the last file name in the directory or\n<C>fail</C> in case of\
an error. <P/>\n\nThe <C>closedir</C> function takes no argument. It should b\
e called after\n<C>readdir</C> returned <C>false</C> or <C>fail</C> to avoid e\
xcessive\nuse of file descriptors. <P/>\n\nThe functions <C>stat</C>, <C>fstat\
</C>, and <C>lstat</C> only take one\nargument and return a &GAP; record that \
has the same entries as\na <C>struct stat</C>.<P/>\n\nThe function <C>socket</\
C> can optionally take a string as third argument.\nIn that case it automatica\
lly calls <C>getprotobyname</C> to look up the\nprotocol name.<P/>\n\nThe func\
tions <C>bind</C> and <C>connect</C> take only one string argument\nas address\
field, because the string already encodes the length.<P/>\n\nThere are two co\
nvenience functions <Ref Func=\"IO_make_sockaddr_in\"/> and\n<Ref Func=\"IO_Ma\
keIPAddressPort\"/> to create such addresses. The first takes\ntwo arguments <\
A>addr</A> and <A>port</A>, where <A>addr</A> is\na string of length 4, contai\
ning the 4 bytes of the IP address and\n<A>port</A> is a port number as &GAP; \
integer. The function\n<Ref Func=\"IO_MakeIPAddressPort\"/> takes the same arg\
uments, but the first can\nbe a string containing an IP address in dot notatio\
n like\n<Q>137.226.152.77</Q> or a hostname to be looked up.<P/>\n\nThe <C>set\
sockopt</C> function has no argument <A>optlen</A>. The length\nof the string \
<A>optval</A> is taken.<P/>\n\nThe <C>select</C> function works as the functio\
n <C>UNIXSelect</C> in the\n&GAP; library.<P/>\n\nAs of now, the file locking \
mechanisms of <C>fcntl</C> using \n<C>struct flock</C> are not yet implemented\
on the &GAP; level.\n</Section>\n\n<Section>\n <Heading>The low-level func\
tions in detail</Heading>\n\nNearly all of this functions return an integer re\
sult in the C library.\nOn the &GAP; level this is either returned as a non-ne\
gative integer\nin case of success or as <K>fail</K> in case of an error (wher\
e on the\nC level <M>-1</M> would be returned). If the integer can only be <M>\
0</M>\nfor <Q>no error</Q> this is changed to <K>true</K> on the &GAP; level.\
\n\n<ManSection>\n<Func Name=\"IO_accept\" Arg=\"fd, addr\"\n Comm=\"Acce\
pts an incoming network connection\"/>\n<Returns> an integer or <K>fail</K> </\
Returns>\n<Description>\nAccepts an incoming network connection.\nFor details \
see <Q><C>man 2 accept</C></Q>. The argument <A>addr</A> can be\nmade with <Re\
f Func=\"IO_make_sockaddr_in\"/> and contains its length such\nthat no third a\
rgument is necessary.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Na\
me=\"IO_bind\" Arg=\"fd, my_addr\"\n Comm=\"Binds a local address to a so\
cket.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nBind\
s a local address to a socket.\nFor details see <Q><C>man 2 bind</C></Q>. The \
argument\n<A>my&uscore;addr</A> can be made with <Ref Func=\"IO_make_sockaddr_\
in\"/>\nand contains its length such that no third argument is necessary.\n</D\
escription>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_chdir\" Arg=\"path\
\"\n Comm=\"Changes the current working directory.\"/>\n<Returns> <K>true\
</K> or <K>fail</K> </Returns>\n<Description>\nChanges the current working dir\
ectory.\nFor details see <Q><C>man 2 chdir</C></Q>.\n</Description> \n</ManSec\
tion>\n \n<ManSection>\n<Func Name=\"IO_chmod\" Arg=\"pathname, mode\"\n \
Comm=\"Changes the mode of a file.\"/>\n<Returns> <K>true</K> or <K>fail</K> <\
/Returns>\n<Description>\nChanges the mode of a file.\nFor details see <Q><C>m\
an 2 chmod</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Na\
me=\"IO_chown\" Arg=\"path, owner, group\"\n Comm=\"Sets owner and/or gro\
up of file.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description\
>\nSets owner and/or group of file.\nFor details see <Q><C>man 2 chown</C></Q>\
.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_close\" Ar\
g=\"fd\"\n Comm=\"Closes a file descriptor.\"/>\n<Returns> <K>true</K> or\
<K>fail</K> </Returns>\n<Description>\nCloses a file descriptor.\nFor details\
see <Q><C>man 2 close</C></Q>.\n</Description> \n</ManSection>\n \n<ManSectio\
n>\n<Func Name=\"IO_closedir\" Arg=\"\"\n Comm=\"Closes a directory.\"/>\
\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description>\nCloses a dir\
ectory.\nFor details see <Q><C>man 3 closedir</C></Q>. Has no arguments, becau\
se we only\nhave one <C>DIR</C> struct in the C part.\n</Description> \n</ManS\
ection>\n \n<ManSection>\n<Func Name=\"IO_connect\" Arg=\"fd, serv_addr\"\n \
Comm=\"Connects to a remote socket.\"/>\n<Returns> <K>true</K> or <K>fail</\
K> </Returns>\n<Description>\nConnects to a remote socket.\nFor details see <Q\
><C>man 2 connect</C></Q>. The argument\n<A>serv&uscore;addr</A> can be made w\
ith <Ref Func=\"IO_make_sockaddr_in\"/>\nand contains its length such that no \
third argument is necessary.\n</Description> \n</ManSection>\n \n<ManSection>\
\n<Func Name=\"IO_creat\" Arg=\"pathname, mode\"\n Comm=\"Creates a new f\
ile.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nCreat\
es a new file. For details see <Q><C>man 2 creat</C></Q>.\n</Description> \n</\
ManSection>\n \n<ManSection>\n<Func Name=\"IO_dup\" Arg=\"oldfd\"\n Comm=\
\"Duplicates a file descriptor.\"/>\n<Returns> an integer or <K>fail</K> </Ret\
urns>\n<Description>\nDuplicates a file descriptor. \nFor details see <Q><C>ma\
n 2 dup</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\
\"IO_dup2\" Arg=\"oldfd, newfd\"\n Comm=\"Duplicates a file descriptor to\
a new one.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description\
>\nDuplicates a file descriptor to a new one.\nFor details see <Q><C>man 2 dup\
2</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_e\
xecv\" Arg=\"path, argv\"\n Comm=\"Replaces the process with another proc\
ess.\"/>\n<Returns> <K>fail</K> or does not return </Returns>\n<Description>\n\
Replaces the process with another process.\nFor details see <Q><C>man 3 execv<\
/C></Q>. The argument <A>argv</A> is a list\nof strings. The called program do\
es not have to be the first argument\nin this list.\n</Description> \n</ManSec\
tion>\n \n<ManSection>\n<Func Name=\"IO_execve\" Arg=\"path, argv, envp\"\n \
Comm=\"Replaces the process with another process.\"/>\n<Returns> <K>fail</K\
> or does not return </Returns>\n<Description>\nReplaces the process with anot\
her process.\nFor details see <Q><C>man 3 execve</C></Q>. The arguments <A>arg\
v</A> and\n<A>envp</A> are both lists of strings. The called program does not \
have to\nbe the first argument in <A>argv</A>. The list <A>envp</A> can be mad\
e\nwith <Ref Func=\"IO_MakeEnvList\"/> from a record acquired from <Ref\nFunc=\
\"IO_Environment\"/> and modified later.\n</Description> \n</ManSection>\n \n<\
ManSection>\n<Func Name=\"IO_execvp\" Arg=\"path, argv\"\n Comm=\"Replace\
s the process with another process.\"/>\n<Returns> <K>fail</K> or does not ret\
urn </Returns>\n<Description>\nReplaces the process with another process.\nFor\
details see <Q><C>man 3 execvp</C></Q>. The argument <A>argv</A> is a list\no\
f strings. The called program does not have to be the first argument\nin this \
list.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_exit\"\
Arg=\"status\"\n Comm=\"Stops process immediately with return code statu\
s.\"/>\n<Description>\nStops process immediately with return code <A>status</A\
>.\nFor details see <Q><C>man 2 exit</C></Q>. The argument <A>status</A> must\
\nbe an integer. Does not return.\n</Description> \n</ManSection>\n\n<ManSecti\
on>\n<Func Name=\"IO_fchmod\" Arg=\"fd, mode\"\n Comm=\"Changes mode of a\
n opened file.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Descript\
ion>\nChanges mode of an opened file.\nFor details see <Q><C>man 2 fchmod</C><\
/Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_fchown\
\" Arg=\"fd, owner, group\"\n Comm=\"Changes owner and/or group of an ope\
ned file.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description>\
\nChanges owner and/or group of an opened file.\nFor details see <Q><C>man 2 f\
chown</C></Q>.\n</Description> \n</ManSection>\n\n<ManSection>\n<Func Name=\"I\
O_fcntl\" Arg=\"fd, cmd, arg\"\n Comm=\"file control\"/>\n<Returns> an in\
teger or <K>fail</K> </Returns>\n<Description>\n Does various things to con\
trol the behaviour of a file descriptor.\n For details see <Q><C>man 2 fcnt\
l</C></Q>.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_for\
k\" Arg=\"\"\n Comm=\"Forks off a child process, which is an identical co\
py.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nForks \
off a child process, which is an identical copy.\nFor details see <Q><C>man 2 \
fork</C></Q>. Note that if you want to use the\n<Ref Func=\"IO_WaitPid\"/> fun\
ction to wait or check for the termination of\nchild processes, you have to ac\
tivate the SIGCHLD handler for this\npackage beforehand by using the function \
<Ref\nFunc=\"IO_InstallSIGCHLDHandler\"/>. Note further that after that you ca\
nnot use\nthe function <Ref Func=\"InputOutputLocalProcess\" BookName=\"ref\"/\
>\nany more, since its SIGCHLD handler does not work any more. To switch\nback\
to that functionality use the function <Ref\nFunc=\"IO_RestoreSIGCHLDHandler\
\"/>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_fstat\
\" Arg=\"fd\"\n Comm=\"Returns the file meta data for an opened file.\"/>\
\n<Returns> a record or <K>fail</K> </Returns>\n<Description>\nReturns the fil\
e meta data for an opened file.\nFor details see <Q><C>man 2 fstat</C></Q>. A \
&GAP; record is returned with\nthe same entries than a <C>struct stat</C>.\n</\
Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_gethostbyname\"\
Arg=\"name\"\n Comm=\"Return host information by name.\"/>\n<Returns> a \
record or <K>fail</K> </Returns>\n<Description>\nReturn host information by na\
me.\nFor details see <Q><C>man 3 gethostbyname</C></Q>. A &GAP; record is retu\
rned\nwith all the relevant information about the host.\n</Description> \n</Ma\
nSection>\n \n<ManSection>\n<Func Name=\"IO_gethostname\" Arg=\"\"\n Comm\
=\"Return host name.\"/>\n<Returns> a string or <K>fail</K> </Returns>\n<Descr\
iption>\nReturn host name.\nFor details see <Q><C>man 3 gethostname</C></Q>.\n\
</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_getpid\" Arg=\
\"\" Comm=\"Get process ID.\"/>\n<Returns> an integer </Returns>\n<Description\
>\n Returns the process ID of the current process as an integer. For\n d\
etails see <Q><C>man 2 getpid</C></Q>.\n</Description>\n</ManSection>\n\n<ManS\
ection>\n<Func Name=\"IO_getppid\" Arg=\"\" Comm=\"Get parent process ID.\"/>\
\n<Returns> an integer </Returns>\n<Description>\n Returns the process ID o\
f the parent of the current process as an \n integer. For details see <Q><C\
>man 2 getppid</C></Q>.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func \
Name=\"IO_getsockname\" Arg=\"fd\"\n Comm=\"Get a socket name.\"/>\n<Retu\
rns> a string or <K>fail</K> </Returns>\n<Description>\nGet a socket name. For\
details see <Q><C>man 2 getsockname</C></Q>.\n</Description> \n</ManSection>\
\n \n<ManSection>\n<Func Name=\"IO_getsockopt\" Arg=\"fd, level, optname, optv\
al\"\n Comm=\"Get a socket option.\"/>\n<Returns> <K>true</K> or <K>false\
</K> </Returns>\n<Description>\nGet a socket option. For details see <Q><C>man\
2 getsockopt</C></Q>.\nNote that the argument <A>optval</A> carries its lengt\
h around, such that\nno 5th argument is necessary.\n</Description> \n</ManSect\
ion>\n \n<ManSection>\n<Func Name=\"IO_gettimeofday\" Arg=\"\"\n Comm=\"G\
et the current time.\"/>\n<Returns> A record with components <C>tv_sec</C> and\
<C>tv_usec</C> </Returns>\n<Description>\nThis returns the time elapsed since\
1.1.1970, 0:00 GMT. The component\n<C>tv_sec</C> contains the number of full \
seconds and the number\n<C>tv_usec</C> the additional microseconds.\n</Descrip\
tion> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_gmtime\" Arg=\"seconds\
\"\n Comm=\"Computes broken down time.\"/>\n<Returns> A record </Returns>\
\n<Description>\nThe argument is the number of seconds that have elapsed since\
\n1.1.1970, 0:00 GMT. The result is a record with the current Greenwich\nmean \
time\nbroken down into date and time as in the C-library function\n<C>gmtime</\
C>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_kill\" A\
rg=\"pid, sig\" Comm=\"Send signal.\"/>\n<Returns> <K>true</K> or <K>fail</K> \
</Returns>\n<Description>\n Sends the signal <A>sig</A> to the process with\
process ID\n <A>pid</A>. For details see <Q><C>man 2 kill</C></Q>.\n Th\
e signal numbers available can be found in the global\n <C>IO</C> record wi\
th names like <C>SIGTERM</C>.\n</Description>\n</ManSection>\n\n<ManSection>\n\
<Func Name=\"IO_lchown\" Arg=\"path, owner, group\"\n Comm=\"Changes owne\
r and/or group of a file not following links.\"/>\n<Returns> <K>true</K> or <K\
>false</K> </Returns>\n<Description>\nChanges owner and/or group of a file not\
following links.\nFor details see <Q><C>man 2 lchown</C></Q>.\n</Description>\
\n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_link\" Arg=\"oldpath, newpa\
th\"\n Comm=\"Create a hard link.\"/>\n<Returns> <K>true</K> or <K>false<\
/K> </Returns>\n<Description>\nCreate a hard link.\nFor details see <Q><C>man \
2 link</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\
\"IO_listen\" Arg=\"fd, backlog\"\n Comm=\"Switch a socket to listening.\
\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\n<Description>\nSwitch \
a socket to listening.\nFor details see <Q><C>man 2 listen</C></Q>.\n</Descrip\
tion> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_localtime\" Arg=\"seco\
nds\"\n Comm=\"Computes broken down time.\"/>\n<Returns> A record </Retur\
ns>\n<Description>\nThe argument is the number of seconds that have elapsed si\
nce\n1.1.1970, 0:00 GMT. The result is a record with the current local time\nb\
roken down into date and time as in the C-library function\n<C>localtime</C>.\
\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_lseek\" Arg\
=\"fd, offset, whence\"\n Comm=\"Seeks with in an open file.\"/>\n<Return\
s> an integer or <K>fail</K> </Returns>\n<Description>\nSeeks within an open f\
ile.\nFor details see <Q><C>man 2 lseek</C></Q>.\n</Description> \n</ManSectio\
n>\n \n<ManSection>\n<Func Name=\"IO_lstat\" Arg=\"name\"\n Comm=\"Return\
s the file meta data for a file not following links.\"/>\n<Returns> a record o\
r <K>fail</K> </Returns>\n<Description>\nReturns the file meta data for a file\
not following links.\nFor details see <Q><C>man 2 lstat</C></Q>. A &GAP; reco\
rd is returned with\nthe same entries than a <C>struct stat</C>.\n</Descriptio\
n> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_mkdir\" Arg=\"pathname, m\
ode\"\n Comm=\"Creates a directory.\"/>\n<Returns> <K>true</K> or <K>fals\
e</K> </Returns>\n<Description>\nCreates a directory.\nFor details see <Q><C>m\
an 2 mkdir</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Na\
me=\"IO_mkfifo\" Arg=\"pathname, mode\"\n Comm=\"Makes a FIFO special fil\
e (a named pipe).\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\n<Desc\
ription>\nCreates a FIFO special file (a named pipe).\nFor details see <Q><C>m\
an 3 mkfifo</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func N\
ame=\"IO_mknod\" Arg=\"pathname, mode, dev\"\n Comm=\"Create a special or\
ordinary file.\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\n<Descri\
ption>\nCreate a special or ordinary file.\nFor details see <Q><C>man 2 mknod<\
/C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_ope\
n\" Arg=\"pathname, flags, mode\"\n Comm=\"Open and possibly create a fil\
e or device.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description\
>\nOpen and possibly create a file or device.\nFor details see <Q><C>man 2 ope\
n</C></Q>. Only the variant with 3 arguments\ncan be used.\n</Description> \n<\
/ManSection>\n \n<ManSection>\n<Func Name=\"IO_opendir\" Arg=\"name\"\n C\
omm=\"Opens a directory.\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\
\n<Description>\nOpens a directory.\nFor details see <Q><C>man 3 opendir</C></\
Q>. Note that only <K>true</K> is\nreturned if everything is OK, since only on\
e <C>DIR</C> struct is \nstored on the C level and thus only one directory can\
be open at any\ntime.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func\
Name=\"IO_pipe\" Arg=\"\"\n Comm=\"Create a pair of file descriptors wit\
h a pipe between them.\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<Des\
cription>\nCreate a pair of file descriptors with a pipe between them.\nFor de\
tails see <Q><C>man 2 pipe</C></Q>. Note that no arguments are needed. The\nre\
sult is either <K>fail</K> in case of an error or a record with two\ncomponent\
s <C>toread</C> and <C>towrite</C> bound to the two\nfiledescriptors for readi\
ng and writing respectively.\n</Description>\n</ManSection>\n\n<ManSection>\n<\
Func Name=\"IO_read\" Arg=\"fd, st, offset, count\"\n Comm=\"Reads from f\
ile descriptor.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Descript\
ion>\nReads from file descriptor.\nFor details see <Q><C>man 2 read</C></Q>. N\
ote that there is one more argument\n<A>offset</A> to specify at which positio\
n in the string <A>st</A> the\nread data should be stored. Note that <A>offset\
</A> zero means at the\nbeginning of the string, which is position 1 in &GAP;.\
The number of bytes\nread or <K>fail</K> in case of an error is returned.\n</\
Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_readdir\" Arg=\
\"\"\n Comm=\"Reads from a directory.\"/>\n<Returns> a string or <K>fail<\
/K> or <K>false</K> </Returns>\n<Description>\nReads from a directory.\nFor de\
tails see <Q><C>man 2 readdir</C></Q>. Note that no argument is required\nas w\
e have only one <C>DIR</C> struct on the C level. If the directory\nis read co\
mpletely <K>false</K> is returned, and otherwise a string. An\nerror is indica\
ted by <K>fail</K>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Na\
me=\"IO_readlink\" Arg=\"path, buf, bufsize\"\n Comm=\"Reads the value of\
a symbolic link.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Descri\
ption>\nReads the value of a symbolic link.\nFor details see <Q><C>man 2 readl\
ink</C></Q>. <A>buf</A> is modified.\nThe new length of <A>buf</A> is returned\
or <K>fail</K> in case of\nan error.\n</Description> \n</ManSection>\n \n<Man\
Section>\n<Func Name=\"IO_recv\" Arg=\"fd, st, offset, len, flags\"\n Com\
m=\"Receives data from a socket.\"/>\n<Returns> an integer or <K>fail</K> </Re\
turns>\n<Description>\nReceives data from a socket.\nFor details see <Q><C>man\
2 recv</C></Q>. Note the additional argument\n<A>offset</A> which plays the s\
ame role as for the <Ref Func=\"IO_read\"/>\nfunction.\n</Description> \n</Man\
Section>\n \n<ManSection>\n<Func Name=\"IO_recvfrom\" Arg=\"fd, st, offset, le\
n, flags, addr\"\n Comm=\"Receives data from a socket with given address.\
\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nReceives \
data from a socket with given address.\nFor details see <Q><C>man 2 recvfrom</\
C></Q>. Note the additional argument \n<A>offset</A> which plays the same role\
as for the <Ref Func=\"IO_read\"/>\nfunction. The argument <A>addr</A> can be\
\nmade with <Ref Func=\"IO_make_sockaddr_in\"/> and contains its length such\n\
that no 7th argument is necessary.\n</Description> \n</ManSection>\n \n<ManSec\
tion>\n<Func Name=\"IO_rename\" Arg=\"oldpath, newpath\"\n Comm=\"Renames\
a file or moves it.\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\n<D\
escription>\nRenames a file or moves it.\nFor details see <Q><C>man 2 rename</\
C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_rewi\
nddir\" Arg=\"\"\n Comm=\"Rewinds a directory.\"/>\n<Returns> <K>true</K>\
or <K>fail</K> </Returns>\n<Description>\nRewinds a directory.\nFor details s\
ee <Q><C>man 2 rewinddir</C></Q>. Note that no argument is required\nas we hav\
e only one <C>DIR</C> struct on the C level. Returns <K>fail</K>\nonly, if no \
prior <Ref Func=\"IO_opendir\"/> command has been called.\n</Description> \n</\
ManSection>\n \n<ManSection>\n<Func Name=\"IO_rmdir\" Arg=\"name\"\n Comm\
=\"Removes an empty directory.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Ret\
urns>\n<Description>\nRemoves an empty directory.\nFor details see <Q><C>man 2\
rmdir</C></Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\
\"IO_seekdir\" Arg=\"offset\"\n Comm=\"Sets the position of the next read\
dir call.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description>\
\nSets the position of the next readdir call.\nFor details see <Q><C>man 3 see\
kdir</C></Q>. Note that no second argument is \nrequired as we have only one <\
C>DIR</C> struct on the C level.\n</Description> \n</ManSection>\n \n<ManSecti\
on>\n<Func Name=\"IO_select\" Arg=\"inlist, outlist, exclist, timeoutsec, time\
outusec\"\n Comm=\"Used for I/O multiplexing.\"/>\n<Returns> an integer o\
r <K>fail</K> </Returns>\n<Description>\nUsed for I/O multiplexing.\nFor detai\
ls see <Q><C>man 2 select</C></Q>. <A>inlist</A>, <A>outlist</A> and\n<A>excli\
st</A> are lists of filedescriptors, which are modified. If the\ncorresponding\
file descriptor is not yet ready, it is replaced by\n<K>fail</K>. The timeout\
values <A>timeoutsec</A> and\n<A>timeoutusec</A> correspond to the usual argu\
ments of <C>select</C>,\nif both are immediate integers, they are set, otherwi\
se\n<C>select</C> is called with no timeout value.\n</Description> \n</ManSect\
ion>\n \n<ManSection>\n<Func Name=\"IO_send\" Arg=\"fd, st, offset, len, flags\
\"\n Comm=\"Sends data to a socket.\"/>\n<Returns> an integer or <K>fail<\
/K> </Returns>\n<Description>\nSends data to a socket.\nFor details see <Q><C>\
man 2 send</C></Q>. Note that the additional argument\n<A>offset</A> specifies\
the position of the data to send within the\nstring <A>st</A>. It is zero bas\
ed, meaning that zero indicates the\nstart of the string, which is position 1 \
in &GAP;. \n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_s\
endto\" Arg=\"fd, st, offset, len, flags, addr\"\n Comm=\"Sends data to a\
socket.\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nS\
ends data to a socket.\nFor details see <Q><C>man 2 sendto</C></Q>. Note that \
the additional argument\n<A>offset</A> specifies the position of the data to s\
end within the\nstring <A>st</A>. It is zero based, meaning that zero indicate\
s the\nstart of the string, which is position 1 in &GAP;. The argument\n<A>add\
r</A> can be\nmade with <Ref Func=\"IO_make_sockaddr_in\"/> and contains its l\
ength such\nthat no 7th argument is necessary.\n</Description> \n</ManSection>\
\n \n<ManSection>\n<Func Name=\"IO_setsockopt\" Arg=\"fd, level, optname, optv\
al\"\n Comm=\"Sets a socket option.\"/>\n<Returns> <K>true</K> or <K>fail\
</K> </Returns>\n<Description>\nSets a socket option.\nFor details see <Q><C>m\
an 2 setsockopt</C></Q>. Note that the argument\n<A>optval</A> carries its len\
gth around, such that\nno 5th argument is necessary.\n</Description> \n</ManSe\
ction>\n \n<ManSection>\n<Func Name=\"IO_socket\" Arg=\"domain, type, protocol\
\"\n Comm=\"Creates a socket, an endpoint for communication.\"/>\n<Return\
s> an integer or <K>fail</K> </Returns>\n<Description>\nCreates a socket, an e\
ndpoint for communication.\nFor details see <Q><C>man 2 socket</C></Q>.\nThere\
is one little special: On systems that have <C>getprotobyname</C>\nyou can pa\
ss a string as third argument <A>protocol</A> which is automatically\nlooked u\
p by <C>getprotobyname</C>.\n</Description> \n</ManSection>\n \n<ManSection>\n\
<Func Name=\"IO_stat\" Arg=\"pathname\"\n Comm=\"Returns the file metadat\
a for the file pathname.\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<D\
escription>\nReturns the file metadata for the file <A>pathname</A>.\nFor deta\
ils see <Q><C>man 2 stat</C></Q>. A &GAP; record is returned with\nthe same en\
tries than a <C>struct stat</C>.\n</Description> \n</ManSection>\n \n<ManSecti\
on>\n<Func Name=\"IO_symlink\" Arg=\"oldpath, newpath\"\n Comm=\"Creates \
a symbolic link.\"/>\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Descri\
ption>\nCreates a symbolic link.\nFor details see <Q><C>man 2 symlink</C></Q>.\
\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_telldir\" A\
rg=\"\"\n Comm=\"Return current location in directory.\"/>\n<Returns> an \
integer or <K>fail</K> </Returns>\n<Description>\nReturn current location in d\
irectory.\nFor details see <Q><C>man 3 telldir</C></Q>. Note that no second ar\
gument is\nrequired as we have only one <C>DIR</C> struct on the C level.\n</D\
escription> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_unlink\" Arg=\"p\
athname\"\n Comm=\"Delete a name and possibly the file it refers to.\"/>\
\n<Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description>\nDelete a nam\
e and possibly the file it refers to.\nFor details see <Q><C>man 2 unlink</C><\
/Q>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_WaitPid\
\" Arg=\"pid, wait\"\n Comm=\"Waits for the termination of a child proces\
s.\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<Description>\nWaits for\
the termination of a child process.\nFor details see <Q><C>man 2 waitpid</C><\
/Q>. Returns a &GAP; record\ndescribing PID and exit status. The second argume\
nt <A>wait</A> must\nbe either <K>true</K> or <K>false</K>. In the first case,\
the call\nblocks until new information about a terminated child process is\na\
vailable. In the second case no such waiting is performed, the\ncall returns i\
mmediately. See <Ref Func=\"IO_fork\"/>.\n</Description> \n</ManSection>\n \n\
\n<ManSection>\n<Func Name=\"IO_write\" Arg=\"fd, st, offset, count\"\n C\
omm=\"Writes to a file descriptor.\"/>\n<Returns> an integer or <K>fail</K> </\
Returns>\n<Description>\nWrites to a file descriptor.\nFor details see <Q><C>m\
an 2 write</C></Q>. Note that the additional argument\n<A>offset</A> specifies\
the position of the data to send within the\nstring <A>st</A>. It is zero bas\
ed, meaning that zero indicates the\nstart of the string, which is position 1 \
in &GAP;. \n</Description> \n</ManSection>\n \n</Section>\n\n<Section>\n<Headi\
ng>Further C level functions</Heading>\n\nThe following functions do not corre\
spond to functions in the C library,\nbut are there to provide convenience to \
use other functions:\n\n<ManSection>\n<Func Name=\"IO_make_sockaddr_in\" Arg=\
\"ip, port\"\n Comm=\"Makes a struct sockaddr_in from IP address and port\
.\"/>\n<Returns> a string or <K>fail</K> </Returns>\n<Description>\n Makes \
a struct <C>sockaddr&uscore;in</C> from IP address and port.\nThe IP address m\
ust be given as a string of length four, containing the\nfour bytes of an IPv4\
address in natural order. The port must be a port\nnumber. Returns a string c\
ontaining the struct, which can be given to\nall functions above having an add\
ress argument.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"\
IO_environ\" Arg=\"\"\n Comm=\"Returns environment as list of strings.\"/\
>\n<Returns> a list of strings </Returns>\n<Description>\nFor details see <Q><\
C>man environ</C></Q>. Returns the current environment\nas a list of strings o\
f the form <Q>key=value</Q>.\n</Description> \n</ManSection>\n \n<ManSection>\
\n<Func Name=\"IO_InstallSIGCHLDHandler\" Arg=\"\"\n Comm=\"Installs our \
SIGCHLD handler.\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\n<Descr\
iption>\nInstalls our SIGCHLD handler. This functions works as an idempotent. \
That\nis, calling it twice does exactly the same as calling it once. It return\
s\n<K>true</K> when it is called for the first time since then a pointer to\nt\
he old signal handler is stored in a global variable.\nSee <Ref Func=\"IO_fork\
\"/>.\n</Description> \n</ManSection>\n \n<ManSection>\n<Func Name=\"IO_Restor\
eSIGCHLDHandler\" Arg=\"\"\n Comm=\"Restores the original SIGCHLD handler\
.\"/>\n<Description>\nRestores the original SIGCHLD handler. This function wor\
ks as an\nidempotent.\nThat is, calling it twice does exactly the same as call\
ing it once. It\nreturns <K>true</K> when it is called for the first time afte\
r calling\n<Ref Func=\"IO_InstallSIGCHLDHandler\"/>. See <Ref Func=\"IO_fork\"\
/>.\n</Description> \n</ManSection>\n\n</Section>\n\n</Chapter>\n\n<Chapter La\
bel=\"bufio\">\n<Heading>High level functions for buffered I/O</Heading>\n\nTh\
e functions in the previous sections are intended to be a possibility\nfor dir\
ect access to the low level I/O functions in the C library. Thus,\nthe calling\
conventions are strictly as in the original.<P/>\n\nThe functionality describ\
ed in this section is implemented completely\nin the &GAP; language and is int\
ended to provide a good interface\nfor programming in &GAP;. The fundamental o\
bject for I/O on the C library\nlevel is the file descriptor, which is just a \
non-negative integer\nrepresenting an open file of the process. The basic idea\
is to wrap up\nfile descriptors in &GAP; objects that do the buffering.<P/>\n\
\nNote that considerable care has been taken to ensure that one can\ndo I/O mu\
ltiplexing with buffered I/O. That is, one always has the \npossibility to mak\
e sure before a read or write operation, that this\nread or write operation wi\
ll not block. This is crucial when one\nwants to serve more than one I/O chann\
el from the same (single-threaded)\n&GAP; process. This design principle somet\
imes made it necessary\nto have more than one function for a certain operation\
. Those\nfunctions usually differ in a subtle way with respect to their\nblock\
ing behaviour.<P/>\n\nOne remark applies again to nearly all functions present\
ed here: If an\nerror is indicated by the returned value <K>fail</K> one can u\
se the\nlibrary function <Ref Func=\"LastSystemError\" BookName=\"ref\"/> to f\
ind\nout more about the cause of the error. This fact is not mentioned with\ne\
very single function.\n\n<Section>\n <Heading>Types and the creation of <C>\
File</C> objects</Heading>\n\nThe wrapped file objects are in the following ca\
tegory:\n\n<ManSection>\n<Filt Name=\"IsFile\" Arg=\"o\" Type=\"Category\"/>\n\
<Returns> <K>true</K> or <K>false</K> </Returns>\n<Description> The category o\
f <C>File</C> objects. </Description>\n</ManSection>\n\nTo create objects in t\
his category, one uses the following function:\n\n<ManSection>\n<Func Name=\"I\
O_WrapFD\" Arg=\"fd, rbufsize, wbufsize\" \n Comm=\"creates buffering I/O\
objects, called File objects\"/>\n<Returns> a <C>File</C> object </Returns>\n\
<Description>\nThe argument <A>fd</A> must be a file descriptor (i.e. an integ\
er)\nor -1 (see below). <P/>\n\n<A>rbufsize</A> can either be <K>false</K> for\
\nunbuffered reading or an integer buffer size or a string. If it is\nan integ\
er, a read buffer of that size is used. If it is a string,\nthen <A>fd</A> mus\
t be -1 and a <C>File</C> object that reads from that string\nis created.<P/>\
\n\n<A>wbufsize</A> can either be <K>false</K> for\nunbuffered writing or an i\
nteger buffer size or a string. If it is\nan integer, a write buffer of that s\
ize is used. If it is a string,\nthen <A>fd</A> must be -1 and a <C>File</C> o\
bject that appends to that string\nis created.<P/>\n\nThe result of this funct\
ion is a new <C>File</C> object.\n</Description>\n</ManSection>\n\nA convenien\
t way to do this for reading or writing of files on disk\nis the following fun\
ction:\n<ManSection>\n<Func Name=\"IO_File\" Arg=\"filename [,mode]\"\n C\
omm=\"open a file for reading or writing and create a File object\"\n Lab\
el=\"mode\" />\n<Func Name=\"IO_File\" Arg=\"filename [,bufsize]\"\n Comm\
=\"open a file for reading or writing and create a File object\"\n Label=\
\"bufsize\" />\n<Func Name=\"IO_File\" Arg=\"filename,mode,bufsize\"\n Co\
mm=\"open a file for reading or writing and create a File object\"\n Labe\
l=\"mode and bufsize\" />\n<Returns> a <C>File</C> object or <K>fail</K> </Ret\
urns>\n<Description>\nThe argument <A>filename</A> must be a string specifying\
the path name\nof the file to work on. <A>mode</A> must also be a string with\
possible\nvalues <Q>r</Q>, <Q>w</Q>, or <Q>a</Q>, meaning read access, write\
\naccess (with creating and truncating), and append access respectively.\nIf <\
A>mode</A> is omitted, it defaults to <Q>r</Q>. <A>bufsize</A>, if given,\nmus\
t be a positive integer or <C>false</C>, otherwise it defaults to \n<C>IO.Defa\
ultBufSize</C>. \nInternally, the\n<Ref Func=\"IO_open\"/> function is used an\
d the result file descriptor is \nwrapped using <Ref Func=\"IO_WrapFD\"/> with\
<A>bufsize</A>\nas the buffer size. <P/>\n\nThe result is either <K>fail</K> \
in case of an error or a <C>File</C> object\nin case of success.\n</Descriptio\
n>\n</ManSection>\n\nNote that there is a similar function <Ref Func=\"IO_Filt\
eredFile\"/> which \nalso creates a <C>File</C> object but with additional fun\
ctionality with\nrespect to a pipeline for filtering. It is described in its s\
ection\nin Section <Ref Sect=\"ipc\"/>. There is some more low-level functiona\
lity\nto acquire open file descriptors. These can be wrapped into <C>File</C>\
\nobjects using <Ref Func=\"IO_WrapFD\"/>.\n\n</Section>\n<Section>\n <Head\
ing>Reading and writing</Heading>\n\nOnce a <C>File</C> object is created, one\
can use the following\nfunctions on it:\n\n<ManSection>\n<Func Name=\"IO_Read\
UntilEOF\" Arg=\"f\"\n Comm=\"buffered read until end of file\"/>\n<Retur\
ns> a string or <K>fail</K> </Returns>\n<Description>\nThis function reads all\
data from the file <A>f</A> until the end of file.\nThe data is returned as a\
&GAP; string. If the file is already at end of\nfile, an empty string is retu\
rned. If an error occurs, then <K>fail</K> is\nreturned. Note that you still h\
ave to call <Ref Func=\"IO_Close\"/> on the\n<C>File</C> object to properly cl\
ose the file later.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name\
=\"IO_ReadBlock\" Arg=\"f, len\"\n Comm=\"buffered read from File object,\
blocking\"/>\n<Returns> a string or <K>fail</K> </Returns>\n<Description>\nTh\
is function gets two arguments, the first argument <A>f</A> must be\na <C>File\
</C> object and the second argument <A>len</A> must be\na positive integer. Th\
e function tries to read <A>len</A> bytes\nand returns a string of that length\
. If and only if the end of file is \nreached earlier, fewer bytes are returne\
d. If an error occurs, <K>fail</K>\nis returned. Note that this function block\
s until either <A>len</A> bytes\nare read, or the end of file is reached, or a\
n error occurs. For the case\nof pipes or internet connections it is possible \
that currently no more\ndata is available, however, by definition the end of f\
ile is only reached \nafter the connection has been closed by the other side!\
\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_ReadLine\" Ar\
g=\"f\"\n Comm=\"buffered read from File object, one line\"/>\n<Returns> \
a string or <K>fail</K> </Returns>\n<Description>\nThis function gets exactly \
one argument, which must be a <C>File</C> object\n<A>f</A>. It reads one line \
of data, where the definition of line is\noperating system dependent. The line\
end character(s) are included in\nthe result. The function returns a string w\
ith the line in case of\nsuccess and <K>fail</K> in case of an error. In the\n\
latter case, one can query the error with <Ref Func=\"LastSystemError\"\nBookN\
ame=\"ref\"/>.<P/>\n\nNote that the reading is done via the buffer of <A>f</A>\
, such that\nthis function will be quite fast also for large amounts of data.<\
P/>\n\nIf the end of file is hit without a line end, the rest of the file\nis \
returned. If the file is already at end of file before the call,\nthen a strin\
g of length 0 is returned. Note that this\nis not an error but the standard en\
d of file convention!\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Na\
me=\"IO_ReadLines\" Arg=\"f [,max]\"\n Comm=\"buffered read from File obj\
ect, many lines\"/>\n<Returns> a list of strings or <K>fail</K> </Returns>\n<D\
escription>\nThis function gets one or two arguments, the first of which must \
always\nbe a <C>File</C> object <A>f</A>. It reads lines of data (where the\nd\
efinition of line is operating system dependent) either until\nend of file (wi\
thout a second argument) or up to <A>max</A> lines\n(with a second argument <A\
>max</A>. A list of strings with the result is\nreturned, if everything went w\
ell and <K>fail</K> oterwise. In the\nlatter case, one can query the error wit\
h <Ref Func=\"LastSystemError\"\nBookName=\"ref\"/>.<P/>\n\nNote that the read\
ing is done via the buffer of <A>f</A>, such that\nthis function will be quite\
fast also for large amounts of data.<P/>\n\nIf the file is already at the end\
of file, the function returns\na list of length 0. Note that this is not an e\
rror but the standard end of\nfile convention!\n</Description>\n</ManSection>\
\n\n<ManSection>\n<Func Name=\"IO_HasData\" Arg=\"f\"/>\n<Returns> <K>true</K>\
or <K>false</K> </Returns>\n<Description>\nThis function takes one argument <\
A>f</A> which must be a <C>File</C>\nobject. It returns <K>true</K> or <K>fals\
e</K> according to whether\nthere is data to read available in the file <A>f</\
A>. A return value\nof <K>true</K> guarantees that the next call to <Ref Func=\
\"IO_Read\"/>\non that file will succeed without blocking and return at least \
one\nbyte or an empty string to indicate the end of file.\n</Description>\n</M\
anSection>\n\n<ManSection>\n<Func Name=\"IO_Read\" Arg=\"f, len\"\n Comm=\
\"buffered read from File object\"/>\n<Returns> a string or <K>fail</K> </Retu\
rns>\n<Description>\nThe function gets two arguments, the first of which must \
\nbe a <C>File</C> object <A>f</A>. The second argument must be a positive\nin\
teger. The function reads data\nup to <A>len</A> bytes.\nA string with the res\
ult is returned, if everything\nwent well and <K>fail</K> otherwise. In the la\
tter case, one can query\nthe error with <Ref Func=\"LastSystemError\" BookNam\
e=\"ref\"/>.<P/>\n\nNote that the reading is done via the buffer of <A>f</A>, \
such that\nthis function will be quite fast also for large amounts of data.<P/\
>\n\nIf the file is already at the end of the file, the function returns\na st\
ring of length 0. Note that this is not an error!<P/>\n\nIf a previous call to\
<Ref Func=\"IO_HasData\"/> or to <Ref Func=\"IO_Select\"/>\nindicated that th\
ere is data available to read, then it is guaranteed that\nthe function <Ref F\
unc=\"IO_Read\"/> does not block and returns at least\none byte if the file is\
not yet at end of file and an empty string\notherwise.\n</Description>\n</Man\
Section>\n\n<ManSection>\n<Func Name=\"IO_Write\" Arg=\"f [,things ... ]\"\n \
Comm=\"buffered write to File object\"/>\n<Returns> an integer or <K>fail<\
/K> </Returns>\n<Description>\nThis function can get an arbitrary number of ar\
guments, the first of which\nmust be a <C>File</C> object <A>f</A>. All the ot\
her arguments are just\nwritten to <A>f</A> if they are strings. Otherwise, th\
e <K>String</K>\nfunction is called on them and the result is written out to <\
A>f</A>.<P/>\n\nNote that the writing is done buffered. That is, the data is f\
irst written\nto the buffer and only really written out after the buffer is fu\
ll or\nafter the user explicitly calls <Ref Func=\"IO_Flush\"/> on <A>f</A>.<P\
/>\n\nThe result is either the number of bytes written in case of success or\n\
<K>fail</K> in case of an error. In the latter case the error can be\nqueried \
with <Ref Func=\"LastSystemError\" BookName=\"ref\"/>.<P/>\n\nNote that this f\
unction blocks until all data is at least written into\nthe buffer and might b\
lock until data can be sent again if the buffer is\nfull.\n</Description>\n</M\
anSection>\n\n<ManSection>\n<Func Name=\"IO_WriteLine\" Arg=\"f, line\"\n \
Comm=\"buffered write to File object, one line\"/>\n<Returns> an integer or <\
K>fail</K> </Returns>\n<Description>\nBehaves like <Ref Func=\"IO_Write\"/> bu\
t works on a single string\n<A>line</A> and sends an (operating system depende\
nt) end of line\nstring afterwards. Also <Ref Func=\"IO_Flush\"/> is called au\
tomatically\nafter the operation, such that one can be sure, that the data is \
actually\nwritten out after the function has completed.\n</Description>\n</Man\
Section>\n\n<ManSection>\n<Func Name=\"IO_WriteLines\" Arg=\"f, list\"\n \
Comm=\"buffered write to File object, many lines\"/>\n<Returns> an integer or \
<K>fail</K> </Returns>\n<Description>\nBehaves like <Ref Func=\"IO_Write\"/> b\
ut works on a list of strings\n<A>list</A> and sends an (operating system depe\
ndent) end of line\nstring after each string in the list. Also <Ref Func=\"IO_\
Flush\"/> is\ncalled automatically after the operation, such that one can be s\
ure,\nthat the data is actually written out after the function has completed.\
\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_Flush\" Arg=\
\"f\"\n Comm=\"writes stuff in the buffer to the file\"/>\n<Returns> <K>t\
rue</K> or <K>fail</K> </Returns>\n<Description>\nThis function gets one argum\
ent <A>f</A>, which must be a <C>File</C>\nobject. It writes out all the data \
that is in the write buffer. This\nis not necessary before the call to the fun\
ction <Ref Func=\"IO_Close\"/>,\nsince that function calls <Ref Func=\"IO_Flus\
h\"/> automatically.\nHowever, it is necessary to call <Ref Func=\"IO_Flush\"/\
> after calls to\n<Ref Func=\"IO_Write\"/> to be sure that the data is really \
sent out. The\nfunction returns <K>true</K> if everything goes well and <K>fai\
l</K>\nif an error occurs.<P/>\n\nRemember that the functions <Ref Func=\"IO_W\
riteLine\"/> and <Ref\nFunc=\"IO_WriteLines\"/> implicitly call <Ref Func=\"IO\
_Flush\"/> after\nthey are done.<P/>\n\nNote that this function might block un\
til all data is actually written\nto the file descriptor.\n</Description>\n</M\
anSection>\n\n<ManSection>\n<Func Name=\"IO_WriteFlush\" Arg=\"f [,things]\"/>\
\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nThis function\
behaves like <Ref Func=\"IO_Write\"/> followed by a call to\n<Ref Func=\"IO_F\
lush\"/>. It returns either the number of bytes written\nor <K>fail</K> if an \
error occurs.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_\
ReadyForWrite\" Arg=\"f\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\
\n<Description>\nThis function takes one argument <A>f</A> which must be a <C>\
File</C>\nobject. It returns <K>true</K> or <K>false</K> according to whether\
\nthe file <A>f</A> is ready to write. A return value\nof <K>true</K> guarante\
es that the next call to <Ref\nFunc=\"IO_WriteNonBlocking\"/>\non that file wi\
ll succeed without blocking and accept at least one\nbyte.\n</Description>\n</\
ManSection>\n\n<ManSection>\n<Func Name=\"IO_WriteNonBlocking\" Arg=\"f, st, p\
os, len\"/>\n<Returns> an integer or <K>fail</K> </Returns>\n<Description>\nTh\
is function takes four arguments. The first one <A>f</A> must be\na <C>File</C\
> object, the second <A>st</A> a string, and the arguments\n<A>pos</A> and <A>\
len</A> must be integers, such that positions\n<M><A>pos</A>+1</M> until <M><A\
>pos</A>+<A>len</A></M> are bound in\n<A>st</A>. The function tries to write u\
p to <A>len</A> bytes from\n<A>st</A> from position <M><A>pos</A>+1</M> to the\
file <A>f</A>.\nIf a previous call to <Ref Func=\"IO_ReadyForWrite\"/> or to \
<Ref\nFunc=\"IO_Select\"/> indicates that <A>f</A> is writable, then it is\ngu\
aranteed that the following call to <Ref Func=\"IO_WriteNonBlocking\"/>\nwill \
not block and accept at least one byte of data. Note that it is not\nguarantee\
d that all <A>len</A> bytes are written. The function returns\nthe number of b\
ytes written or <K>fail</K> if an error occurs.\n</Description>\n</ManSection>\
\n\n<ManSection>\n<Func Name=\"IO_ReadyForFlush\" Arg=\"f\"/>\n<Returns> <K>tr\
ue</K> or <K>false</K> </Returns>\n<Description>\nThis function takes one argu\
ment <A>f</A> which must be a <C>File</C>\nobject. It returns <K>true</K> or <\
K>false</K> according to whether\nthe file <A>f</A> is ready to flush. A retur\
n value\nof <K>true</K> guarantees that the next call to <Ref\nFunc=\"IO_Flush\
NonBlocking\"/>\non that file will succeed without blocking and flush out at l\
east one\nbyte. Note that this does not guarantee, that this call succeeds to\
\nflush out the whole content of the buffer!\n</Description>\n</ManSection>\n\
\n<ManSection>\n<Func Name=\"IO_FlushNonBlocking\" Arg=\"f\"/>\n<Returns> <K>t\
rue</K>, <K>false</K>, or <K>fail</K> </Returns>\n<Description>\nThis function\
takes one argument <A>f</A> which must be a <C>File</C>\nobject. It tries to \
write all data in the writing buffer to the file\ndescriptor. If this succeeds\
, the function returns <K>true</K> and\n<K>false</K> otherwise. If an error oc\
curs, <K>fail</K> is returned.\nIf a previous call to <Ref Func=\"IO_ReadyForF\
lush\"/> or <Ref\nFunc=\"IO_Select\"/> indicated that <A>f</A> is flushable, t\
hen it is\nguaranteed that the following call to <Ref Func=\"IO_FlushNonBlocki\
ng\"/>\ndoes not block. However, it is not guaranteed that <K>true</K> is retu\
rned\nfrom that call.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Na\
me=\"IO_Close\" Arg=\"f\"\n Comm=\"closes file and file descriptor\"/>\n<\
Returns> <K>true</K> or <K>fail</K> </Returns>\n<Description>\nThis function c\
loses the <C>File</C> object <A>f</A> after writing all data\nin the write buf\
fer out and closing the file descriptor. All buffers are\nfreed. In case of an\
error, the function returns <K>fail</K> and otherwise\n<K>true</K>. Note that\
for pipes to other processes this function collects\ndata about the terminate\
d processes using <Ref Func=\"IO_WaitPid\"/>.\n</Description>\n</ManSection>\n\
\n</Section>\n\n<Section>\n <Heading>Other functions</Heading>\n\n<ManSecti\
on>\n<Func Name=\"IO_GetFD\" Arg=\"f\"\n Comm=\"returns the real file des\
criptor as an integer\"/>\n<Returns> an integer </Returns>\n<Description>\nThi\
s function returns the real file descriptor that is behind the\n<C>File</C> ob\
ject <A>f</A>.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO\
_GetWBuf\" Arg=\"f\"\n Comm=\"returns the writing buffer as a string\"/>\
\n<Returns> a string or <K>false</K> </Returns>\n<Description>\nThis function \
gets one argument <A>f</A> which must be a <C>File</C> object\nand returns the\
writing buffer of that <C>File</C> object. This is\nnecessary for <C>File</C>\
objects, that are not associated to a\nreal file descriptor but just collect \
everything that was written\nin their writing buffer. Remember to use this fun\
ction before closing\nthe <C>File</C> object.\n</Description>\n</ManSection>\n\
\n<ManSection>\n<Func Name=\"IO_Select\" Arg=\"r, w, f, e, t1, t2\"/>\n<Return\
s> an integer or <K>fail</K> </Returns>\n<Description>\nThis function is the c\
orresponding function to <Ref Func=\"IO_select\"/>\nfor buffered file access. \
It behaves similarly to that function. The\ndifferences are the following: The\
re are four lists of files <A>r</A>,\n<A>w</A>, <A>f</A>, and <A>e</A>. They a\
ll can contain either integers\n(standing for file descriptors) or <C>File</C>\
objects. The list <A>r</A>\nis for checking, whether files or file descriptor\
s are ready to read, the \nlist <A>w</A> is for checking whether they are read\
y to write, the\nlist <A>f</A> is for checking whether they are ready to flush\
, and\nthe list <A>e</A> is for checking whether they have exceptions.<P/>\n\n\
For <C>File</C> objects it is always first checked, whether there is either\nd\
ata available in a reading buffer or space in a writing buffer. If so,\nthey a\
re immediately reported to be ready (this feature makes the\nlist of <C>File</\
C> objects to test for flushability necessary). \nFor the remaining files and \
for\nall specified file descriptors, the function <Ref Func=\"IO_select\"/> is\
\ncalled to get an overview about readiness. The timeout values <A>t1</A>\nand\
<A>t2</A> are set to zero for immediate returning if one of the\nrequested bu\
ffers were ready.<P/>\n\n<Ref Func=\"IO_Select\"/> returns the number of files\
or file descriptors\nthat are ready to serve or <K>fail</K> if an error occur\
s.\n</Description>\n</ManSection>\n\nThe following function is a convenience f\
unction for directory access:\n\n<ManSection>\n<Func Name=\"IO_ListDir\" Arg=\
\"pathname\"\n Comm=\"returns a list of file names in the directory pathn\
ame\"/>\n<Returns> a list of strings or <K>fail</K> </Returns>\n<Description>\
\nThis function gets a string containing a path name as single argument\nand r\
eturns a list of strings that are the names of the files in that\ndirectory, o\
r <K>fail</K>, if an error occurred.\n</Description>\n</ManSection>\n\n<ManSec\
tion>\n<Func Name=\"ChangeCurrentDirectory\" Arg=\"pathname\"\n Comm=\"ch\
anges the current directory\"/>\n<Returns> <K>true</K> on success and <K>fail<\
/K> on failure </Returns>\n<Description>\n Changes the current directory. R\
eturns <K>true</K> on success and \n <K>fail</K> on failure.\n</Description\
>\n</ManSection>\n\nThe following function is used to create strings describin\
g a pair of\nan IP address and a port number in a binary way. These strings ca\
n be\nused in connection with the C library functions <C>connect</C>,\n<C>bind\
</C>, <C>recvfrom</C>, and <C>sendto</C> for the arguments\nneeding such addre\
ss pairs.\n\n<ManSection>\n<Func Name=\"IO_MakeIPAddressPort\" Arg=\"ipstring,\
portnr\"\n Comm=\"creates an IP address port number pair for usage with \
connect\"/>\n<Returns> a string </Returns>\n<Description>\nThis function gets \
a string <A>ipstring</A> containing an IP address\nin dot notation, i.e. four \
numbers in the range from 0 to 255 separated\nby dots <Q>.</Q>, and an integer\
<A>portnr</A>, which is a port number.\nThe result is a string of the correct\
length to be used for the\nlow level C library functions, wherever IP address\
port number pairs\nare needed. The string <A>ipstring</A> can also be a host \
name, which\nis then looked up using <Ref Func=\"IO_gethostbyname\"/> to find \
the IP\naddress.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"\
IO_Environment\" Arg=\"\"\n Comm=\"returns a record describing the enviro\
nment\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<Description>\nTakes \
no arguments, uses <Ref Func=\"IO_environ\"/> to get the environment\nand retu\
rns a record in which the component names are the names of the\nenvironment va\
riables and the values are the values. This can then be\nchanged and the chang\
ed record can be given to <Ref Func=\"IO_MakeEnvList\"/>\nto produce again a l\
ist which can be used for <Ref Func=\"IO_execve\"/> as\nthird argument.\n</Des\
cription>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_MakeEnvList\" Arg=\"\
r\"\n Comm=\"takes an environment record and returns a list for execve\"/\
>\n<Returns> a list of strings </Returns>\n<Description>\nTakes a record as re\
turned by <Ref Func=\"IO_Environment\"/> and turns it\ninto a list of strings \
as needed by <Ref Func=\"IO_execve\"/> as third\nargument.\n</Description>\n</\
ManSection>\n</Section>\n\n<Section Label=\"ipc\">\n <Heading>Inter process\
communication</Heading>\n\n<ManSection>\n<Func Name=\"IO_FindExecutable\" Arg\
=\"path\"/>\n<Returns> <K>fail</K> or the path to an executable </Returns>\n<D\
escription>\nIf the path name <A>path</A> contains a slash, this function simp\
ly\nchecks whether the string <A>path</A> refers to an executable file. If so,\
\n<A>path</A> is returned as is. Otherwise, <K>fail</K> is returned.\nIf the \
path name <A>path</A> does not contain a slash, all directories\nin the enviro\
nment variable <F>PATH</F> are searched for an executable\nwith name <A>path</\
A>. If so, the full path to that executable is \nreturned, otherwise <K>fail</\
K>.<P/>\n\nThis function is used whenever one of the following functions gets \
an\nargument that should refer to an executable.\n</Description>\n</ManSection\
>\n\n<ManSection>\n<Func Name=\"IO_CloseAllFDs\" Arg=\"exceptions\"\n Com\
m=\"Closes all file descriptors except those listed in exceptions\"/>\n<Return\
s> nothing </Returns>\n<Description>\nCloses all file descriptors except those\
listed in <A>exceptions</A>, which\nmust be a list of integers.\n</Descriptio\
n>\n</ManSection>\n\n\n<ManSection>\n<Func Name=\"IO_Popen\" Arg=\"path, argv,\
mode\"\n Comm=\"Starts a child process with either stdout or stdin being\
a pipe\"/>\n<Returns> a <C>File</C> object or <K>fail</K> </Returns>\n<Descri\
ption>\nThe argument <A>path</A> must refer to an executable file in the sense\
\nof <Ref Func=\"IO_FindExecutable\"/>. <P/>\n\nStarts a child process using t\
he executable in <A>path</A>\nwith either stdout or stdin being a pipe. The \n\
argument <A>mode</A> must be either the string <Q><C>r</C></Q> or the\nstring \
<Q><C>w</C></Q>. <P/>\n\nIn the first case, the standard output of the\nchild \
process will be the writing end of a pipe. A <C>File</C> object\nfor reading c\
onnected to the reading end of the pipe is returned. The\nstandard input and s\
tandard error of the child process will be the same\nthan the calling &GAP; pr\
ocess. <P/>\n\nIn the second case, the standard input of the child process wil\
l be the\nreading end of a pipe. A <C>File</C> object for writing connected to\
the\nwriting end of the pipe is returned. The standard output and standard er\
ror \nof the child process will be the same than the calling &GAP; process. <P\
/>\n\nIn case of an error, <K>fail</K> is returned. <P/>\n\nThe process will u\
sually die, when the pipe is closed, but can also\ndo so without that. The <C>\
File</C> object remembers the process ID\nof the started process and the <Ref \
Func=\"IO_Close\"/> function then\ncalls <Ref Func=\"IO_WaitPid\"/> for it to \
acquire information about\nthe terminated process. <P/>\nNote that <Ref Func=\
\"IO_Popen\"/> activates our SIGCHLD handler (see <Ref\nFunc=\"IO_InstallSIGCH\
LDHandler\"/>). <P/>\n\nIn either case the <C>File</C> object will have the at\
tribute\n<Q><K>ProcessID</K></Q> set to the process ID of the child process.\n\
</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_Popen2\" Arg=\"\
path, argv\"\n Comm=\"Starts a child process with stdin and stdout being \
a pipe\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<Description>\nThe a\
rgument <A>path</A> must refer to an executable file in the sense\nof <Ref Fun\
c=\"IO_FindExecutable\"/>. <P/>\n\nA new child process is started using the ex\
ecutable in <A>path</A>\nThe standard input and standard output of it \nare pi\
pes. The writing end of the input pipe and the reading end of the\noutput pipe\
are returned as <C>File</C> objects bound to two components\n<Q><C>stdin</C><\
/Q> and <Q><C>stdout</C></Q> (resp.) of the returned record. \nThis means, you\
have to <E>write</E> to <Q><C>stdin</C></Q> and <E>read</E> \nfrom <Q><C>stdo\
ut</C></Q> in the calling &GAP; process. \nThe standard error of the child pro\
cess will be \nthe same as the one of the calling &GAP; process. <P/>\n\nRetur\
ns <K>fail</K> if an error occurred. <P/>\n\nThe process will usually die, whe\
n one of the pipes is closed. The <C>File</C>\nobjects remember the process ID\
of the called process and the function\ncall to <Ref Func=\"IO_Close\"/> for \
the <C>stdout</C> object will call\n<Ref Func=\"IO_WaitPid\"/> for it to acqui\
re information about the\nterminated process. <P/>\nNote that <Ref Func=\"IO_P\
open2\"/> activates our SIGCHLD handler (see <Ref\nFunc=\"IO_InstallSIGCHLDHan\
dler\"/>). <P/>\n\nBoth <C>File</C> objects will have the attribute <Q><K>Proc\
essID</K></Q>\nset to the process ID of the child process, which will also be \
bound to\nthe <Q><K>pid</K></Q> component of the returned record.\n</Descripti\
on>\n</ManSection>\n\n<ManSection>\n<Func Name=\"IO_Popen3\" Arg=\"path, argv\
\"\n Comm=\"Starts a child process with stdin, stdout, and stderr being a pi\
pe\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<Description>\nThe argum\
ent <A>path</A> must refer to an executable file in the sense\nof <Ref Func=\"\
IO_FindExecutable\"/>. <P/>\n\nA new child process is started using the execut\
able in <A>path</A>\nThe standard input, standard output, and standard error o\
f it \nare pipes. The writing end of the input pipe, the reading end of the\no\
utput pipe and the reading end of the error pipe \nare returned as <C>File</C>\
objects bound to two components\n<Q><C>stdin</C></Q>, <Q><C>stdout</C></Q>, a\
nd <Q><C>stderr</C></Q> \n(resp.) of the returned record. \nThis means, you ha\
ve to <E>write</E> to <Q><C>stdin</C></Q> and <E>read</E> \nfrom <Q><C>stdout<\
/C></Q> and <Q><C>stderr</C></Q> in the calling\n&GAP; process.<P/>\n\nReturns\
<K>fail</K> if an error occurred. <P/>\n\nThe process will usually die, when \
one of the pipes is closed. All three\n<C>File</C> objects will remember the p\
rocess ID of the newly created\nprocess and the call to the <Ref Func=\"IO_Clo\
se\"/> function for the\n<C>stdout</C> object will call <Ref Func=\"IO_WaitPid\
\"/> for it to acquire\ninformation about the terminated child process. <P/>\n\
Note that <Ref Func=\"IO_Popen3\"/> activates our SIGCHLD handler (see <Ref\nF\
unc=\"IO_InstallSIGCHLDHandler\"/>). <P/>\n\nAll three <C>File</C> objects wil\
l have the attribute <Q><K>ProcessID</K></Q>\nset to the process ID of the chi\
ld process, which will also be bound to\nthe <Q><K>pid</K></Q> component of th\
e returned record.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\
\"IO_StartPipeline\" Arg=\"progs, infd, outfd, switcherror\"/>\n<Returns> a re\
cord or <K>fail</K> </Returns>\n<Description>\n The argument <A>progs</A> i\
s a list of pairs, the first entry being a \n path to an executable (in the\
sense of <Ref Func=\"IO_FindExecutable\"/>), \n the second an argument lis\
t, the argument\n <A>infd</A> is an open file descriptor for\n reading, \
<A>outfd</A> is an open file descriptor for writing, both can be\n replaced\
by the string <Q><K>open</K></Q> in which case a new pipe will \n be opene\
d. The argument <A>switcherror</A>\nis a boolean indicating whether standard e\
rror channels are also\nswitched to the corresponding output channels. <P/>\nT\
his function starts up all processes\nand connects them with pipes. The input \
of the first is switched to\n<A>infd</A> and the output of the last to <A>outf\
d</A>.\n<P/>\nReturns a record with the following components: <K>pids</K> is a\
list of \nprocess ids if everything worked. For each process for which\nsome \
error occurred the corresponding pid is replaced by <K>fail</K>.\nThe <K>stdin\
</K> component is equal to <K>false</K>, or to the file descriptor\nof the wri\
ting end of the newly created pipe which is connected to the\nstandard input o\
f the first of the new processes if \n<A>infd</A> was <Q><K>open</K></Q>.\nThe\
<K>stdout</K> component is equal to <K>false</K> or to the file\ndescriptor o\
f the reading end of the newly created pipe which is connected\nto the standar\
d output of the last of the new processes if <A>outfd</A> was \n<Q><K>open</K>\
</Q>.\n<P/>\nNote that the SIGCHLD handler of the <Package>IO</Package> packag\
e is installed\nby this function (see <Ref Func=\"IO_InstallSIGCHLDHandler\"/>\
) and that it \nlies in the responsibility of the caller to use <Ref Func=\"IO\
_WaitPid\"/>\nto ask for the status information of all child processes after t\
heir\ntermination.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\
\"IO_StringFilterFile\" Arg=\"progs, filename\"/>\n<Returns> a string or <K>fa\
il</K> </Returns>\n<Description>\n Reads the file with the name <A>filename\
</A>, however, a pipeline\n is created by the processes described by <A>pro\
gs</A> (see <Ref\n Func=\"IO_StartPipeline\"/>) to filter the content o\
f the file\n through the pipeline. The result is put into a &GAP; string an\
d\n returned. If something goes wrong, <K>fail</K> is returned.\n</Descript\
ion>\n</ManSection>\n\n<ManSection>\n <Func Name=\"IO_FileFilterString\" Ar\
g=\"filename, progs, st [,append]\"\n Label=\"append\" />\n<Returns> \
a string or <K>fail</K> </Returns>\n<Description>\n Writes the content of t\
he string <A>st</A> to the file with the name \n <A>filename</A>, however, \
a pipeline\n is created by the processes described by <A>progs</A> (see <Re\
f\n Func=\"IO_StartPipeline\"/>) to filter the content of the string\n \
through the pipeline. The result is put into the file. If the boolean\n \
value <A>append</A> is given and equal to <K>true</K>, then the\n data will\
be appended to the already existing file.\n If something goes wrong, <K>fa\
il</K> is returned.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name\
=\"IO_FilteredFile\" Arg=\"progs, filename [,mode][,bufsize]\"/>\n<Returns> a \
<C>File</C> object or <K>fail</K> </Returns>\n<Description>\n This function\
is similar to <Ref Func=\"IO_File\" Label=\"mode\"/> \n and behaves nearly\
\nidentically. The only difference is that a filtering pipeline is switched\nb\
etween the file and the <C>File</C> object such that all things read\nor writt\
en respectively are filtered through this pipeline of processes.\n<P/>\nThe <C\
>File</C> object remembers the started processes and upon the\nfinal call to <\
Ref Func=\"IO_Close\"/> automatically uses the\n<Ref Func=\"IO_WaitPid\"/> fun\
ction to acquire information from the\nterminated processes in the pipeline af\
ter their termination. This means\nthat you do not have to call <Ref Func=\"IO\
_WaitPid\"/> any more after\nthe call to <Ref Func=\"IO_Close\"/>.<P/>\nNote t\
hat <Ref Func=\"IO_FilteredFile\"/> activates our SIGCHLD handler (see <Ref\n \
Func=\"IO_InstallSIGCHLDHandler\"/>).<P/>\nThe <C>File</C> object will have\
the attribute\n<Q><K>ProcessID</K></Q> set to the list of process IDs of the \
child processes.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"\
IO_SendStringBackground\" Arg=\"f, st\"\n Comm=\"Sends away the string st\
to f in the background\"/>\n<Description>\nThis functions uses <Ref Func=\"IO\
_Write\"/> to write the whole string\n<A>st</A> to the <C>File</C> object <A>f\
</A>. However, this is done\nby forking off a child process identical to the c\
alling &GAP; process\nthat does the sending. The calling &GAP; process returns\
immediately, even \nbefore anything has been sent away with the result <K>tru\
e</K>. \nThe forked off sender process terminates itself immediately after it\
\nhas sent all data away.<P/>\n\nThe reason for having this function available\
is the following: If one \nuses <Ref Func=\"IO_Popen2\"/> or <Ref Func=\"IO_P\
open3\"/> to start up\na child process with standard input and standard output\
being a pipe,\nthen one usually has the problem, that the child process start\
s reading\nsome data, but then wants to write data, before it received all dat\
a\ncoming. If the calling &GAP; process would first try to write all data\nand\
only start to read the output of the\nchild process after sending away all da\
ta, \na deadlock situation would occur.\nThis is avoided with the forking and \
backgrounding approach.<P/>\n\nRemember to close the writing end of the standa\
rd input pipe in the\ncalling &GAP; process directly after <Ref Func=\"IO_Send\
StringBackground\"/>\nhas returned, because otherwise the child process might \
not notice that\nall data has arrived, because the pipe persists! See the file\
\n<F>popen2.g</F> in the <F>example</F> directory for an example.<P/>\n\nNote \
that with most modern operating systems the forking off of an\nidentical child\
process does in fact <E>not</E> mean a duplication of the\ntotal main memory \
used by both processes, because the operating system\nkernel will use <Q>copy \
on write</Q>. However, if a garbage collection\nhappens to become necessary du\
ring the sending of the data in the\nforked off sending process, this might tr\
igger doubled memory usage.\n</Description>\n</ManSection>\n\n<ManSection>\n<F\
unc Name=\"IO_PipeThrough\" Arg=\"cmd, args, input\"/>\n<Returns> a string or \
<K>fail</K> </Returns>\n<Description>\nStarts the process with the executable \
given by the file name\n<A>cmd</A> (in the sense of <Ref Func=\"IO_FindExecuta\
ble\"/>) with \narguments in the argument list\n<A>args</A> (a list of strings\
). The standard input and output of the started\nprocess are connected via pip\
es to the calling process. The content of \nthe string <A>input</A> is written\
to the standard input of the called\nprocess and its standard output is read \
and returned as a string.<P/>\nAll the necessary I/O multiplexing and non-bloc\
king I/O\nto avoid deadlocks is done in this function.\n<P/>\nThis function pr\
operly does <Ref Func=\"IO_WaitPid\"/> to wait for\nthe termination of the chi\
ld process but does not restore the\noriginal &GAP; SIGCHLD signal handler \n(\
see <Ref Func=\"IO_InstallSIGCHLDHandler\"/>).\n</Description>\n</ManSection>\
\n\n<ManSection>\n<Func Name=\"IO_PipeThroughWithError\" Arg=\"cmd, args, inpu\
t\"/>\n<Returns> a record or <K>fail</K> </Returns>\n<Description>\nStarts the\
process with the executable given by the file name\n<A>cmd</A> (in the sense \
of <Ref Func=\"IO_FindExecutable\"/>) \nwith arguments in the argument list\n<\
A>args</A> (a list of strings). The standard input, output and error\nof the s\
tarted\nprocess are connected via pipes to the calling process. The content of\
\nthe string <A>input</A> is written to the standard input of the called\npro\
cess and its standard output and error are read and returned as a \nrecord wit\
h components <K>out</K> and <K>err</K>, which are strings.<P/>\nAll the necess\
ary I/O multiplexing and non-blocking I/O\nto avoid deadlocks is done in this \
function.\n<P/>\nThis function properly does <Ref Func=\"IO_WaitPid\"/> to wai\
t for\nthe termination of the child process but does not restore the\noriginal\
&GAP; SIGCHLD signal handler \n(see <Ref Func=\"IO_InstallSIGCHLDHandler\"/>)\
.\n<P/>\nThe functions returns either <K>fail</K> if an error occurred, or oth\
erwise\na record with components <K>out</K> and <K>err</K> which are bound\nto\
strings containing the full standard output and standard error\nof the called\
process.\n</Description>\n</ManSection>\n\n</Section>\n\n</Chapter>\n\n<Chapt\
er>\n <Heading>Object serialisation (Pickling)</Heading>\n\nThe idea of <Q>\
object serialisation</Q> is that one wants to store\nnearly arbitrary &GAP; ob\
jects to disk or transfer them over the network.\nTo this end, one wants to co\
nvert them to a byte stream that is platform\nindependent and can later be con\
verted back to a copy of the same object\nin memory, be it in the same &GAP; p\
rocess or another one maybe even on\nanother machine. The main problem here ar\
e the vast amount of different\ntypes occurring in &GAP; and the possibly high\
ly self-referential\nstructure of &GAP; objects.\n\n<P/>\nThe <Package>IO</Pac\
kage> package contains a framework to implement object\nserialisation and impl\
ementations for most of the basic data types\nin &GAP;. The framework is easil\
y extendible to other types and takes\ncomplete care of self-references and co\
rresponding problems.\nIt builds upon the buffered I/O functions described in \
Section\n<Ref Sect=\"bufio\"/>. We start by describing the user interface.<P/>\
\n\n<Section>\n <Heading>Result objects</Heading>\n\nThe following static o\
bjects are used to report about success or\nfailure of the (un-)pickling opera\
tions:\n\n<ManSection>\n<Var Name=\"IO_Error\"/>\n<Description> This object is\
returned if an error occurs. </Description>\n</ManSection>\n\n<ManSection>\n<\
Var Name=\"IO_Nothing\"/>\n<Description> This object is returned when there \n\
is nothing to return, for example if an unpickler (see <Ref\nOper=\"IO_Unpickl\
e\"/>) encounters the end of a file.\n</Description>\n</ManSection>\n\n<ManSec\
tion>\n<Var Name=\"IO_OK\"/>\n<Description> This object is returned if everyth\
ing went well and there is\nno other canonical value to return to indicate thi\
s.\n</Description>\n</ManSection>\n\nThe only thing you can do with these spec\
ial values is to compare them\nto each other and to other objects.<P/>\n\n</Se\
ction>\n\n<Section>\n <Heading>Pickling and unpickling</Heading>\n\n<ManSec\
tion>\n <Oper Name=\"IO_Pickle\" Arg=\"f, ob\"/>\n <Returns> <C>IO&uscor\
e;OK</C> or <C>IO&uscore;Error</C> </Returns>\n <Description>\n The \
argument <A>f</A> must be an open, writable <C>File</C>\n object. The o\
bject <A>ob</A> can be an arbitrary &GAP; object.\n The operation <Q>pi\
ckles</Q> or <Q>serialises</Q> the object\n <A>ob</A> and writes the re\
sult into the <C>File</C> object\n <A>f</A>. If everything is OK, the u\
nique value <C>IO&uscore;OK</C>\n is returned and otherwise the unique \
value <C>IO&uscore;Error</C>.\n The resulting byte stream can be read a\
gain using the operation\n <Ref Oper=\"IO_Unpickle\"/> and is platform-\
and architecture\n independent. Especially the question whether a syst\
em has\n 32 bit or 64 bit wide words and the question of endianess\n \
does not matter. \n <P/>\n Note that not all of &GAP;'s obj\
ect types are supported but it\n is relatively easy to extend the syste\
m. This package supports\n in particular boolean values, integers, perm\
utations, rational\n numbers, finite field elements, cyclotomics, strin\
gs, polynomials,\n rational functions,\n lists, records, compres\
sed vectors and matrices over finite fields\n (objects are uncompressed\
in the byte stream but recompressed\n during unpickling), and straight\
line programs.\n <P/>\n Self-referential objects built from rec\
ords and lists are handled\n correctly and are restored completely with\
the same self-references\n during unpickling.\n </Description>\n</M\
anSection>\n\n<ManSection>\n <Oper Name=\"IO_Unpickle\" Arg=\"f\"/>\n <R\
eturns> <C>IO&uscore;Error</C> or a &GAP; object </Returns>\n <Description>\
\n The argument <A>f</A> must be an open, readable <C>File</C>\n \
object. The operation reads from <A>f</A> and <Q>unpickles</Q>\n the n\
ext object. If an error occurs, the unique value \n <C>IO&uscore;Error<\
/C>\n is returned. If the <C>File</C>\n object is at end of file\
, the value <C>IO&uscore;Nothing</C> is returned.\n Note that these two\
values are not picklable, because of\n their special meaning as return\
values of this operation here. \n </Description>\n</ManSection>\n\n<ManSec\
tion>\n <Func Name=\"IO_ClearPickleCache\" Arg=\"\"/>\n <Returns> Nothin\
g </Returns>\n <Description>\n This function clears the <Q>pickle ca\
che</Q>. This cache stores all\n object pickled in the current recursiv\
e call to <Ref Oper=\"IO_Pickle\"/>\n and is necessary to handle self-r\
eferences. Usually it is not\n necessary to call this function explicit\
ly. Only in the rare\n case (that should not happen) that a pickling or\
unpickling operation\n enters a break loop which is left by the user, \
the pickle\n cache has to be cleared explicitly using this function for\
\n later calls to <Ref Oper=\"IO_Pickle\"/> and <Ref Oper=\"IO_Unpickle\
\"/>\n to work!\n </Description>\n</ManSection>\n\n</Section>\n\n<Se\
ction Label=\"ExtPickFrame\">\n<Heading>Extending the pickling framework</Head\
ing>\n\nThe framework can be extended for other &GAP; object types as follows:\
\n\n<P/>\nFor pickling, a method for the operation <Ref Oper=\"IO_Pickle\"/> h\
as\nto be installed which does the work. If the object to be pickled has\nsubo\
bjects, then the first action of the method is to call the function\n<C>IO&usc\
ore;AddToPickled</C> with the object as argument. This will put it\ninto the p\
ickle cache and take care of self-references. Arbitrary\nsubobjects can then b\
e pickled using recursive calls to the operation\n<Ref Oper=\"IO_Pickle\"/> ha\
nding down the same <C>File</C> object into\nthe recursion. The method must ei\
ther return <C>IO&uscore;Error</C> in case of\nan error or <C>IO&uscore;OK</C>\
if everything goes well. Before returning,\na method that has called <C>IO&us\
core;AddToPickled</C>\nmust call the function <C>IO&uscore;FinalizePickled</C>\
without\narguments <E>under all circumstances</E>. If this call is missing,\n\
global data for the pickling procedure becomes corrupt!\n\n<P/>\nEvery picklin\
g method must first write a 4 byte magic value such that\nlater during unpickl\
ing of the byte stream the right unpickling\nmethod can be called (see below).\
Then it can write arbitrary data,\nhowever, this data should be platform- and\
architecture independent, and\nit must be possible to unpickle it later witho\
ut <Q>lookahead</Q>.\n\n<P/>\nPickling methods should usually not go into a br\
eak loop, because\nafter leaving the user has to call <Ref Func=\"IO_ClearPick\
leCache\"/>\nexplicitly!\n\n<P/>\nUnpickling is implemented as follows: For ev\
ery 4 byte magic value\nthere must be a function bound to that value in the re\
cord\n<C>IO&uscore;Unpicklers</C>. If the unpickling operation <Ref Oper=\"IO_\
Unpickle\"/>\nencounters that magic value, it calls the corresponding unpickli\
ng\nfunction. This function just gets one <C>File</C> object as argument.\nSin\
ce the magic value is already read, it can immediately start \nwith reading an\
d rebuilding the serialised object in memory. The method\nhas to take care to \
restore the object including its type completely.\n\n<P/>\nIf an object type h\
as subobjects, the unpickling function has to\nfirst create a skeleton of the \
object without its subobjects, then\ncall <C>IO&uscore;AddToUnpickled</C> on t\
his skeleton, <E>before</E> unpickling\nsubobjects. If things are not done in \
this order, the handling of \nself-references down in the recursion will not w\
ork! An unpickling \nfunction that has called <C>IO&uscore;AddToUnpickled</C> \
at the beginning\nhas to call <C>IO&uscore;FinalizeUnpickled</C> without argum\
ents before\nreturning <E>under all circumstances</E>! If this call is missing\
,\nglobal data for the unpickling procedure becomes corrupt!\n\n<P/>\nOf cours\
e, unpickling functions can recursively call <Ref Oper=\"IO_Unpickle\"/>\nto u\
npickle subobjects. Apart from this, unpickling functions can use\narbitrary r\
eading functions on the <C>File</C> object. However, they\nshould only read se\
quentially and never move the current file position\npointer otherwise. An unp\
ickling function should return the newly\ncreated object or the value <C>IO&us\
core;Error</C> if an error occurred.\nThey should never go into a break loop, \
because after leaving the user\nhas to call <Ref Func=\"IO_ClearPickleCache\"/\
> explicitly!\n\n<P/>\nPerhaps the best way to learn how to extend the framewo\
rk is to\nstudy the code for the basic &GAP; objects in the file\n<F>pkg/io/ga\
p/pickle.gi</F>.\n\n</Section>\n\n</Chapter>\n\n<Chapter>\n <Heading>Really\
random sources</Heading>\n\n This section describes so called <Q>real rand\
om sources</Q>. It is an\n extension to the library mechanism of random sou\
rce objects that uses\n the devices <F>/dev/random</F> and <F>/dev/urandom<\
/F> available\n on <F>Linux</F> systems (and maybe on other operating syste\
ms) providing\n random numbers that are impossible to predict. The idea is \
that such\n sources of random numbers are useful to produce unpredictable\n\
secret keys for cryptographic applications.\n\n <Section>\n <Hea\
ding>The functions</Heading>\n\n<ManSection>\n<Meth Name=\"RandomSource\" Arg=\
\"r,dev\"/>\n<Returns> a real random source object or <C>fail</C> </Returns> \
\n<Description>\n The first argument <A>r</A> must be the &GAP; filter \n\
<C>IsRealRandomSource</C> and the second either the string\n <F>random<\
/F> or the string <F>urandom</F>. A real\n random source object is created \
that draws its random numbers from\n the kernel devices <F>/dev/random</F> \
and <F>/dev/urandom</F>\n respectively. Whereas <F>/dev/urandom</F> always \
provides random\n numbers of not guaranteed <Q>quality</Q>, the device <F>/\
dev/random</F>\n measures its entropy and produces guaranteed unpredictable\
numbers.\n However, it might block until enough <Q>random</Q> events (like\
\n mouse movements) have been accumulated.\n</Description>\n</ManSection>\n\
</Section>\n\n</Chapter>\n\n<Chapter>\n <Heading>A client side implementati\
on of the HTTP protocol</Heading>\n\nThe <Package>IO</Package> package contain\
s an implementation of the client side\nof the HTTP protocol. The basic purpos\
e of this is of course to be\nable to download data from web servers from the \
&GAP; language. However,\nthe HTTP protocol can perform a much bigger variety \
of tasks.\n\n<Section>\n <Heading>Functions for client side HTTP</Heading>\
\n\n<ManSection>\n<Func Name=\"OpenHTTPConnection\" Arg=\"hostname, port\"/>\n\
<Returns> a record </Returns>\n<Description>\n The first argument <A>hostna\
me</A> must be a string containing the \n hostname of the server to connect\
. The second argument <A>port</A>\n must be an integer in the range from <M\
>1</M> to <M>65535</M> and\n describes the port to connect to on the server\
. <P/>\n The function opens a TCP/IP connection to the server and returns\n\
a record <K>conn</K> with the following components: \n <K>conn.sock</K>\
is <K>fail</K> if an error occurs and otherwise\n a <C>File</C> object lin\
ked to the file descriptor of the\n socket. In case of an error, the compon\
ent <K>conn.errormsg</K>\n contains an error message, it is otherwise empty\
. If everything\n went well then the component <K>conn.host</K> is the resu\
lt from\n the host name lookup (see <Ref Func=\"IO_gethostbyname\"/>) and t\
he\n component <K>conn.closed</K> is set to <K>false</K>. <P/>\n No data\
is sent or received on the socket in this function.\n</Description>\n</ManSec\
tion>\n\n<ManSection>\n<Func Name=\"HTTPRequest\" Arg=\"conn, method, uri, hea\
der, body, target\"/>\n<Returns> a record </Returns>\n<Description>\n This \
function performs a complete HTTP request. The first argument must\n be a c\
onnection record as returned by a successful call to\n <Ref Func=\"OpenHTTP\
Connection\"/>. The argument <A>method</A> must\n be a valid HTTP request <\
Q>method</Q> in form of a string. \n The most common will be <K>GET</K>, <K\
>POST</K>, or <K>HEAD</K>.\n The argument <A>uri</A> is a string containing\
the URI of the\n request, which is given in the first line of the request.\
This will\n usually be a relative or absolute path name given to the serve\
r.\n The argument <A>header</A> must be a &GAP; record. Each bound field\n \
of this record will we transformed into one header line with the\n name \
of the component being the key and the value the value. All\n bound values \
must be strings. The argument <A>body</A> must either\n be a string or <K>f\
alse</K>. If it is a string, this string is sent\n away as the body of the \
request. If no string or an empty string is\n given, no body will be sent. \
The header field <K>Content-Length</K>\n is automatically created from the \
length of the string <A>body</A>.\n Finally, the argument <A>target</A> can\
either be <K>false</K> or\n a string. In the latter case, the body of the \
request answer\n is written to the file with the name given in <A>target</A\
>. The\n <K>body</K> component of the result will be the file name in this\
\n case. If <A>target</A> is false, the full body of the answer is\n sto\
red into the <K>body</K> component of the result. <P/>\n The function sends\
away the request and awaits the answer. If anything\n goes wrong during th\
e transfer (for example if the connection is\n broken prematurely), then th\
e component <K>statuscode</K> of the\n resulting record is <M>0</M> and the\
component <K>status</K> is\n a corresponding error message. In that case, \
all other fields may\n or may not be bound to sensible values, according to\
when the\n error occurred. If everything goes well, then <K>statuscode</K>\
\n and <K>status</K> are bound to the corresponding values coming from\n \
the request answer. <K>statuscode</K> is transformed into a &GAP; \n inte\
ger. The header of the answer is parsed, transformed into\n a &GAP; record,\
and stored into the component <K>header</K> of the\n result. The <K>body</\
K> component of the result record is set\n as described above. Finally, the\
<K>protoversion</K> component\n contains the HTTP protocol version number \
used by the server as\n a string and the boolean value <K>closed</K> indica\
tes, whether\n or not the function has detected, that the connection has be\
en\n closed by the server. Note that by default, the connection will\n s\
tay open, at least for a certain time after the end of the\n request.<P/>\n\
See the description of the global variable <Ref\n Var=\"HTTPTimeoutForS\
elect\"/> for rules how timeouts are done in\n this function.\n <P/> Not\
e that if the <A>method</A> is <K>HEAD</K>, then no body\n is expected (non\
e will be sent anyway) and the function returns\n immediately with empty bo\
dy. Of course, the <K>Content-Length</K>\n value in the header is as if it \
the request would be done with the\n <K>GET</K> method.\n</Description>\n</\
ManSection>\n\n<ManSection>\n<Var Name=\"HTTPTimeoutForSelect\"/>\n<Descriptio\
n>\nThis global variable holds a list of length two. By default, both entries\
\nare <K>fail</K> indicating that <Ref Func=\"HTTPRequest\"/> should never\nti\
meout and wait forever for an answer. Actually, the two values in\nthis variab\
le are given to the <Ref Func=\"IO_Select\"/> function call\nduring I/O multip\
lexing. That is, the first number is in seconds and\nthe second in millisecond\
s. Together they lead to a timeout for the\nHTTP request. If a timeout occurs,\
an error condition is triggered\nwhich returns a record with status code <M>0\
</M> and status being\nthe timeout error message.<P/>\nYou can change the time\
out by accessing the two entries of this\nwrite protected list variable direct\
ly.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Name=\"CloseHTTPConn\
ection\" Arg=\"conn\"/>\n<Returns> nothing </Returns>\n<Description>\n Clos\
es the connection described by the connection record <A>conn</A>.\n No erro\
r can possibly occur.\n</Description>\n</ManSection>\n\n<ManSection>\n<Func Na\
me=\"SingleHTTPRequest\" \n Arg=\"hostname, port, method, uri, header, bo\
dy, target\"/>\n<Returns> a record </Returns>\n<Description>\n The argument\
s are as the corresponding ones in the functions \n <Ref Func=\"OpenHTTPC\
onnection\"/> and <Ref Func=\"HTTPRequest\"/>\n respectively. This function\
opens an HTTP connection, tries\n a single HTTP request and immediately cl\
oses the connection\n again. The result is as for the <Ref Func=\"HTTPReque\
st\"/>\n function. If an error occurs during the opening of the connection,\
\n the <K>statuscode</K> value of the result is <M>0</M> and the error\n \
message is stored in the <K>status</K> component of the result.\n</Descriptio\
n>\n</ManSection>\n\nThe previous function allows for a very simple implementa\
tion of a\nfunction that checks, whether your current &GAP; installation is\nu\
p to date:\n\n<ManSection>\n<Func Name=\"CheckForUpdates\" Arg=\"\"/>\n<Return\
s> nothing </Returns>\n<Description>\n This function accesses a web page in\
St. Andrews and runs some\n &GAP; code from there. This code knows all the\
currently released\n versions of &GAP; and its packages. It prints out a s\
ummary and\n possibly suggests upgrades. If you do not want to executed\n \
code downloaded from the internet, then do not call this function.\n <P/>\
\n More concretely, the page accessed is\n <URL>http://www.gap-system.or\
g/Download/upgrade.html</URL> and the\n code executed is a single call to t\
he function <C>SuggestUpgrades</C> \n function in the &GAP; library.\n</Des\
cription>\n</ManSection>\n\n<ManSection>\n<Func Name=\"ReadWeb\" Arg=\"URL\"/>\
\n<Returns> nothing </Returns>\n<Description>\n This function downloads the\
file from the given uniform resource\n locator <A>URL</A> using the HTTP p\
rotocol \n and reads the contents into &GAP; using\n <Ref Func=\"Read\" \
BookName=\"ref\"/>.\n <P/>\n Note that this can execute arbitrary code o\
n your machine with the\n privileges of the &GAP; job running, so you shoul\
d be very careful\n what files you download and execute. You have been warn\
ed!\n</Description>\n</ManSection>\n\n</Section>\n\n</Chapter>\n\n<Chapter>\n<\
Heading>Background jobs using fork</Heading>\n\nThis chapter describes a way t\
o use multi-processor or multi-core machines\nfrom within &GAP;. In its curren\
t version the &GAP; system is a single\nthreaded and single process system. Ho\
wever, modern operating systems\nallow, via the <C>fork</C> system call, to re\
plicate a complete process\non the same machine relatively efficiently. That i\
s, at first after\na <C>fork</C> the two processes actually use the same physi\
cal memory\nsuch that not much copying needs to be done. The child process is \
in \nexactly the same state as the parent process, sharing open files, network\
\nconnections and the complete status of the workspace. However, whenever\na \
page of memory is written, it is then automatically copied using new,\nadditio\
nal physical memory, such that it behaves like a completely separate\nprocess.\
This method is called <Q>copy-on-write</Q>.\n\n<P/>\nThus this is a method to\
parallelise certain computations. Note however, that\nfrom the point of time \
when the <C>fork</C> has occurred, all further \ncommunication between the two\
processes has to be realised via pipes\nor even files.\n\n<P/>\nThe operation\
s and methods described in this chapter help to use &GAP; in this\nway and imp\
lement certain <Q>skeletons</Q> of parallel programming to\nmake these readily\
available in &GAP;. Note that this implementation\nhas its severe limitations\
and should probably eventually be replaced\nby a proper multi-threaded versio\
n of &GAP;.\n\n<Section>\n<Heading>Background jobs</Heading>\n\nOne creates a \
background job with the following operation:\n\n<ManSection>\n<Oper Name=\"Bac\
kgroundJobByFork\" Arg=\"fun, args [,opt]\"/>\n<Returns>a background job objec\
t or <K>fail</K></Returns>\n<Description>\nThis operation creates a background\
job using <Ref Func=\"IO_fork\"/>\nwhich starts up as an identical copy of th\
e currently running &GAP;\nprocess. In this child process the function <A>fun<\
/A> is called\nwith the argument list <A>args</A>. The third argument <A>opt</\
A>\nmust be a record for options. The operation returns either an object\nrepr\
esenting the background job or <K>fail</K> if the startup did not\nwork.\n<P/>\
\nThis operation automatically sets up two pipes for communication with\nthe c\
hild process. This is in particular used to report the result of\nthe function\
call to <A>fun</A> back to the parent. However, if called\nwithout the option\
<C>TerminateImmediately</C> (see below) the child\nprocess stays alive even a\
fter the completion of <A>fun</A> and one\ncan submit further argument lists f\
or subsequent calls to <A>fun</A>.\nOf course, these additional argument lists\
will have to be sent \nover a pipe to the child process. A special case is if\
the argument\n<A>args</A> is equal to <K>fail</K>, in this case the child pro\
cess is\nstarted but does not automatically call <A>fun</A> but rather\nwaits \
in an idle state until an argument list is submitted via the\npipe using the <\
Ref Oper=\"Submit\" Label=\"bgjob\"/> operation described below.\n<P/>\nThere \
are two components defined which can be bound in the options record\n<A>opt</A\
>. One is <C>TerminateImmediately</C>, if this is bound to <K>true</K>\nthen t\
he child process immediately terminates after the function <A>fun</A>\nreturns\
its result. In this case, no pipe for communication from parent\nto child is \
created since it would never be used. Note that in this case\none can still ge\
t the result of the function <A>fun</A> using the\n<Ref Oper=\"Pickup\" Label=\
\"bgjob\"/> operation described below, even when\nthe child has already termin\
ated, since the result is first transmitted\nback to the parent before termina\
tion.\n</Description>\n</ManSection>\n\nThe following operations are available\
to deal with background job\nobjects:\n\n<ManSection>\n<Oper Name=\"IsIdle\" \
Arg=\"job\" Label=\"bgjob\"/>\n<Returns><K>true</K>, <K>false</K> or <K>fail</\
K></Returns>\n<Description>\nThis operation checks whether or not the backgrou\
nd job represented by\nthe object <A>job</A> has already finished the function\
call to its\nworker function and is now idle. If so, <K>true</K> is returned.\
If it\nis still running and working on the worker function, <K>false</K> is r\
eturned.\nIf the background job has already terminated altogether, this operat\
ion\nreturns <K>fail</K>. Note that if a child process terminates automaticall\
y\nafter the first completion of its worker function and sending the result,\n\
then the first call to <Ref Oper=\"IsIdle\" Label=\"bgjob\"/> \nafter completi\
on will return\n<K>true</K> to indicate successful completion and all subseque\
nt calls\nwill return <K>fail</K>.\n</Description>\n</ManSection>\n\n<ManSecti\
on>\n<Oper Name=\"HasTerminated\" Arg=\"job\"/>\n<Returns><K>true</K> or <K>fa\
lse</K></Returns>\n<Description>\nThis operation checks whether or not the bac\
kground job represented by\nthe object <A>job</A> has already terminated. \nIf\
so, <K>true</K> is returned, if not, <K>false</K> is returned.\n</Description\
>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"WaitUntilIdle\" Arg=\"job\"/>\n\
<Returns>the result of the worker function or <K>fail</K></Returns>\n<Descript\
ion>\nThis operation waits until the worker function of the background job \n<\
A>job</A> has finished and the job is idle. It then returns the result\nof the\
worker function, which has automatically been transmitted to\nthe parent proc\
ess. If the child process has died before completion\n<K>fail</K> is returned.\
\n</Description>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"Pickup\" Arg=\"j\
ob\" Label=\"bgjob\"/>\n<Returns>the result of the worker function or <K>fail<\
/K></Returns>\n<Description>\nThis operation does the same as <Ref Oper=\"Wait\
UntilIdle\"/>.\n</Description>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"Su\
bmit\" Arg=\"job, args\" Label=\"bgjob\"/>\n<Returns><K>true</K> or <K>fail</K\
></Returns>\n<Description>\nThis submits another argument list <A>args</A> for\
another call to the\nworker function in the background job <A>job</A>. It is \
an error if\neither the background job has already terminated or if it is stil\
l busy\nworking on the previous argument list. That is, one must only submit\n\
another argument in a situation when <Ref Oper=\"IsIdle\" Label=\"bgjob\"/> \n\
would return\n<K>true</K>. This is for example the case directly after a succe\
ssful\ncall to <Ref Oper=\"Pickup\" Label=\"bgjob\"/> or i\n<Ref Oper=\"WaitUn\
tilIdle\"/> which did\nnot return <K>fail</K>, unless the background job was c\
reated with the\n<C>TerminateImmediately</C> option set to <K>true</K>.\n<P/>\
\nThis operation returns immediately after submission, when the new argument \
\nlist has been sent to the child process through a pipe. In particular, \nit \
does not await completion of the worker function for the new\nargument list.\n\
</Description>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"Kill\" Arg=\"job\"\
Label=\"bgjob\"/>\n<Returns>nothing</Returns>\n<Description>\nThis kills the \
background job represented by the object <A>job</A>\nwith immediate effect. No\
more results can be expected from it.\nNote that unless one has created the b\
ackground job with the\n<C>TerminateImmediately</C> option set to <K>true</K> \
one always\nhas to call <Ref Oper=\"Kill\" Label=\"bgjob\"/> on a background j\
ob eventually\nfor cleanup purposes. Otherwise, the background job and the con\
necting\npipes remain alive until the parent &GAP; process terminates.\n</Desc\
ription>\n</ManSection>\n\n</Section>\n\n\n<Section>\n<Heading>Parallel progra\
mming skeletons</Heading>\n\nIn this section we document the operations for th\
e available\nskeletons. For a general description of these ideas see other\nso\
urces. \n\n<ManSection>\n<Oper Name=\"ParTakeFirstResultByFork\" Arg=\"jobs, a\
rgs [,opt]\"/>\n<Returns>a list of results or <K>fail</K></Returns>\n<Descript\
ion>\nThe argument <A>jobs</A> must be a list of &GAP; functions and the\nargu\
ment <A>args</A> a list of the same length containing argument\nlists with whi\
ch the job functions can be called. This operation\nstarts up a background job\
using <C>fork</C> for each of the functions\nin <A>jobs</A>, calls it with th\
e corresponding argument list in\n<A>args</A>. As soon as any of the backgroun\
d jobs finishes with a result,\n<Ref Oper=\"ParTakeFirstResultByFork\"/> termi\
nates all other jobs and\nreports the results found so far. Note that it can h\
appen that two\njobs finish <Q>at the same time</Q> in the sense that both res\
ults \nare received before all other jobs could be terminated. Therefore\nthe \
result of <Ref Oper=\"ParTakeFirstResultByFork\"/> is a list, in which\npositi\
on <M>i</M> is bound if and only if job number <M>i</M> returned\na result. So\
in the result at least one entry is bound but it is possible\nthat more than \
one entry is bound.\n<P/>\nYou can specify an overall timeout to give up the w\
hole computation\nif no job finishes by setting the <C>TimeOut</C> component o\
f the\noptions record <A>opt</A>. In this case you have to set it to\na record\
with two components <C>tv_sec</C> and <C>tv_usec</C> which\nare seconds and m\
icroseconds respectively, exactly as returned by the\n<Ref Func=\"IO_gettimeof\
day\"/> function. In the case of timeout \nan empty list is returned.\n</Descr\
iption>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"ParDoByFork\" Arg=\"jobs,\
args [,opt]\"/>\n<Returns>a list of results or <K>fail</K></Returns>\n<Descri\
ption>\nThe argument <A>jobs</A> must be a list of &GAP; functions and the\nar\
gument <A>args</A> a list of the same length containing argument\nlists with w\
hich the job functions can be called. This operation\nstarts up a background j\
ob using <C>fork</C> for each of the functions\nin <A>jobs</A>, calls it with \
the corresponding argument list in\n<A>args</A>. As soon as all of the backgro\
und jobs finish with a result,\n<Ref Oper=\"ParDoByFork\"/> reports the result\
s found. \nTherefore\nthe result of <Ref Oper=\"ParDoByFork\"/> is a list, in \
which\nposition <M>i</M> is bound to the result that job number <M>i</M> retur\
ned.\n<P/>\nYou can specify an overall timeout to stop the whole computation\n\
if not all jobs finish in time by setting the <C>TimeOut</C> component of the\
\noptions record <A>opt</A>. In this case you have to set it to\na record with\
two components <C>tv_sec</C> and <C>tv_usec</C> which\nare seconds and micros\
econds respectively, exactly as returned by the\n<Ref Func=\"IO_gettimeofday\"\
/> function. In the case of timeout \na list is returned in which the position\
s corresponding to those\njobs that have already finished are bound to the res\
pective results\nand the other positions are unbound.\n</Description>\n</ManSe\
ction>\n\n<ManSection>\n<Oper Name=\"ParListByFork\" Arg=\"l, worker [,opt]\"/\
>\n<Returns>a list of results or <K>fail</K></Returns>\n<Description>\nThis is\
a parallel version of the <Ref Func=\"List\" BookName=\"ref\"/>\nfunction. It\
applies the function <A>worker</A> to all elements of \nthe list <A>l</A> and\
returns a list containing the results in\ncorresponding positions. You have t\
o specify the component\n<C>NumberJobs</C> in the options record <A>opt</A> wh\
ich indicates how many\nbackground processes to start. You can optionally use \
the <C>TimeOut</C>\noption exactly as for <Ref Oper=\"ParDoByFork\"/>, however\
, if a timeout\noccurs, <Ref Oper=\"ParListByFork\"/> returns <K>fail</K>.\n<P\
/>\nNote that the usefulness of this operation is relatively limited, since\ne\
very individual result has to be sent back over a pipe from the child process\
\nto the parent process. Therefore this only makes sense if the computation\nt\
ime for the worker function dominates the communication time.\n</Description>\
\n</ManSection>\n\n<ManSection>\n<Oper Name=\"ParMapReduceByFork\" Arg=\"l, ma\
p, reduce [,opt]\"/>\n<Returns>a value or <K>fail</K></Returns>\n<Description>\
\nThis is a parallel version implementation of the classical <C>MapReduce</C>\
\npattern.\nIt applies the function <A>map</A> to all elements of \nthe list <\
A>l</A> and then reduces the result using the <A>reduce</A> function\nwhich ac\
cepts two return values of <A>map</A> and returns one of them.\nThus, the fina\
l result is one return value or <K>fail</K> if the startup\nof the jobs fails.\
You have to specify the component\n<C>NumberJobs</C> in the options record <A\
>opt</A> which indicates how many\nbackground processes to start. You can opti\
onally use the <C>TimeOut</C>\noption exactly as for <Ref Oper=\"ParDoByFork\"\
/>, however, if a timeout\noccurs, <Ref Oper=\"ParMapReduceByFork\"/> returns \
<K>fail</K>.\n<P/>\nNote that this can be very useful because quite often \nth\
e cumulated computation time for all the worker function calls\ndominates the \
communication time for a single result.\n</Description>\n</ManSection>\n\nNote\
that the next parallel skeleton is a worker farm which\nis described in the f\
ollowing section.\n</Section>\n\n<Section>\n<Heading>Worker farms</Heading>\n\
\nThe parallel skeleton of a worker farm is basically nothing but\na bunch of \
background jobs all with the same worker function and\nall eagerly waiting for\
work. The only additional concepts needed\nare an input and an output queue. \
The input queue contains\nargument lists and the output queue pairs of argumen\
t lists\nand results.\n\n<P/> \nOne creates a worker farm with the following o\
peration:\n<ManSection>\n<Oper Name=\"ParWorkerFarmByFork\" Arg=\"fun, opt\"/>\
\n<Returns>an object representing the worker farm or <K>fail</K></Returns>\n<D\
escription>\nThis operation creates a worker farm with the worker function\n<A\
>fun</A> and sets up its input and output queue. An object representing\nthe f\
arm is returned unless not all jobs could be started up in which\ncase <K>fail\
</K> is returned. After startup all background jobs in the\nfarm are idle. The\
only valid option in the options record <A>opt</A>\nis <C>NumberJobs</C> and \
it must be bound to the number of worker\njobs in the farm, a positive integer\
.\n</Description>\n</ManSection>\n\nThe following operations are for worker fa\
rm objects:\n\n<ManSection>\n<Oper Name=\"DoQueues\" Arg=\"wf, block\"/>\n<Ret\
urns> nothing </Returns>\n<Description>\nThis operation called on a worker far\
m object <A>wf</A> administrates\nthe input and output queues of the worker fa\
rm. In particular it\nchecks whether new results are available from the worker\
s and if so\nit appends them to the output queue. If jobs are idle and the inp\
ut\nqueue is non-empty, argument lists from the input queue are sent\nto the i\
dle jobs and removed from the input queue.\n<P/>\nThis operation must be calle\
d regularly to keep up the communication\nwith the clients. It uses <C>select<\
/C> and so does not\nblock if the boolean argument <A>block</A> is set to <K>f\
alse</K>. \nHowever, if larger chunks of data has to be sent or received this\
\noperation might need some time to return.\n<P/>\nIf the boolean argument <A>\
block</A> is set to true then the \n<Ref Oper=\"DoQueues\"/> blocks until at l\
east one job has returned\na result. This can be used to wait for the terminat\
ion of all tasks\nwithout burning CPU cycles in the parent job. One would repe\
atedly\ncall <Ref Oper=\"DoQueues\"/> with <A>block</A> set to <K>true</K>\nan\
d after each such call check with <Ref Oper=\"IsIdle\" Label=\"wfarm\"/>\nwhet\
her all tasks are done. Note that one should no longer call\n<Ref Oper=\"DoQue\
ues\"/> with <A>block</A> set to <K>true</K> once\nthis is the case since then\
it would block forever.\n<P/>\nThis operation is called automatically by most\
of the following\noperations.\n</Description>\n</ManSection>\n\n<ManSection>\
\n<Oper Name=\"Kill\" Arg=\"wf\" Label=\"wfarm\"/>\n<Returns> nothing </Return\
s>\n<Description>\nThis operation terminates all background jobs in the farm <\
A>wf</A>, \nwhich cannot be used subsequently. One should always call this ope\
ration\nwhen the worker farm is no longer needed to free resources.\n</Descrip\
tion>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"IsIdle\" Arg=\"wf\" Label=\
\"wfarm\"/>\n<Returns> <K>true</K> or <K>false</K> </Returns>\n<Description>\n\
This operation returns <K>true</K> if all background jobs in the\nworker farm \
<A>wf</A> are idle. This means, that all tasks which\nhave previously been sub\
mitted using <Ref Oper=\"Submit\" Label=\"wfarm\"/> have\nbeen completed and t\
heir result been appended to the output\nqueue. The operation <Ref Oper=\"DoQu\
eues\"/> is automatically\ncalled before the execution of <Ref Oper=\"IsIdle\"\
Label=\"wfarm\"/>.\n</Description>\n</ManSection>\n\n<ManSection>\n<Oper Name\
=\"Submit\" Arg=\"wg, arglist\" Label=\"wfarm\"/>\n<Returns> nothing </Returns\
>\n<Description>\nThis operation submits a task in the form of an argument lis\
t for the\nworker function to the worker farm. It is appended at the end of th\
e\ninput queue.\nThe operation <Ref Oper=\"DoQueues\"/> is automatically\ncall\
ed after the execution of <Ref Oper=\"Submit\" Label=\"wfarm\"/>, giving the\n\
farm a chance to actually send the work out to the worker background\njobs.\n<\
/Description>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"Pickup\" Arg=\"wg, \
arglist\" Label=\"wfarm\"/>\n<Returns> nothing </Returns>\n<Description>\nThis\
operation collects all results from the output queue of the\nworker farm. The\
output queue is empty after this function returns.\nThe results are reported \
as a list of pairs, each pair has the\ninput argument list as first component \
and the output object\nas second component.\n<P/>\nThe operation <Ref Oper=\"D\
oQueues\"/> is automatically\ncalled before the execution of <Ref Oper=\"Picku\
p\" Label=\"wfarm\"/>, giving the\nfarm a chance to actually receive some more\
results from the worker background\njobs.\n</Description>\n</ManSection>\n\n<\
/Section>\n\n</Chapter>\n\n<Chapter>\n <Heading>I/O multiplexing</Heading>\
\n\n <Section>\n <Heading>Introduction</Heading>\n\nWhenever one nee\
ds to do input/output on more than one connection (file\ndescriptor) at a time\
, some code is needed to organise the I/O\nmultiplexing. Due to the single-thr\
eaded nature of the current &GAP;\nlanguage one has to use <Ref Func=\"IO_sele\
ct\"/> and some\nbuffering and queueing to organise this. This chapter describ\
es a\nrelative generic implementation of I/O-multiplexing using so-called\n<Re\
f Oper=\"IOHub\"/> objects. The basic idea is that an <Ref\n Oper=\"IOHub\"\
/> object handles lots of I/O connections at the same\ntime and maintains a bu\
ffer for each of them. There is a very simple\nprotocol that marks chunks of d\
ata (called <Q>messages</Q>) and whenever\na message has been received complet\
ely it is collected in the input\nqueue of the <Ref Oper=\"IOHub\"/>, marked w\
ith the number of the\nconnection it came from. Rather than sending a message \
away\nin one go, one would always schedule it for sending by appending it to\n\
the output queue. The operation <Ref Oper=\"DoIO\"/>, when called often\nenoug\
h, will then make sure that the message is sent away eventually.\n\n</Section>\
\n\n<Section>\n <Heading>The operations for <C>IOHub</C> objects</Heading>\
\n\nIn this section, we simply describe the functions and operations\nto creat\
e, use and destroy <Ref Oper=\"IOHub\"/> objects.\n<ManSection>\n<Oper Name=\"\
IOHub\" Arg=\"\"/>\n<Returns> an <Ref Oper=\"IOHub\"/> object </Returns>\n<Des\
cription>\n This creates a new <Ref Oper=\"IOHub\"/> object at first withou\
t any open\n connections.\n</Description>\n</ManSection>\n\n<ManSection>\n<\
Oper Name=\"NewConnection\" Arg=\"h, i, o\"/>\n<Returns> a positive integer </\
Returns>\n<Description>\n This operation adds a new connection to the <Ref \
Oper=\"IOHub\"/> object\n<A>h</A>. The arguments <A>i</A> and <A>o</A> must be\
Unix file\ndescriptors or <M>0</M> and <A>i</A> must be open for reading if\n\
it is positive and <A>o</A> must be open for writing if it is\npositive. It is\
allowed that both file descriptors are equal, but they\nmay not both be equal\
to <M>0</M>. The operation returns a positive\ninteger which is the number un\
der which this new connection will be\nadministrated in the <Ref Oper=\"IOHub\
\"/> object. Note that this number is\nspecific to the object <A>h</A>. <P/>\n\
From the moment these file descriptors are registered with the\n<Ref Oper=\"IO\
Hub\"/> object, every subsequent call to <Ref Oper=\"DoIO\"/> will\ntry to do \
input and output on them. This means in particular that the\nother side of thi\
s connection should be in the same initial\nstate of the protocol. Usually thi\
s will be achieved by them being\nadded as a new connection to a corresponding\
<Ref Oper=\"IOHub\"/> object on\nthe other side at the same time. <P/> \nSee \
also <Ref Oper=\"NewTCPConnection\"/> below.\n</Description>\n</ManSection>\n\
\n<ManSection>\n<Oper Name=\"CloseConnection\" Arg=\"h, nr\"/>\n<Returns> noth\
ing </Returns>\n<Description>\n The argument <A>h</A> must be an <Ref Oper=\
\"IOHub\"/> object and\n <A>nr</A> the number of a connection which was pre\
viously returned\n by <Ref Oper=\"NewConnection\"/>. The corresponding conn\
ection is\n closed and removed from the <Ref Oper=\"IOHub\"/>.\n</Descripti\
on>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"AttachServingSocket\" Arg=\"h\
, addr, port\"/>\n<Returns> a Unix file descriptor or <K>fail</K> </Returns>\n\
<Description>\nThe argument <A>h</A> must be an <Ref Oper=\"IOHub\"/> object,\
\n<A>addr</A> an IP address or host name as a string and <A>port</A> a\nport n\
umber (see also <Ref Func=\"IO_MakeIPAddressPort\"/>). \nThis operation create\
s a new socket, binds it to the IP\naddress\nand port and attaches it to the <\
Ref Oper=\"IOHub\"/> object. From\nthis moment on the operation <Ref Oper=\"Do\
IO\"/> will accept new\nbidirectional TCP/IP connections on that socket and ad\
d them to \n<A>h</A>. The operation returns either the file descriptor of the\
\nnew socket or <K>fail</K> if an error occurred.\n</Description>\n</ManSectio\
n>\n\n<ManSection>\n<Oper Name=\"ShutdownServingSocket\" Arg=\"h\"/>\n<Returns\
> nothing </Returns>\n<Description>\nThe argument <A>h</A> must be an <Ref Ope\
r=\"IOHub\"/> object.\nAny server socket which was attached to <A>h</A> is shu\
t down,\nso no new connections will be accepted.\n</Description>\n</ManSection\
>\n\n<ManSection>\n<Oper Name=\"Shutdown\" Arg=\"h\"/>\n<Returns> nothing </Re\
turns>\n<Description>\nThe argument <A>h</A> must be an <Ref Oper=\"IOHub\"/> \
object.\nAll connections of <A>h</A> will be closed using <Ref\n Oper=\"Clo\
seConnection\"/> and any serving socket will be\nshut down using <Ref Oper=\"S\
hutdownServingSocket\"/>. The <Ref\n Oper=\"IOHub\"/> object will not be us\
able any more after this call.\n</Description>\n</ManSection>\n\n<ManSection>\
\n<Oper Name=\"AcceptNewConnection\" Arg=\"h\"/>\n<Returns> a positive integer\
or <K>fail</K></Returns>\n<Description>\nThe argument <A>h</A> must be an <Re\
f Oper=\"IOHub\"/> object.\nThe object <A>h</A> must have a serving socket att\
ached to it\nvia <Ref Oper=\"AttachServingSocket\"/>, otherwise <K>fail</K> is\
\nreturned and nothing happens. One more connection is accepted through\nthe s\
erving socket. It is added as a new bidirectional TCP/IP\nconnection to the <R\
ef Oper=\"IOHub\"/> object and the new connection\nnumber is returned. Note fi\
rst that this operation blocks until a new\nconnection comes in. Note furtherm\
ore that this operation is usually\ncalled automatically in <Ref Oper=\"DoIO\
\"/> whenever a new connection\nhas come in, which is reported in the internal\
<Ref Func=\"IO_select\"/>\ncall. So usually, the client code does not have to\
call this operation\nat all.\n</Description>\n</ManSection>\n\n<ManSection>\n\
<Oper Name=\"SubmitOutput\" Arg=\"h, nr, st\"/>\n<Returns> <K>true</K> or <K>f\
ail</K> </Returns>\n<Description>\n The argument <A>h</A> must be an <Ref O\
per=\"IOHub\"/> object,\n <A>nr</A> must be a positive integer which is the\
number of\n an open connection of <A>h</A> which can be used for output.\n\
The argument <A>st</A> must be a &GAP; string. This operation\n appends\
the message <A>st</A> to the end of the output queue\n for the connection \
<A>nr</A>. Note that at this stage no output\n is actually performed automa\
tically. One has to call\n <Ref Oper=\"DoIO\"/> subsequently to actually se\
nd the message away.\n</Description>\n</ManSection>\n\n<ManSection>\n<Oper Nam\
e=\"GetInput\" Arg=\"h, nr\"/>\n<Returns> a list of length <M>2</M> </Returns>\
\n<Description>\nThe argument <A>h</A> must be an <Ref Oper=\"IOHub\"/> object\
,\n<A>nr</A> must be an integer.\nIf <A>nr</A> is positive, this operation ret\
urns the earliest message\nwhich has come in from connection number <A>nr</A> \
and has not yet been\nreturned by <Ref Oper=\"GetInput\"/> before. This messag\
e is then removed \nfrom the input queue. If there is no such message, then <K\
>false</K>\nis returned. A message is returned as a plain list of length <M>2<\
/M>\nwhere the first entry is the connection number it came from and\nthe seco\
nd entry is a string containing the message itself. If\n<A>nr</A> is equal to \
<M>0</M> then the first message in the input\nqueue from any connection is ret\
urned or <K>false</K> if there is no\nmessage in the input queue.\n</Descripti\
on>\n</ManSection>\n\n<ManSection>\n<Oper Name=\"NewTCPConnection\" Arg=\"h, a\
ddr, port\"/>\n<Returns> a connection number or <K>fail</K> </Returns>\n<Descr\
iption>\nThe argument <A>h</A> must be an <Ref Oper=\"IOHub\"/> object,\nthe a\
rguments <A>addr</A> and <A>port</A> must be an address/port\npair as used in \
<Ref Func=\"IO_MakeIPAddressPort\"/>, so <A>address</A>\ncan either be a host \
name or an IP address and <A>port</A> is a port\nnumber. This operation opens \
a new TCP connection to the address and\nport specified, adds a new bidirectio\
nal connection to the <Ref Oper=\"IOHub\"/>\n<A>h</A> using <Ref Oper=\"NewCon\
nection\"/> \nand returns the connection number specific to the object\n<A>h</\
A>. If anything goes wrong, <K>fail</K> is returned.\n</Description>\n</ManSec\
tion>\n\n<ManSection>\n<Oper Name=\"OutputQueue\" Arg=\"h\"/>\n<Returns> a lis\
t </Returns>\n<Description>\nThe argument <A>h</A> must be an <Ref Oper=\"IOHu\
b\"/> object.\nThis returns the internal object for the output queue. Its elem\
ents\nare pairs where the first entry is the connection number where it\nis go\
ing to be sent and the second entry is the message as a string.\nOnly modify t\
his list if you really know what you are doing.\n</Description>\n</ManSection>\
\n\n<ManSection>\n<Oper Name=\"InputQueue\" Arg=\"h\"/>\n<Returns> a list </Re\
turns>\n<Description>\nThe argument <A>h</A> must be an <Ref Oper=\"IOHub\"/> \
object.\nThis returns the internal object for the input queue. Its elements\na\
re pairs where the first entry is the connection number from where\nthe messag\
e was received and the second entry is the message as a string.\nOnly modify t\
his list if you really know what you are doing.\n</Description>\n</ManSection>\
\n\n<ManSection>\n<Oper Name=\"DoIO\" Arg=\"h [,block]\"/>\n<Returns> <K>true<\
/K> or <K>false</K> or <K>fail</K> </Returns>\n<Description>\nThe argument <A>\
h</A> must be an <Ref Oper=\"IOHub\"/> object,\nand the optional second argume\
nt <A>block</A> must be <K>true</K> or\n<K>false</K>. This operation uses <Ref\
Func=\"IO_select\"/> to decide\nwhich of the file descriptors belonging to th\
e connections of <A>h</A>\nare ready to read or write. All file descriptors wh\
ich are ready are\nserved, possibly updating the input and output queues. A po\
ssible\nserving socket is also served accepting a new connection if there is o\
ne.\nThe operation <Ref Oper=\"DoIO\"/> loops until no more file\ndescriptors \
are ready. It returns <K>true</K> if some I/O was\nperformed and <K>false</K> \
if not. It returns <K>fail</K> if the\n<Ref Oper=\"IOHub\"/> is already shut d\
own.\nThe second argument <A>block</A> indicates\nwhether or not <Ref Oper=\"D\
oIO\"/> should block until some I/O\nhas taken place. If this argument is omit\
ted then <K>false</K>\n(non-blocking operation) is the default.<P/>\nNote that\
broken connections are silently closed.\n</Description>\n</ManSection>\n\n</S\
ection>\n\n<Section>\n <Heading> Examples </Heading>\n\nThere is an example\
hash server in the file\n<F>examples/hashserver.g</F>.\n\n</Section>\n\n</Cha\
pter>\n\n<Chapter>\n<Heading>Examples of usage</Heading>\n\nFor larger example\
s see the <F>example</F> directory of the package. \nYou find there a small se\
rver using the TCP/IP protocol and\na corresponding client and another small s\
erver using the UDP protocol\nand a corresponding client. <P/>\n\nFurther, the\
re is an example for the\nusage of <C>File</C> objects, that read from or writ\
e to strings.<P/>\n\nAnother example there shows starting up a child process a\
nd piping\na few megabytes through it using <Ref Func=\"IO_Popen2\"/>.\n\n<P/>\
\nIn the following, we present a few explicit, interactive short examples \nfo\
r the usage of the functions in this package. Note that you have to\nload the \
<Package>IO</Package> package with the command \n<C>LoadPackage(\"IO\");</C>\n\
before trying these examples.\n\n<Section>\n<Heading>Writing and reading a fil\
e</Heading>\n\nThe following sequence of commands opens a file with name <F>gu\
ck</F> and\nwrites some things to it:\n\n<Log>\ngap> f := IO_File(\"guck\",\"w\
\");\n<file fd=3 wbufsize=65536 wdata=0>\ngap> IO_Write(f,\"Hello world\\n\
\");\n12\ngap> IO_WriteLine(f,\"Hello world2!\");\n14\ngap> IO_Write(f,12345);\
\n5\ngap> IO_Flush(f);\ntrue\ngap> IO_Close(f);\ntrue\n</Log>\n\nThere is noth\
ing special about this, the numbers are numbers of bytes\nwritten. Note that o\
nly after the <Ref Func=\"IO_Flush\"/> command the\ndata is actually written t\
o disk. Before that, it resides in the\nwrite buffer of the file. Note further\
, that the <Ref Func=\"IO_Flush\"/>\ncall here would not have been necessary, \
since the <Ref Func=\"IO_Close\"/>\ncall flushes the buffer anyway.<P/>\n\nThe\
file can again be read with the following sequence of commands:\n\n<Log>\ngap\
> f := IO_File(\"guck\",\"r\");\n<file fd=3 rbufsize=65536 rpos=1 rdata=0>\
\ngap> IO_Read(f,10);\n\"Hello worl\"\ngap> IO_ReadLine(f);\n\"d\\n\"\ngap> IO\
_ReadLine(f);\n\"Hello world2!\\n\"\ngap> IO_ReadLine(f);\n\"12345\"\ngap> IO_\
ReadLine(f);\n\"\"\ngap> IO_Close(f);\ntrue\n</Log>\n\nNote here that reading \
line-wise can only be done efficiently by using\nbuffered I/O. You can mix cal\
ls to <Ref Func=\"IO_Read\"/> and to\n<Ref Func=\"IO_ReadLine\"/>. The end of \
file is indicated by an empty\nstring returned by one of the read functions.\n\
</Section>\n\n<Section>\n<Heading>Using filtering programs to read and write f\
iles</Heading>\n\nIf you want to write a big amount of data to file you might \
want to compress\nit on the fly without using much disk space. This can be ach\
ieved with\nthe following command:\n\n<Log>\ngap> s := \"\";; for i in [1..100\
00] do Append(s,String(i)); od;;\ngap> Length(s);\n38894\ngap> IO_FileFilterSt\
ring(\"guck.gz\",[[\"gzip\",[\"-9c\"]]],s);\ntrue\ngap> sgz := StringFile(\"gu\
ck.gz\");;\ngap> Length(sgz);\n18541\ngap> ss := IO_StringFilterFile([[\"gzip\
\",[\"-dc\"]]],\"guck.gz\");;\ngap> s=ss;\ntrue\n</Log>\n\nThis sequence of co\
mmands needs that the program <F>gzip</F> is installed\non your system.\n</Sec\
tion>\n\n<Section>\n<Heading>Using filters when reading or writing files seque\
ntially</Heading>\n\nIf you want to process bigger amounts of data you might n\
ot want to\nstore all of it in a single &GAP; string. In that case you might w\
ant\nto access a file on disk sequentially through a filter:\n\n<Log>\ngap> f \
:= IO_FilteredFile([[\"gzip\",[\"-9c\"]]],\"guck.gz\",\"w\");\n<file fd=5 w\
bufsize=65536 wdata=0>\ngap> IO_Write(f,\"Hello world!\\n\");\n13\ngap> IO_Wri\
te(f,Elements(SymmetricGroup(5)),\"\\n\");\n1359\ngap> IO_Close(f);\ntrue\ngap\
> f := IO_FilteredFile([[\"gzip\",[\"-dc\"]]],\"guck.gz\",\"r\");\n<file fd\
=4 rbufsize=65536 rpos=1 rdata=0>\ngap> IO_ReadLine(f);\n\"Hello world!\\n\"\n\
gap> s := IO_ReadLine(f);; Length(s);\n1359\ngap> IO_Read(f,10); \
\n\"\"\ngap> IO_Close(f);\ntrue\n</Log>\n</Section>\n\n<Section>\n<Heading\
>Accessing a web page</Heading>\n\nThe <Package>IO</Package> package has an HT\
TP client implementation. Using this\nyou can access web pages and other web d\
ownloads from within &GAP;. Here\nis an example:\n\n<Log>\ngap> r := SingleHTT\
PRequest(\"www.math.rwth-aachen.de\",80,\"GET\",\n> \"/~Max.Neunh\
oeffer/index.html\",rec(),false,false);;\ngap> RecFields(r);\n[ \"protoversion\
\", \"statuscode\", \"status\", \"header\", \"body\", \"closed\" ]\ngap> r.sta\
tus;\n\"OK\"\ngap> r.statuscode;\n200\ngap> r.header;\nrec( date := \"Thu, 07 \
Dec 2006 22:08:22 GMT\", \n server := \"Apache/2.0.55 (Ubuntu)\", \n last-mo\
dified := \"Thu, 16 Nov 2006 00:21:44 GMT\", \n etag := \"\\\"2179cf-11a5-3c7\
7f600\\\"\", accept-ranges := \"bytes\", \n content-length := \"4517\", conte\
nt-type := \"text/html; charset=ISO-8859-1\" )\ngap> Length(r.body);\n4517\n</\
Log>\n\nOf course, the time stamps and exact sizes of the answer may differ\nw\
hen you do this.\n</Section>\n\n<Section>\n<Heading>(Un-)Pickling</Heading>\n\
\nAssume you have some &GAP; objects you want to archive to disk grouped\ntoge\
ther. Then you might do the following:\n\n<Log>\ngap> r := rec( a := 1, b := \
\"Max\", c := [1,2,3] );\nrec( a := 1, b := \"Max\", c := [ 1, 2, 3 ] )\ngap> \
r.c[4] := r;\nrec( a := 1, b := \"Max\", c := [ 1, 2, 3, ~ ] )\ngap> f := IO_F\
ile(\"guck\",\"w\");\n<file fd=3 wbufsize=65536 wdata=0>\ngap> IO_Pickle(f,\
r);\nIO_OK\ngap> IO_Pickle(f,[(1,2,3,4),(3,4)]);\nIO_OK\ngap> IO_Close(f);\ntr\
ue\n</Log>\n\nThen, to read it in again, just do:\n\n<Log>\ngap> f := IO_File(\
\"guck\");\n<file fd=3 rbufsize=65536 rpos=1 rdata=0>\ngap> IO_Unpickle(f);\
\nrec( a := 1, b := \"Max\", c := [ 1, 2, 3, ~ ] )\ngap> IO_Unpickle(f);\n[ (1\
,2,3,4), (3,4) ]\ngap> IO_Unpickle(f);\nIO_Nothing\ngap> IO_Close(f);\ntrue\n<\
/Log>\n\nNote that this works for a certain amount of builtin objects. If you \
want\nto archive your own objects or more sophisticated objects you have to\nu\
se extend the functionality as explained in Section \n<Ref Sect=\"ExtPickFrame\
\"/>. However, it works for lists and records and\nthey may be arbitrarily sel\
f-referential.\n\n</Section>\n</Chapter>\n\n<Chapter>\n <Heading>License</H\
eading>\n\nThis program is free software: you can redistribute it and/or modif\
y\nit under the terms of the GNU General Public License as published by\nthe F\
ree Software Foundation, either version 3 of the License, or\n(at your option)\
any later version.<P/>\n\nThis program is distributed in the hope that it wil\
l be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\n\
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Pub\
lic License for more details.<P/>\n\nYou should have received a copy of the GN\
U General Public License\nalong with this program. If not, see http://www.gnu\
.org/licenses/.\n\n</Chapter>\n\n</Body>\n\n<!-- We do not need a bibliograph\
y -->\n<!-- <Bibliography Databases=\"edim\"/>-->\n\n<!-- And finally an ind\
ex as well -->\n<TheIndex/>\n\n</Book>\n\n<!--\nThis program is free softwar\
e: you can redistribute it and/or modify\nit under the terms of the GNU Genera\
l Public License as published by\nthe Free Software Foundation, either version\
3 of the License, or\n(at your option) any later version.\n\nThis program is \
distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; wit\
hout even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR\
PURPOSE. See the\nGNU General Public License for more details.\n\nYou should\
have received a copy of the GNU General Public License\nalong with this progr\
am. If not, see <http://www.gnu.org/licenses/>.\n-->\n \n",
inputorigins := [ [ 1, "doc/io.xml", 1 ], [ 40, "doc/io.xml", 2 ],
[ 41, "doc/io.xml", 3 ], [ 77, "doc/io.xml", 4 ],
[ 78, "doc/io.xml", 5 ], [ 83, "doc/io.xml", 6 ],
[ 84, "doc/io.xml", 7 ], [ 158, "doc/io.xml", 8 ],
[ 159, "doc/io.xml", 9 ], [ 237, "doc/io.xml", 10 ],
[ 303, "doc/io.xml", 11 ], [ 304, "doc/io.xml", 12 ],
[ 308, "doc/io.xml", 13 ], [ 309, "doc/io.xml", 14 ],
[ 326, "doc/io.xml", 15 ], [ 327, "doc/io.xml", 16 ],
[ 339, "doc/io.xml", 17 ], [ 394, "doc/io.xml", 18 ],
[ 465, "doc/io.xml", 19 ], [ 479, "doc/io.xml", 20 ],
[ 493, "doc/../VERSION", 1 ], [ 498, "doc/io.xml", 20 ],
[ 499, "doc/io.xml", 21 ], [ 514, "doc/io.xml", 22 ],
[ 542, "doc/io.xml", 23 ], [ 552, "doc/io.xml", 24 ],
[ 589, "doc/io.xml", 25 ], [ 612, "doc/io.xml", 26 ],
[ 637, "doc/io.xml", 27 ], [ 649, "doc/io.xml", 28 ],
[ 675, "doc/io.xml", 29 ], [ 688, "doc/io.xml", 30 ],
[ 699, "doc/io.xml", 31 ], [ 744, "doc/io.xml", 32 ],
[ 820, "doc/io.xml", 33 ], [ 834, "doc/io.xml", 34 ],
[ 862, "doc/io.xml", 35 ], [ 863, "doc/io.xml", 36 ],
[ 875, "doc/io.xml", 37 ], [ 924, "doc/io.xml", 38 ],
[ 925, "doc/io.xml", 39 ], [ 997, "doc/io.xml", 40 ],
[ 1038, "doc/io.xml", 41 ], [ 1051, "doc/io.xml", 42 ],
[ 1064, "doc/io.xml", 43 ], [ 1065, "doc/io.xml", 44 ],
[ 1136, "doc/io.xml", 45 ], [ 1155, "doc/io.xml", 46 ],
[ 1156, "doc/io.xml", 47 ], [ 1197, "doc/io.xml", 48 ],
[ 1204, "doc/main.xml", 1 ], [ 1210, "doc/main.xml", 2 ],
[ 1211, "doc/main.xml", 3 ], [ 1284, "doc/main.xml", 4 ],
[ 1285, "doc/main.xml", 5 ], [ 1328, "doc/main.xml", 6 ],
[ 1394, "doc/main.xml", 7 ], [ 1395, "doc/main.xml", 8 ],
[ 1442, "doc/main.xml", 9 ], [ 1443, "doc/main.xml", 10 ],
[ 1447, "doc/main.xml", 11 ], [ 1448, "doc/main.xml", 12 ],
[ 1479, "doc/main.xml", 13 ], [ 1506, "doc/main.xml", 14 ],
[ 1543, "doc/main.xml", 15 ], [ 1544, "doc/main.xml", 16 ],
[ 1620, "doc/main.xml", 17 ], [ 1689, "doc/main.xml", 18 ],
[ 1764, "doc/main.xml", 19 ], [ 1836, "doc/main.xml", 20 ],
[ 1897, "doc/main.xml", 21 ], [ 1967, "doc/main.xml", 22 ],
[ 1996, "doc/main.xml", 23 ], [ 1997, "doc/main.xml", 24 ],
[ 2065, "doc/main.xml", 25 ], [ 2128, "doc/main.xml", 26 ],
[ 2129, "doc/main.xml", 27 ], [ 2206, "doc/main.xml", 28 ],
[ 2280, "doc/main.xml", 29 ], [ 2348, "doc/main.xml", 30 ],
[ 2363, "doc/main.xml", 31 ], [ 2364, "doc/main.xml", 32 ],
[ 2430, "doc/main.xml", 33 ], [ 2501, "doc/main.xml", 34 ],
[ 2502, "doc/main.xml", 35 ], [ 2513, "doc/main.xml", 36 ],
[ 2514, "doc/main.xml", 37 ], [ 2545, "doc/main.xml", 38 ],
[ 2614, "doc/main.xml", 39 ], [ 2615, "doc/main.xml", 40 ],
[ 2685, "doc/main.xml", 41 ], [ 2699, "doc/main.xml", 42 ],
[ 2706, "doc/main.xml", 43 ], [ 2742, "doc/main.xml", 44 ],
[ 2779, "doc/main.xml", 45 ], [ 2812, "doc/main.xml", 46 ],
[ 2820, "doc/main.xml", 47 ], [ 2841, "doc/main.xml", 48 ],
[ 2848, "doc/main.xml", 49 ], [ 2889, "doc/main.xml", 50 ],
[ 2897, "doc/main.xml", 51 ], [ 2900, "doc/main.xml", 52 ],
[ 2907, "doc/main.xml", 53 ], [ 2951, "doc/main.xml", 54 ],
[ 2959, "doc/main.xml", 55 ], [ 2962, "doc/main.xml", 56 ],
[ 2969, "doc/main.xml", 57 ], [ 2989, "doc/main.xml", 58 ],
[ 2997, "doc/main.xml", 59 ], [ 3011, "doc/main.xml", 60 ],
[ 3016, "doc/main.xml", 61 ], [ 3017, "doc/main.xml", 62 ],
[ 3099, "doc/main.xml", 63 ], [ 3180, "doc/main.xml", 64 ],
[ 3222, "doc/main.xml", 65 ], [ 3223, "doc/main.xml", 66 ],
[ 3294, "doc/main.xml", 67 ], [ 3295, "doc/main.xml", 68 ],
[ 3365, "doc/main.xml", 69 ], [ 3366, "doc/main.xml", 70 ],
[ 3373, "doc/main.xml", 71 ], [ 3383, "doc/main.xml", 72 ],
[ 3399, "doc/main.xml", 73 ], [ 3408, "doc/main.xml", 74 ],
[ 3416, "doc/main.xml", 75 ], [ 3417, "doc/main.xml", 76 ],
[ 3490, "doc/main.xml", 77 ], [ 3561, "doc/main.xml", 78 ],
[ 3621, "doc/main.xml", 79 ], [ 3648, "doc/main.xml", 80 ],
[ 3706, "doc/main.xml", 81 ], [ 3768, "doc/main.xml", 82 ],
[ 3786, "doc/main.xml", 83 ], [ 3832, "doc/main.xml", 84 ],
[ 3854, "doc/main.xml", 85 ], [ 3904, "doc/main.xml", 86 ],
[ 3922, "doc/main.xml", 87 ], [ 3993, "doc/main.xml", 88 ],
[ 4066, "doc/main.xml", 89 ], [ 4136, "doc/main.xml", 90 ],
[ 4208, "doc/main.xml", 91 ], [ 4280, "doc/main.xml", 92 ],
[ 4285, "doc/main.xml", 93 ], [ 4286, "doc/main.xml", 94 ],
[ 4356, "doc/main.xml", 95 ], [ 4422, "doc/main.xml", 96 ],
[ 4490, "doc/main.xml", 97 ], [ 4562, "doc/main.xml", 98 ],
[ 4598, "doc/main.xml", 99 ], [ 4663, "doc/main.xml", 100 ],
[ 4715, "doc/main.xml", 101 ], [ 4764, "doc/main.xml", 102 ],
[ 4827, "doc/main.xml", 103 ], [ 4892, "doc/main.xml", 104 ],
[ 4957, "doc/main.xml", 105 ], [ 4958, "doc/main.xml", 106 ],
[ 4959, "doc/main.xml", 107 ], [ 4964, "doc/main.xml", 108 ],
[ 4974, "doc/main.xml", 109 ], [ 5008, "doc/main.xml", 110 ],
[ 5009, "doc/main.xml", 111 ], [ 5010, "doc/main.xml", 112 ],
[ 5069, "doc/main.xml", 113 ], [ 5127, "doc/main.xml", 114 ],
[ 5171, "doc/main.xml", 115 ], [ 5172, "doc/main.xml", 116 ],
[ 5230, "doc/main.xml", 117 ], [ 5292, "doc/main.xml", 118 ],
[ 5373, "doc/main.xml", 119 ], [ 5378, "doc/main.xml", 120 ],
[ 5379, "doc/main.xml", 121 ], [ 5450, "doc/main.xml", 122 ],
[ 5518, "doc/main.xml", 123 ], [ 5535, "doc/main.xml", 124 ],
[ 5619, "doc/main.xml", 125 ], [ 5692, "doc/main.xml", 126 ],
[ 5693, "doc/main.xml", 127 ], [ 5700, "doc/main.xml", 128 ],
[ 5768, "doc/main.xml", 129 ], [ 5811, "doc/main.xml", 130 ],
[ 5819, "doc/main.xml", 131 ], [ 5820, "doc/main.xml", 132 ],
[ 5909, "doc/main.xml", 133 ], [ 5973, "doc/main.xml", 134 ],
[ 5974, "doc/main.xml", 135 ], [ 6046, "doc/main.xml", 136 ],
[ 6064, "doc/main.xml", 137 ], [ 6131, "doc/main.xml", 138 ],
[ 6199, "doc/main.xml", 139 ], [ 6280, "doc/main.xml", 140 ],
[ 6337, "doc/main.xml", 141 ], [ 6360, "doc/main.xml", 142 ],
[ 6361, "doc/main.xml", 143 ], [ 6430, "doc/main.xml", 144 ],
[ 6500, "doc/main.xml", 145 ], [ 6567, "doc/main.xml", 146 ],
[ 6631, "doc/main.xml", 147 ], [ 6638, "doc/main.xml", 148 ],
[ 6679, "doc/main.xml", 149 ], [ 6687, "doc/main.xml", 150 ],
[ 6731, "doc/main.xml", 151 ], [ 6738, "doc/main.xml", 152 ],
[ 6762, "doc/main.xml", 153 ], [ 6770, "doc/main.xml", 154 ],
[ 6836, "doc/main.xml", 155 ], [ 6899, "doc/main.xml", 156 ],
[ 6922, "doc/main.xml", 157 ], [ 6923, "doc/main.xml", 158 ],
[ 6924, "doc/main.xml", 159 ], [ 6935, "doc/main.xml", 160 ],
[ 6939, "doc/main.xml", 161 ], [ 6940, "doc/main.xml", 162 ],
[ 6950, "doc/main.xml", 163 ], [ 6999, "doc/main.xml", 164 ],
[ 7000, "doc/main.xml", 165 ], [ 7067, "doc/main.xml", 166 ],
[ 7085, "doc/main.xml", 167 ], [ 7147, "doc/main.xml", 168 ],
[ 7148, "doc/main.xml", 169 ], [ 7159, "doc/main.xml", 170 ],
[ 7160, "doc/main.xml", 171 ], [ 7171, "doc/main.xml", 172 ],
[ 7172, "doc/main.xml", 173 ], [ 7242, "doc/main.xml", 174 ],
[ 7275, "doc/main.xml", 175 ], [ 7342, "doc/main.xml", 176 ],
[ 7343, "doc/main.xml", 177 ], [ 7408, "doc/main.xml", 178 ],
[ 7430, "doc/main.xml", 179 ], [ 7431, "doc/main.xml", 180 ],
[ 7447, "doc/main.xml", 181 ], [ 7461, "doc/main.xml", 182 ],
[ 7476, "doc/main.xml", 183 ], [ 7491, "doc/main.xml", 184 ],
[ 7506, "doc/main.xml", 185 ], [ 7520, "doc/main.xml", 186 ],
[ 7538, "doc/main.xml", 187 ], [ 7555, "doc/main.xml", 188 ],
[ 7570, "doc/main.xml", 189 ], [ 7583, "doc/main.xml", 190 ],
[ 7597, "doc/main.xml", 191 ], [ 7611, "doc/main.xml", 192 ],
[ 7626, "doc/main.xml", 193 ], [ 7641, "doc/main.xml", 194 ],
[ 7654, "doc/main.xml", 195 ], [ 7670, "doc/main.xml", 196 ],
[ 7686, "doc/main.xml", 197 ], [ 7700, "doc/main.xml", 198 ],
[ 7713, "doc/main.xml", 199 ], [ 7728, "doc/main.xml", 200 ],
[ 7751, "doc/main.xml", 201 ], [ 7771, "doc/main.xml", 202 ],
[ 7786, "doc/main.xml", 203 ], [ 7802, "doc/main.xml", 204 ],
[ 7822, "doc/main.xml", 205 ], [ 7842, "doc/main.xml", 206 ],
[ 7863, "doc/main.xml", 207 ], [ 7878, "doc/main.xml", 208 ],
[ 7891, "doc/main.xml", 209 ], [ 7906, "doc/main.xml", 210 ],
[ 7920, "doc/main.xml", 211 ], [ 7935, "doc/main.xml", 212 ],
[ 7953, "doc/main.xml", 213 ], [ 7968, "doc/main.xml", 214 ],
[ 7982, "doc/main.xml", 215 ], [ 7997, "doc/main.xml", 216 ],
[ 8013, "doc/main.xml", 217 ], [ 8028, "doc/main.xml", 218 ],
[ 8042, "doc/main.xml", 219 ], [ 8059, "doc/main.xml", 220 ],
[ 8072, "doc/main.xml", 221 ], [ 8086, "doc/main.xml", 222 ],
[ 8103, "doc/main.xml", 223 ], [ 8120, "doc/main.xml", 224 ],
[ 8134, "doc/main.xml", 225 ], [ 8152, "doc/main.xml", 226 ],
[ 8168, "doc/main.xml", 227 ], [ 8187, "doc/main.xml", 228 ],
[ 8202, "doc/main.xml", 229 ], [ 8218, "doc/main.xml", 230 ],
[ 8233, "doc/main.xml", 231 ], [ 8247, "doc/main.xml", 232 ],
[ 8262, "doc/main.xml", 233 ], [ 8282, "doc/main.xml", 234 ],
[ 8297, "doc/main.xml", 235 ], [ 8311, "doc/main.xml", 236 ],
[ 8328, "doc/main.xml", 237 ], [ 8345, "doc/main.xml", 238 ],
[ 8361, "doc/main.xml", 239 ], [ 8380, "doc/main.xml", 240 ],
[ 8381, "doc/main.xml", 241 ], [ 8453, "doc/main.xml", 242 ],
[ 8468, "doc/main.xml", 243 ], [ 8469, "doc/main.xml", 244 ],
[ 8545, "doc/main.xml", 245 ], [ 8625, "doc/main.xml", 246 ],
[ 8685, "doc/main.xml", 247 ], [ 8755, "doc/main.xml", 248 ],
[ 8825, "doc/main.xml", 249 ], [ 8897, "doc/main.xml", 250 ],
[ 8968, "doc/main.xml", 251 ], [ 9016, "doc/main.xml", 252 ],
[ 9017, "doc/main.xml", 253 ], [ 9077, "doc/main.xml", 254 ],
[ 9108, "doc/main.xml", 255 ], [ 9109, "doc/main.xml", 256 ],
[ 9183, "doc/main.xml", 257 ], [ 9256, "doc/main.xml", 258 ],
[ 9293, "doc/main.xml", 259 ], [ 9294, "doc/main.xml", 260 ],
[ 9361, "doc/main.xml", 261 ], [ 9429, "doc/main.xml", 262 ],
[ 9496, "doc/main.xml", 263 ], [ 9560, "doc/main.xml", 264 ],
[ 9626, "doc/main.xml", 265 ], [ 9681, "doc/main.xml", 266 ],
[ 9682, "doc/main.xml", 267 ], [ 9692, "doc/main.xml", 268 ],
[ 9750, "doc/main.xml", 269 ], [ 9751, "doc/main.xml", 270 ],
[ 9819, "doc/main.xml", 271 ], [ 9888, "doc/main.xml", 272 ],
[ 9889, "doc/main.xml", 273 ], [ 9960, "doc/main.xml", 274 ],
[ 10033, "doc/main.xml", 275 ], [ 10106, "doc/main.xml", 276 ],
[ 10179, "doc/main.xml", 277 ], [ 10249, "doc/main.xml", 278 ],
[ 10325, "doc/main.xml", 279 ], [ 10398, "doc/main.xml", 280 ],
[ 10439, "doc/main.xml", 281 ], [ 10440, "doc/main.xml", 282 ],
[ 10508, "doc/main.xml", 283 ], [ 10578, "doc/main.xml", 284 ],
[ 10643, "doc/main.xml", 285 ], [ 10712, "doc/main.xml", 286 ],
[ 10780, "doc/main.xml", 287 ], [ 10844, "doc/main.xml", 288 ],
[ 10845, "doc/main.xml", 289 ], [ 10919, "doc/main.xml", 290 ],
[ 10920, "doc/main.xml", 291 ], [ 10995, "doc/main.xml", 292 ],
[ 11071, "doc/main.xml", 293 ], [ 11147, "doc/main.xml", 294 ],
[ 11216, "doc/main.xml", 295 ], [ 11254, "doc/main.xml", 296 ],
[ 11255, "doc/main.xml", 297 ], [ 11329, "doc/main.xml", 298 ],
[ 11400, "doc/main.xml", 299 ], [ 11430, "doc/main.xml", 300 ],
[ 11431, "doc/main.xml", 301 ], [ 11503, "doc/main.xml", 302 ],
[ 11567, "doc/main.xml", 303 ], [ 11593, "doc/main.xml", 304 ],
[ 11594, "doc/main.xml", 305 ], [ 11669, "doc/main.xml", 306 ],
[ 11742, "doc/main.xml", 307 ], [ 11761, "doc/main.xml", 308 ],
[ 11762, "doc/main.xml", 309 ], [ 11837, "doc/main.xml", 310 ],
[ 11906, "doc/main.xml", 311 ], [ 11907, "doc/main.xml", 312 ],
[ 11981, "doc/main.xml", 313 ], [ 12058, "doc/main.xml", 314 ],
[ 12122, "doc/main.xml", 315 ], [ 12189, "doc/main.xml", 316 ],
[ 12249, "doc/main.xml", 317 ], [ 12328, "doc/main.xml", 318 ],
[ 12386, "doc/main.xml", 319 ], [ 12443, "doc/main.xml", 320 ],
[ 12444, "doc/main.xml", 321 ], [ 12517, "doc/main.xml", 322 ],
[ 12559, "doc/main.xml", 323 ], [ 12560, "doc/main.xml", 324 ],
[ 12634, "doc/main.xml", 325 ], [ 12653, "doc/main.xml", 326 ],
[ 12654, "doc/main.xml", 327 ], [ 12716, "doc/main.xml", 328 ],
[ 12780, "doc/main.xml", 329 ], [ 12791, "doc/main.xml", 330 ],
[ 12792, "doc/main.xml", 331 ], [ 12802, "doc/main.xml", 332 ],
[ 12859, "doc/main.xml", 333 ], [ 12860, "doc/main.xml", 334 ],
[ 12932, "doc/main.xml", 335 ], [ 13001, "doc/main.xml", 336 ],
[ 13072, "doc/main.xml", 337 ], [ 13146, "doc/main.xml", 338 ],
[ 13217, "doc/main.xml", 339 ], [ 13218, "doc/main.xml", 340 ],
[ 13231, "doc/main.xml", 341 ], [ 13269, "doc/main.xml", 342 ],
[ 13323, "doc/main.xml", 343 ], [ 13370, "doc/main.xml", 344 ],
[ 13384, "doc/main.xml", 345 ], [ 13424, "doc/main.xml", 346 ],
[ 13500, "doc/main.xml", 347 ], [ 13573, "doc/main.xml", 348 ],
[ 13610, "doc/main.xml", 349 ], [ 13625, "doc/main.xml", 350 ],
[ 13639, "doc/main.xml", 351 ], [ 13640, "doc/main.xml", 352 ],
[ 13653, "doc/main.xml", 353 ], [ 13692, "doc/main.xml", 354 ],
[ 13742, "doc/main.xml", 355 ], [ 13789, "doc/main.xml", 356 ],
[ 13803, "doc/main.xml", 357 ], [ 13838, "doc/main.xml", 358 ],
[ 13893, "doc/main.xml", 359 ], [ 13966, "doc/main.xml", 360 ],
[ 14032, "doc/main.xml", 361 ], [ 14047, "doc/main.xml", 362 ],
[ 14061, "doc/main.xml", 363 ], [ 14062, "doc/main.xml", 364 ],
[ 14075, "doc/main.xml", 365 ], [ 14108, "doc/main.xml", 366 ],
[ 14162, "doc/main.xml", 367 ], [ 14210, "doc/main.xml", 368 ],
[ 14224, "doc/main.xml", 369 ], [ 14263, "doc/main.xml", 370 ],
[ 14306, "doc/main.xml", 371 ], [ 14322, "doc/main.xml", 372 ],
[ 14336, "doc/main.xml", 373 ], [ 14338, "doc/main.xml", 374 ],
[ 14351, "doc/main.xml", 375 ], [ 14394, "doc/main.xml", 376 ],
[ 14437, "doc/main.xml", 377 ], [ 14485, "doc/main.xml", 378 ],
[ 14499, "doc/main.xml", 379 ], [ 14527, "doc/main.xml", 380 ],
[ 14570, "doc/main.xml", 381 ], [ 14586, "doc/main.xml", 382 ],
[ 14600, "doc/main.xml", 383 ], [ 14602, "doc/main.xml", 384 ],
[ 14615, "doc/main.xml", 385 ], [ 14662, "doc/main.xml", 386 ],
[ 14710, "doc/main.xml", 387 ], [ 14758, "doc/main.xml", 388 ],
[ 14772, "doc/main.xml", 389 ], [ 14805, "doc/main.xml", 390 ],
[ 14848, "doc/main.xml", 391 ], [ 14864, "doc/main.xml", 392 ],
[ 14878, "doc/main.xml", 393 ], [ 14880, "doc/main.xml", 394 ],
[ 14893, "doc/main.xml", 395 ], [ 14924, "doc/main.xml", 396 ],
[ 14965, "doc/main.xml", 397 ], [ 15013, "doc/main.xml", 398 ],
[ 15027, "doc/main.xml", 399 ], [ 15053, "doc/main.xml", 400 ],
[ 15096, "doc/main.xml", 401 ], [ 15112, "doc/main.xml", 402 ],
[ 15126, "doc/main.xml", 403 ], [ 15128, "doc/main.xml", 404 ],
[ 15141, "doc/main.xml", 405 ], [ 15173, "doc/main.xml", 406 ],
[ 15208, "doc/main.xml", 407 ], [ 15256, "doc/main.xml", 408 ],
[ 15270, "doc/main.xml", 409 ], [ 15290, "doc/main.xml", 410 ],
[ 15370, "doc/main.xml", 411 ], [ 15412, "doc/main.xml", 412 ],
[ 15428, "doc/main.xml", 413 ], [ 15442, "doc/main.xml", 414 ],
[ 15444, "doc/main.xml", 415 ], [ 15457, "doc/main.xml", 416 ],
[ 15501, "doc/main.xml", 417 ], [ 15545, "doc/main.xml", 418 ],
[ 15593, "doc/main.xml", 419 ], [ 15607, "doc/main.xml", 420 ],
[ 15636, "doc/main.xml", 421 ], [ 15694, "doc/main.xml", 422 ],
[ 15769, "doc/main.xml", 423 ], [ 15835, "doc/main.xml", 424 ],
[ 15851, "doc/main.xml", 425 ], [ 15865, "doc/main.xml", 426 ],
[ 15867, "doc/main.xml", 427 ], [ 15880, "doc/main.xml", 428 ],
[ 15923, "doc/main.xml", 429 ], [ 15958, "doc/main.xml", 430 ],
[ 16005, "doc/main.xml", 431 ], [ 16019, "doc/main.xml", 432 ],
[ 16082, "doc/main.xml", 433 ], [ 16098, "doc/main.xml", 434 ],
[ 16112, "doc/main.xml", 435 ], [ 16114, "doc/main.xml", 436 ],
[ 16127, "doc/main.xml", 437 ], [ 16159, "doc/main.xml", 438 ],
[ 16204, "doc/main.xml", 439 ], [ 16251, "doc/main.xml", 440 ],
[ 16265, "doc/main.xml", 441 ], [ 16296, "doc/main.xml", 442 ],
[ 16337, "doc/main.xml", 443 ], [ 16353, "doc/main.xml", 444 ],
[ 16367, "doc/main.xml", 445 ], [ 16369, "doc/main.xml", 446 ],
[ 16382, "doc/main.xml", 447 ], [ 16422, "doc/main.xml", 448 ],
[ 16480, "doc/main.xml", 449 ], [ 16528, "doc/main.xml", 450 ],
[ 16542, "doc/main.xml", 451 ], [ 16585, "doc/main.xml", 452 ],
[ 16627, "doc/main.xml", 453 ], [ 16643, "doc/main.xml", 454 ],
[ 16657, "doc/main.xml", 455 ], [ 16659, "doc/main.xml", 456 ],
[ 16672, "doc/main.xml", 457 ], [ 16711, "doc/main.xml", 458 ],
[ 16769, "doc/main.xml", 459 ], [ 16821, "doc/main.xml", 460 ],
[ 16835, "doc/main.xml", 461 ], [ 16878, "doc/main.xml", 462 ],
[ 16956, "doc/main.xml", 463 ], [ 17026, "doc/main.xml", 464 ],
[ 17040, "doc/main.xml", 465 ], [ 17056, "doc/main.xml", 466 ],
[ 17070, "doc/main.xml", 467 ], [ 17072, "doc/main.xml", 468 ],
[ 17085, "doc/main.xml", 469 ], [ 17131, "doc/main.xml", 470 ],
[ 17189, "doc/main.xml", 471 ], [ 17241, "doc/main.xml", 472 ],
[ 17255, "doc/main.xml", 473 ], [ 17298, "doc/main.xml", 474 ],
[ 17372, "doc/main.xml", 475 ], [ 17447, "doc/main.xml", 476 ],
[ 17518, "doc/main.xml", 477 ], [ 17585, "doc/main.xml", 478 ],
[ 17629, "doc/main.xml", 479 ], [ 17645, "doc/main.xml", 480 ],
[ 17659, "doc/main.xml", 481 ], [ 17661, "doc/main.xml", 482 ],
[ 17674, "doc/main.xml", 483 ], [ 17714, "doc/main.xml", 484 ],
[ 17772, "doc/main.xml", 485 ], [ 17824, "doc/main.xml", 486 ],
[ 17838, "doc/main.xml", 487 ], [ 17881, "doc/main.xml", 488 ],
[ 17960, "doc/main.xml", 489 ], [ 18030, "doc/main.xml", 490 ],
[ 18044, "doc/main.xml", 491 ], [ 18060, "doc/main.xml", 492 ],
[ 18074, "doc/main.xml", 493 ], [ 18076, "doc/main.xml", 494 ],
[ 18089, "doc/main.xml", 495 ], [ 18123, "doc/main.xml", 496 ],
[ 18189, "doc/main.xml", 497 ], [ 18203, "doc/main.xml", 498 ],
[ 18261, "doc/main.xml", 499 ], [ 18335, "doc/main.xml", 500 ],
[ 18367, "doc/main.xml", 501 ], [ 18383, "doc/main.xml", 502 ],
[ 18397, "doc/main.xml", 503 ], [ 18398, "doc/main.xml", 504 ],
[ 18411, "doc/main.xml", 505 ], [ 18449, "doc/main.xml", 506 ],
[ 18496, "doc/main.xml", 507 ], [ 18544, "doc/main.xml", 508 ],
[ 18558, "doc/main.xml", 509 ], [ 18590, "doc/main.xml", 510 ],
[ 18634, "doc/main.xml", 511 ], [ 18650, "doc/main.xml", 512 ],
[ 18664, "doc/main.xml", 513 ], [ 18666, "doc/main.xml", 514 ],
[ 18679, "doc/main.xml", 515 ], [ 18725, "doc/main.xml", 516 ],
[ 18786, "doc/main.xml", 517 ], [ 18834, "doc/main.xml", 518 ],
[ 18848, "doc/main.xml", 519 ], [ 18894, "doc/main.xml", 520 ],
[ 18938, "doc/main.xml", 521 ], [ 18954, "doc/main.xml", 522 ],
[ 18968, "doc/main.xml", 523 ], [ 18969, "doc/main.xml", 524 ],
[ 18982, "doc/main.xml", 525 ], [ 19023, "doc/main.xml", 526 ],
[ 19051, "doc/main.xml", 527 ], [ 19098, "doc/main.xml", 528 ],
[ 19112, "doc/main.xml", 529 ], [ 19183, "doc/main.xml", 530 ],
[ 19230, "doc/main.xml", 531 ], [ 19245, "doc/main.xml", 532 ],
[ 19259, "doc/main.xml", 533 ], [ 19260, "doc/main.xml", 534 ],
[ 19273, "doc/main.xml", 535 ], [ 19301, "doc/main.xml", 536 ],
[ 19371, "doc/main.xml", 537 ], [ 19418, "doc/main.xml", 538 ],
[ 19432, "doc/main.xml", 539 ], [ 19487, "doc/main.xml", 540 ],
[ 19562, "doc/main.xml", 541 ], [ 19636, "doc/main.xml", 542 ],
[ 19703, "doc/main.xml", 543 ], [ 19749, "doc/main.xml", 544 ],
[ 19828, "doc/main.xml", 545 ], [ 19894, "doc/main.xml", 546 ],
[ 19964, "doc/main.xml", 547 ], [ 20013, "doc/main.xml", 548 ],
[ 20048, "doc/main.xml", 549 ], [ 20064, "doc/main.xml", 550 ],
[ 20078, "doc/main.xml", 551 ], [ 20080, "doc/main.xml", 552 ],
[ 20093, "doc/main.xml", 553 ], [ 20124, "doc/main.xml", 554 ],
[ 20186, "doc/main.xml", 555 ], [ 20231, "doc/main.xml", 556 ],
[ 20245, "doc/main.xml", 557 ], [ 20292, "doc/main.xml", 558 ],
[ 20367, "doc/main.xml", 559 ], [ 20411, "doc/main.xml", 560 ],
[ 20427, "doc/main.xml", 561 ], [ 20441, "doc/main.xml", 562 ],
[ 20443, "doc/main.xml", 563 ], [ 20456, "doc/main.xml", 564 ],
[ 20497, "doc/main.xml", 565 ], [ 20545, "doc/main.xml", 566 ],
[ 20590, "doc/main.xml", 567 ], [ 20604, "doc/main.xml", 568 ],
[ 20637, "doc/main.xml", 569 ], [ 20715, "doc/main.xml", 570 ],
[ 20765, "doc/main.xml", 571 ], [ 20781, "doc/main.xml", 572 ],
[ 20795, "doc/main.xml", 573 ], [ 20797, "doc/main.xml", 574 ],
[ 20810, "doc/main.xml", 575 ], [ 20845, "doc/main.xml", 576 ],
[ 20878, "doc/main.xml", 577 ], [ 20923, "doc/main.xml", 578 ],
[ 20937, "doc/main.xml", 579 ], [ 20955, "doc/main.xml", 580 ],
[ 21004, "doc/main.xml", 581 ], [ 21020, "doc/main.xml", 582 ],
[ 21034, "doc/main.xml", 583 ], [ 21036, "doc/main.xml", 584 ],
[ 21049, "doc/main.xml", 585 ], [ 21104, "doc/main.xml", 586 ],
[ 21136, "doc/main.xml", 587 ], [ 21150, "doc/main.xml", 588 ],
[ 21219, "doc/main.xml", 589 ], [ 21263, "doc/main.xml", 590 ],
[ 21278, "doc/main.xml", 591 ], [ 21292, "doc/main.xml", 592 ],
[ 21293, "doc/main.xml", 593 ], [ 21306, "doc/main.xml", 594 ],
[ 21369, "doc/main.xml", 595 ], [ 21401, "doc/main.xml", 596 ],
[ 21415, "doc/main.xml", 597 ], [ 21486, "doc/main.xml", 598 ],
[ 21544, "doc/main.xml", 599 ], [ 21559, "doc/main.xml", 600 ],
[ 21573, "doc/main.xml", 601 ], [ 21574, "doc/main.xml", 602 ],
[ 21587, "doc/main.xml", 603 ], [ 21624, "doc/main.xml", 604 ],
[ 21658, "doc/main.xml", 605 ], [ 21703, "doc/main.xml", 606 ],
[ 21717, "doc/main.xml", 607 ], [ 21785, "doc/main.xml", 608 ],
[ 21801, "doc/main.xml", 609 ], [ 21815, "doc/main.xml", 610 ],
[ 21817, "doc/main.xml", 611 ], [ 21830, "doc/main.xml", 612 ],
[ 21890, "doc/main.xml", 613 ], [ 21926, "doc/main.xml", 614 ],
[ 21975, "doc/main.xml", 615 ], [ 21989, "doc/main.xml", 616 ],
[ 22058, "doc/main.xml", 617 ], [ 22132, "doc/main.xml", 618 ],
[ 22162, "doc/main.xml", 619 ], [ 22178, "doc/main.xml", 620 ],
[ 22192, "doc/main.xml", 621 ], [ 22194, "doc/main.xml", 622 ],
[ 22207, "doc/main.xml", 623 ], [ 22243, "doc/main.xml", 624 ],
[ 22280, "doc/main.xml", 625 ], [ 22359, "doc/main.xml", 626 ],
[ 22373, "doc/main.xml", 627 ], [ 22443, "doc/main.xml", 628 ],
[ 22508, "doc/main.xml", 629 ], [ 22552, "doc/main.xml", 630 ],
[ 22568, "doc/main.xml", 631 ], [ 22582, "doc/main.xml", 632 ],
[ 22584, "doc/main.xml", 633 ], [ 22597, "doc/main.xml", 634 ],
[ 22634, "doc/main.xml", 635 ], [ 22676, "doc/main.xml", 636 ],
[ 22706, "doc/main.xml", 637 ], [ 22720, "doc/main.xml", 638 ],
[ 22782, "doc/main.xml", 639 ], [ 22852, "doc/main.xml", 640 ],
[ 22862, "doc/main.xml", 641 ], [ 22922, "doc/main.xml", 642 ],
[ 22937, "doc/main.xml", 643 ], [ 22953, "doc/main.xml", 644 ],
[ 22967, "doc/main.xml", 645 ], [ 22969, "doc/main.xml", 646 ],
[ 22982, "doc/main.xml", 647 ], [ 23040, "doc/main.xml", 648 ],
[ 23088, "doc/main.xml", 649 ], [ 23102, "doc/main.xml", 650 ],
[ 23165, "doc/main.xml", 651 ], [ 23223, "doc/main.xml", 652 ],
[ 23283, "doc/main.xml", 653 ], [ 23336, "doc/main.xml", 654 ],
[ 23351, "doc/main.xml", 655 ], [ 23365, "doc/main.xml", 656 ],
[ 23366, "doc/main.xml", 657 ], [ 23379, "doc/main.xml", 658 ],
[ 23427, "doc/main.xml", 659 ], [ 23500, "doc/main.xml", 660 ],
[ 23549, "doc/main.xml", 661 ], [ 23563, "doc/main.xml", 662 ],
[ 23621, "doc/main.xml", 663 ], [ 23665, "doc/main.xml", 664 ],
[ 23681, "doc/main.xml", 665 ], [ 23695, "doc/main.xml", 666 ],
[ 23697, "doc/main.xml", 667 ], [ 23710, "doc/main.xml", 668 ],
[ 23754, "doc/main.xml", 669 ], [ 23789, "doc/main.xml", 670 ],
[ 23838, "doc/main.xml", 671 ], [ 23852, "doc/main.xml", 672 ],
[ 23872, "doc/main.xml", 673 ], [ 23914, "doc/main.xml", 674 ],
[ 23930, "doc/main.xml", 675 ], [ 23944, "doc/main.xml", 676 ],
[ 23946, "doc/main.xml", 677 ], [ 23959, "doc/main.xml", 678 ],
[ 24000, "doc/main.xml", 679 ], [ 24045, "doc/main.xml", 680 ],
[ 24094, "doc/main.xml", 681 ], [ 24108, "doc/main.xml", 682 ],
[ 24138, "doc/main.xml", 683 ], [ 24182, "doc/main.xml", 684 ],
[ 24198, "doc/main.xml", 685 ], [ 24212, "doc/main.xml", 686 ],
[ 24214, "doc/main.xml", 687 ], [ 24227, "doc/main.xml", 688 ],
[ 24267, "doc/main.xml", 689 ], [ 24309, "doc/main.xml", 690 ],
[ 24339, "doc/main.xml", 691 ], [ 24353, "doc/main.xml", 692 ],
[ 24415, "doc/main.xml", 693 ], [ 24486, "doc/main.xml", 694 ],
[ 24546, "doc/main.xml", 695 ], [ 24564, "doc/main.xml", 696 ],
[ 24580, "doc/main.xml", 697 ], [ 24594, "doc/main.xml", 698 ],
[ 24596, "doc/main.xml", 699 ], [ 24609, "doc/main.xml", 700 ],
[ 24656, "doc/main.xml", 701 ], [ 24699, "doc/main.xml", 702 ],
[ 24746, "doc/main.xml", 703 ], [ 24760, "doc/main.xml", 704 ],
[ 24787, "doc/main.xml", 705 ], [ 24830, "doc/main.xml", 706 ],
[ 24846, "doc/main.xml", 707 ], [ 24860, "doc/main.xml", 708 ],
[ 24862, "doc/main.xml", 709 ], [ 24875, "doc/main.xml", 710 ],
[ 24908, "doc/main.xml", 711 ], [ 24982, "doc/main.xml", 712 ],
[ 25027, "doc/main.xml", 713 ], [ 25041, "doc/main.xml", 714 ],
[ 25100, "doc/main.xml", 715 ], [ 25175, "doc/main.xml", 716 ],
[ 25219, "doc/main.xml", 717 ], [ 25235, "doc/main.xml", 718 ],
[ 25249, "doc/main.xml", 719 ], [ 25251, "doc/main.xml", 720 ],
[ 25264, "doc/main.xml", 721 ], [ 25307, "doc/main.xml", 722 ],
[ 25343, "doc/main.xml", 723 ], [ 25392, "doc/main.xml", 724 ],
[ 25406, "doc/main.xml", 725 ], [ 25427, "doc/main.xml", 726 ],
[ 25470, "doc/main.xml", 727 ], [ 25486, "doc/main.xml", 728 ],
[ 25500, "doc/main.xml", 729 ], [ 25502, "doc/main.xml", 730 ],
[ 25515, "doc/main.xml", 731 ], [ 25559, "doc/main.xml", 732 ],
[ 25616, "doc/main.xml", 733 ], [ 25665, "doc/main.xml", 734 ],
[ 25679, "doc/main.xml", 735 ], [ 25723, "doc/main.xml", 736 ],
[ 25767, "doc/main.xml", 737 ], [ 25783, "doc/main.xml", 738 ],
[ 25797, "doc/main.xml", 739 ], [ 25799, "doc/main.xml", 740 ],
[ 25812, "doc/main.xml", 741 ], [ 25860, "doc/main.xml", 742 ],
[ 25910, "doc/main.xml", 743 ], [ 25959, "doc/main.xml", 744 ],
[ 25973, "doc/main.xml", 745 ], [ 26008, "doc/main.xml", 746 ],
[ 26051, "doc/main.xml", 747 ], [ 26067, "doc/main.xml", 748 ],
[ 26081, "doc/main.xml", 749 ], [ 26083, "doc/main.xml", 750 ],
[ 26096, "doc/main.xml", 751 ], [ 26145, "doc/main.xml", 752 ],
[ 26203, "doc/main.xml", 753 ], [ 26250, "doc/main.xml", 754 ],
[ 26264, "doc/main.xml", 755 ], [ 26307, "doc/main.xml", 756 ],
[ 26383, "doc/main.xml", 757 ], [ 26396, "doc/main.xml", 758 ],
[ 26412, "doc/main.xml", 759 ], [ 26426, "doc/main.xml", 760 ],
[ 26428, "doc/main.xml", 761 ], [ 26441, "doc/main.xml", 762 ],
[ 26476, "doc/main.xml", 763 ], [ 26510, "doc/main.xml", 764 ],
[ 26559, "doc/main.xml", 765 ], [ 26573, "doc/main.xml", 766 ],
[ 26592, "doc/main.xml", 767 ], [ 26667, "doc/main.xml", 768 ],
[ 26734, "doc/main.xml", 769 ], [ 26803, "doc/main.xml", 770 ],
[ 26809, "doc/main.xml", 771 ], [ 26825, "doc/main.xml", 772 ],
[ 26839, "doc/main.xml", 773 ], [ 26841, "doc/main.xml", 774 ],
[ 26854, "doc/main.xml", 775 ], [ 26882, "doc/main.xml", 776 ],
[ 26957, "doc/main.xml", 777 ], [ 27002, "doc/main.xml", 778 ],
[ 27016, "doc/main.xml", 779 ], [ 27076, "doc/main.xml", 780 ],
[ 27157, "doc/main.xml", 781 ], [ 27227, "doc/main.xml", 782 ],
[ 27288, "doc/main.xml", 783 ], [ 27342, "doc/main.xml", 784 ],
[ 27357, "doc/main.xml", 785 ], [ 27371, "doc/main.xml", 786 ],
[ 27372, "doc/main.xml", 787 ], [ 27385, "doc/main.xml", 788 ],
[ 27434, "doc/main.xml", 789 ], [ 27477, "doc/main.xml", 790 ],
[ 27524, "doc/main.xml", 791 ], [ 27538, "doc/main.xml", 792 ],
[ 27566, "doc/main.xml", 793 ], [ 27645, "doc/main.xml", 794 ],
[ 27716, "doc/main.xml", 795 ], [ 27786, "doc/main.xml", 796 ],
[ 27861, "doc/main.xml", 797 ], [ 27914, "doc/main.xml", 798 ],
[ 27930, "doc/main.xml", 799 ], [ 27944, "doc/main.xml", 800 ],
[ 27946, "doc/main.xml", 801 ], [ 27959, "doc/main.xml", 802 ],
[ 27990, "doc/main.xml", 803 ], [ 28029, "doc/main.xml", 804 ],
[ 28090, "doc/main.xml", 805 ], [ 28104, "doc/main.xml", 806 ],
[ 28128, "doc/main.xml", 807 ], [ 28207, "doc/main.xml", 808 ],
[ 28278, "doc/main.xml", 809 ], [ 28350, "doc/main.xml", 810 ],
[ 28385, "doc/main.xml", 811 ], [ 28401, "doc/main.xml", 812 ],
[ 28415, "doc/main.xml", 813 ], [ 28417, "doc/main.xml", 814 ],
[ 28430, "doc/main.xml", 815 ], [ 28480, "doc/main.xml", 816 ],
[ 28531, "doc/main.xml", 817 ], [ 28578, "doc/main.xml", 818 ],
[ 28592, "doc/main.xml", 819 ], [ 28628, "doc/main.xml", 820 ],
[ 28698, "doc/main.xml", 821 ], [ 28765, "doc/main.xml", 822 ],
[ 28775, "doc/main.xml", 823 ], [ 28791, "doc/main.xml", 824 ],
[ 28805, "doc/main.xml", 825 ], [ 28807, "doc/main.xml", 826 ],
[ 28820, "doc/main.xml", 827 ], [ 28874, "doc/main.xml", 828 ],
[ 28918, "doc/main.xml", 829 ], [ 28965, "doc/main.xml", 830 ],
[ 28979, "doc/main.xml", 831 ], [ 29008, "doc/main.xml", 832 ],
[ 29079, "doc/main.xml", 833 ], [ 29152, "doc/main.xml", 834 ],
[ 29162, "doc/main.xml", 835 ], [ 29178, "doc/main.xml", 836 ],
[ 29192, "doc/main.xml", 837 ], [ 29194, "doc/main.xml", 838 ],
[ 29207, "doc/main.xml", 839 ], [ 29271, "doc/main.xml", 840 ],
[ 29334, "doc/main.xml", 841 ], [ 29381, "doc/main.xml", 842 ],
[ 29395, "doc/main.xml", 843 ], [ 29443, "doc/main.xml", 844 ],
[ 29519, "doc/main.xml", 845 ], [ 29592, "doc/main.xml", 846 ],
[ 29634, "doc/main.xml", 847 ], [ 29707, "doc/main.xml", 848 ],
[ 29742, "doc/main.xml", 849 ], [ 29758, "doc/main.xml", 850 ],
[ 29772, "doc/main.xml", 851 ], [ 29774, "doc/main.xml", 852 ],
[ 29787, "doc/main.xml", 853 ], [ 29833, "doc/main.xml", 854 ],
[ 29876, "doc/main.xml", 855 ], [ 29925, "doc/main.xml", 856 ],
[ 29939, "doc/main.xml", 857 ], [ 29967, "doc/main.xml", 858 ],
[ 30011, "doc/main.xml", 859 ], [ 30027, "doc/main.xml", 860 ],
[ 30041, "doc/main.xml", 861 ], [ 30043, "doc/main.xml", 862 ],
[ 30056, "doc/main.xml", 863 ], [ 30089, "doc/main.xml", 864 ],
[ 30125, "doc/main.xml", 865 ], [ 30173, "doc/main.xml", 866 ],
[ 30187, "doc/main.xml", 867 ], [ 30208, "doc/main.xml", 868 ],
[ 30289, "doc/main.xml", 869 ], [ 30363, "doc/main.xml", 870 ],
[ 30431, "doc/main.xml", 871 ], [ 30447, "doc/main.xml", 872 ],
[ 30461, "doc/main.xml", 873 ], [ 30463, "doc/main.xml", 874 ],
[ 30476, "doc/main.xml", 875 ], [ 30509, "doc/main.xml", 876 ],
[ 30552, "doc/main.xml", 877 ], [ 30600, "doc/main.xml", 878 ],
[ 30614, "doc/main.xml", 879 ], [ 30642, "doc/main.xml", 880 ],
[ 30685, "doc/main.xml", 881 ], [ 30701, "doc/main.xml", 882 ],
[ 30715, "doc/main.xml", 883 ], [ 30717, "doc/main.xml", 884 ],
[ 30730, "doc/main.xml", 885 ], [ 30767, "doc/main.xml", 886 ],
[ 30826, "doc/main.xml", 887 ], [ 30874, "doc/main.xml", 888 ],
[ 30888, "doc/main.xml", 889 ], [ 30932, "doc/main.xml", 890 ],
[ 31010, "doc/main.xml", 891 ], [ 31073, "doc/main.xml", 892 ],
[ 31089, "doc/main.xml", 893 ], [ 31103, "doc/main.xml", 894 ],
[ 31105, "doc/main.xml", 895 ], [ 31118, "doc/main.xml", 896 ],
[ 31197, "doc/main.xml", 897 ], [ 31239, "doc/main.xml", 898 ],
[ 31286, "doc/main.xml", 899 ], [ 31300, "doc/main.xml", 900 ],
[ 31327, "doc/main.xml", 901 ], [ 31405, "doc/main.xml", 902 ],
[ 31477, "doc/main.xml", 903 ], [ 31543, "doc/main.xml", 904 ],
[ 31597, "doc/main.xml", 905 ], [ 31668, "doc/main.xml", 906 ],
[ 31724, "doc/main.xml", 907 ], [ 31771, "doc/main.xml", 908 ],
[ 31787, "doc/main.xml", 909 ], [ 31801, "doc/main.xml", 910 ],
[ 31803, "doc/main.xml", 911 ], [ 31816, "doc/main.xml", 912 ],
[ 31870, "doc/main.xml", 913 ], [ 31909, "doc/main.xml", 914 ],
[ 31956, "doc/main.xml", 915 ], [ 31970, "doc/main.xml", 916 ],
[ 31994, "doc/main.xml", 917 ], [ 32070, "doc/main.xml", 918 ],
[ 32138, "doc/main.xml", 919 ], [ 32206, "doc/main.xml", 920 ],
[ 32258, "doc/main.xml", 921 ], [ 32274, "doc/main.xml", 922 ],
[ 32288, "doc/main.xml", 923 ], [ 32290, "doc/main.xml", 924 ],
[ 32303, "doc/main.xml", 925 ], [ 32365, "doc/main.xml", 926 ],
[ 32404, "doc/main.xml", 927 ], [ 32451, "doc/main.xml", 928 ],
[ 32465, "doc/main.xml", 929 ], [ 32489, "doc/main.xml", 930 ],
[ 32567, "doc/main.xml", 931 ], [ 32635, "doc/main.xml", 932 ],
[ 32703, "doc/main.xml", 933 ], [ 32767, "doc/main.xml", 934 ],
[ 32786, "doc/main.xml", 935 ], [ 32859, "doc/main.xml", 936 ],
[ 32894, "doc/main.xml", 937 ], [ 32910, "doc/main.xml", 938 ],
[ 32924, "doc/main.xml", 939 ], [ 32926, "doc/main.xml", 940 ],
[ 32939, "doc/main.xml", 941 ], [ 32999, "doc/main.xml", 942 ],
[ 33036, "doc/main.xml", 943 ], [ 33084, "doc/main.xml", 944 ],
[ 33098, "doc/main.xml", 945 ], [ 33120, "doc/main.xml", 946 ],
[ 33191, "doc/main.xml", 947 ], [ 33242, "doc/main.xml", 948 ],
[ 33272, "doc/main.xml", 949 ], [ 33288, "doc/main.xml", 950 ],
[ 33302, "doc/main.xml", 951 ], [ 33304, "doc/main.xml", 952 ],
[ 33317, "doc/main.xml", 953 ], [ 33369, "doc/main.xml", 954 ],
[ 33433, "doc/main.xml", 955 ], [ 33480, "doc/main.xml", 956 ],
[ 33494, "doc/main.xml", 957 ], [ 33543, "doc/main.xml", 958 ],
[ 33587, "doc/main.xml", 959 ], [ 33659, "doc/main.xml", 960 ],
[ 33738, "doc/main.xml", 961 ], [ 33774, "doc/main.xml", 962 ],
[ 33790, "doc/main.xml", 963 ], [ 33804, "doc/main.xml", 964 ],
[ 33806, "doc/main.xml", 965 ], [ 33819, "doc/main.xml", 966 ],
[ 33855, "doc/main.xml", 967 ], [ 33919, "doc/main.xml", 968 ],
[ 33964, "doc/main.xml", 969 ], [ 33978, "doc/main.xml", 970 ],
[ 34034, "doc/main.xml", 971 ], [ 34108, "doc/main.xml", 972 ],
[ 34152, "doc/main.xml", 973 ], [ 34168, "doc/main.xml", 974 ],
[ 34182, "doc/main.xml", 975 ], [ 34184, "doc/main.xml", 976 ],
[ 34197, "doc/main.xml", 977 ], [ 34244, "doc/main.xml", 978 ],
[ 34284, "doc/main.xml", 979 ], [ 34332, "doc/main.xml", 980 ],
[ 34346, "doc/main.xml", 981 ], [ 34371, "doc/main.xml", 982 ],
[ 34416, "doc/main.xml", 983 ], [ 34432, "doc/main.xml", 984 ],
[ 34446, "doc/main.xml", 985 ], [ 34448, "doc/main.xml", 986 ],
[ 34461, "doc/main.xml", 987 ], [ 34492, "doc/main.xml", 988 ],
[ 34545, "doc/main.xml", 989 ], [ 34592, "doc/main.xml", 990 ],
[ 34606, "doc/main.xml", 991 ], [ 34644, "doc/main.xml", 992 ],
[ 34721, "doc/main.xml", 993 ], [ 34784, "doc/main.xml", 994 ],
[ 34800, "doc/main.xml", 995 ], [ 34814, "doc/main.xml", 996 ],
[ 34816, "doc/main.xml", 997 ], [ 34829, "doc/main.xml", 998 ],
[ 34867, "doc/main.xml", 999 ], [ 34932, "doc/main.xml", 1000 ],
[ 34980, "doc/main.xml", 1001 ], [ 34994, "doc/main.xml", 1002 ],
[ 35044, "doc/main.xml", 1003 ], [ 35088, "doc/main.xml", 1004 ],
[ 35104, "doc/main.xml", 1005 ], [ 35118, "doc/main.xml", 1006 ],
[ 35120, "doc/main.xml", 1007 ], [ 35133, "doc/main.xml", 1008 ],
[ 35173, "doc/main.xml", 1009 ], [ 35234, "doc/main.xml", 1010 ],
[ 35279, "doc/main.xml", 1011 ], [ 35293, "doc/main.xml", 1012 ],
[ 35339, "doc/main.xml", 1013 ], [ 35407, "doc/main.xml", 1014 ],
[ 35476, "doc/main.xml", 1015 ], [ 35543, "doc/main.xml", 1016 ],
[ 35608, "doc/main.xml", 1017 ], [ 35672, "doc/main.xml", 1018 ],
[ 35725, "doc/main.xml", 1019 ], [ 35741, "doc/main.xml", 1020 ],
[ 35755, "doc/main.xml", 1021 ], [ 35757, "doc/main.xml", 1022 ],
[ 35758, "doc/main.xml", 1023 ], [ 35771, "doc/main.xml", 1024 ],
[ 35821, "doc/main.xml", 1025 ], [ 35865, "doc/main.xml", 1026 ],
[ 35912, "doc/main.xml", 1027 ], [ 35926, "doc/main.xml", 1028 ],
[ 35955, "doc/main.xml", 1029 ], [ 36032, "doc/main.xml", 1030 ],
[ 36100, "doc/main.xml", 1031 ], [ 36168, "doc/main.xml", 1032 ],
[ 36220, "doc/main.xml", 1033 ], [ 36236, "doc/main.xml", 1034 ],
[ 36250, "doc/main.xml", 1035 ], [ 36252, "doc/main.xml", 1036 ],
[ 36263, "doc/main.xml", 1037 ], [ 36264, "doc/main.xml", 1038 ],
[ 36274, "doc/main.xml", 1039 ], [ 36319, "doc/main.xml", 1040 ],
[ 36320, "doc/main.xml", 1041 ], [ 36393, "doc/main.xml", 1042 ],
[ 36454, "doc/main.xml", 1043 ], [ 36455, "doc/main.xml", 1044 ],
[ 36468, "doc/main.xml", 1045 ], [ 36516, "doc/main.xml", 1046 ],
[ 36584, "doc/main.xml", 1047 ], [ 36629, "doc/main.xml", 1048 ],
[ 36643, "doc/main.xml", 1049 ], [ 36714, "doc/main.xml", 1050 ],
[ 36786, "doc/main.xml", 1051 ], [ 36858, "doc/main.xml", 1052 ],
[ 36928, "doc/main.xml", 1053 ], [ 36976, "doc/main.xml", 1054 ],
[ 36992, "doc/main.xml", 1055 ], [ 37006, "doc/main.xml", 1056 ],
[ 37008, "doc/main.xml", 1057 ], [ 37021, "doc/main.xml", 1058 ],
[ 37052, "doc/main.xml", 1059 ], [ 37107, "doc/main.xml", 1060 ],
[ 37146, "doc/main.xml", 1061 ], [ 37160, "doc/main.xml", 1062 ],
[ 37235, "doc/main.xml", 1063 ], [ 37286, "doc/main.xml", 1064 ],
[ 37302, "doc/main.xml", 1065 ], [ 37316, "doc/main.xml", 1066 ],
[ 37318, "doc/main.xml", 1067 ], [ 37331, "doc/main.xml", 1068 ],
[ 37376, "doc/main.xml", 1069 ], [ 37421, "doc/main.xml", 1070 ],
[ 37470, "doc/main.xml", 1071 ], [ 37484, "doc/main.xml", 1072 ],
[ 37558, "doc/main.xml", 1073 ], [ 37632, "doc/main.xml", 1074 ],
[ 37705, "doc/main.xml", 1075 ], [ 37760, "doc/main.xml", 1076 ],
[ 37787, "doc/main.xml", 1077 ], [ 37803, "doc/main.xml", 1078 ],
[ 37817, "doc/main.xml", 1079 ], [ 37819, "doc/main.xml", 1080 ],
[ 37832, "doc/main.xml", 1081 ], [ 37877, "doc/main.xml", 1082 ],
[ 37931, "doc/main.xml", 1083 ], [ 37945, "doc/main.xml", 1084 ],
[ 38010, "doc/main.xml", 1085 ], [ 38022, "doc/main.xml", 1086 ],
[ 38093, "doc/main.xml", 1087 ], [ 38164, "doc/main.xml", 1088 ],
[ 38231, "doc/main.xml", 1089 ], [ 38247, "doc/main.xml", 1090 ],
[ 38261, "doc/main.xml", 1091 ], [ 38262, "doc/main.xml", 1092 ],
[ 38273, "doc/main.xml", 1093 ], [ 38274, "doc/main.xml", 1094 ],
[ 38285, "doc/main.xml", 1095 ], [ 38286, "doc/main.xml", 1096 ],
[ 38310, "doc/main.xml", 1097 ], [ 38367, "doc/main.xml", 1098 ],
[ 38368, "doc/main.xml", 1099 ], [ 38440, "doc/main.xml", 1100 ],
[ 38513, "doc/main.xml", 1101 ], [ 38574, "doc/main.xml", 1102 ],
[ 38575, "doc/main.xml", 1103 ], [ 38645, "doc/main.xml", 1104 ],
[ 38711, "doc/main.xml", 1105 ], [ 38785, "doc/main.xml", 1106 ],
[ 38852, "doc/main.xml", 1107 ], [ 38923, "doc/main.xml", 1108 ],
[ 38984, "doc/main.xml", 1109 ], [ 38985, "doc/main.xml", 1110 ],
[ 39051, "doc/main.xml", 1111 ], [ 39119, "doc/main.xml", 1112 ],
[ 39188, "doc/main.xml", 1113 ], [ 39253, "doc/main.xml", 1114 ],
[ 39326, "doc/main.xml", 1115 ], [ 39391, "doc/main.xml", 1116 ],
[ 39453, "doc/main.xml", 1117 ], [ 39516, "doc/main.xml", 1118 ],
[ 39540, "doc/main.xml", 1119 ], [ 39541, "doc/main.xml", 1120 ],
[ 39612, "doc/main.xml", 1121 ], [ 39681, "doc/main.xml", 1122 ],
[ 39751, "doc/main.xml", 1123 ], [ 39822, "doc/main.xml", 1124 ],
[ 39845, "doc/main.xml", 1125 ], [ 39846, "doc/main.xml", 1126 ],
[ 39856, "doc/main.xml", 1127 ], [ 39925, "doc/main.xml", 1128 ],
[ 39926, "doc/main.xml", 1129 ], [ 39982, "doc/main.xml", 1130 ],
[ 39983, "doc/main.xml", 1131 ], [ 39996, "doc/main.xml", 1132 ],
[ 40042, "doc/main.xml", 1133 ], [ 40091, "doc/main.xml", 1134 ],
[ 40157, "doc/main.xml", 1135 ], [ 40171, "doc/main.xml", 1136 ],
[ 40172, "doc/main.xml", 1137 ], [ 40241, "doc/main.xml", 1138 ],
[ 40242, "doc/main.xml", 1139 ], [ 40255, "doc/main.xml", 1140 ],
[ 40308, "doc/main.xml", 1141 ], [ 40374, "doc/main.xml", 1142 ],
[ 40416, "doc/main.xml", 1143 ], [ 40430, "doc/main.xml", 1144 ],
[ 40497, "doc/main.xml", 1145 ], [ 40521, "doc/main.xml", 1146 ],
[ 40522, "doc/main.xml", 1147 ], [ 40569, "doc/main.xml", 1148 ],
[ 40636, "doc/main.xml", 1149 ], [ 40703, "doc/main.xml", 1150 ],
[ 40782, "doc/main.xml", 1151 ], [ 40798, "doc/main.xml", 1152 ],
[ 40799, "doc/main.xml", 1153 ], [ 40846, "doc/main.xml", 1154 ],
[ 40913, "doc/main.xml", 1155 ], [ 40981, "doc/main.xml", 1156 ],
[ 41060, "doc/main.xml", 1157 ], [ 41076, "doc/main.xml", 1158 ],
[ 41077, "doc/main.xml", 1159 ], [ 41134, "doc/main.xml", 1160 ],
[ 41149, "doc/main.xml", 1161 ], [ 41163, "doc/main.xml", 1162 ],
[ 41164, "doc/main.xml", 1163 ], [ 41232, "doc/main.xml", 1164 ],
[ 41259, "doc/main.xml", 1165 ], [ 41272, "doc/main.xml", 1166 ],
[ 41316, "doc/main.xml", 1167 ], [ 41389, "doc/main.xml", 1168 ],
[ 41411, "doc/main.xml", 1169 ], [ 41458, "doc/main.xml", 1170 ],
[ 41531, "doc/main.xml", 1171 ], [ 41556, "doc/main.xml", 1172 ],
[ 41605, "doc/main.xml", 1173 ], [ 41678, "doc/main.xml", 1174 ],
[ 41712, "doc/main.xml", 1175 ], [ 41769, "doc/main.xml", 1176 ],
[ 41783, "doc/main.xml", 1177 ], [ 41854, "doc/main.xml", 1178 ],
[ 41926, "doc/main.xml", 1179 ], [ 41993, "doc/main.xml", 1180 ],
[ 42064, "doc/main.xml", 1181 ], [ 42142, "doc/main.xml", 1182 ],
[ 42212, "doc/main.xml", 1183 ], [ 42239, "doc/main.xml", 1184 ],
[ 42255, "doc/main.xml", 1185 ], [ 42329, "doc/main.xml", 1186 ],
[ 42387, "doc/main.xml", 1187 ], [ 42412, "doc/main.xml", 1188 ],
[ 42413, "doc/main.xml", 1189 ], [ 42490, "doc/main.xml", 1190 ],
[ 42510, "doc/main.xml", 1191 ], [ 42525, "doc/main.xml", 1192 ],
[ 42539, "doc/main.xml", 1193 ], [ 42540, "doc/main.xml", 1194 ],
[ 42615, "doc/main.xml", 1195 ], [ 42688, "doc/main.xml", 1196 ],
[ 42756, "doc/main.xml", 1197 ], [ 42829, "doc/main.xml", 1198 ],
[ 42901, "doc/main.xml", 1199 ], [ 42940, "doc/main.xml", 1200 ],
[ 42941, "doc/main.xml", 1201 ], [ 42952, "doc/main.xml", 1202 ],
[ 42962, "doc/main.xml", 1203 ], [ 43005, "doc/main.xml", 1204 ],
[ 43006, "doc/main.xml", 1205 ], [ 43070, "doc/main.xml", 1206 ],
[ 43087, "doc/main.xml", 1207 ], [ 43088, "doc/main.xml", 1208 ],
[ 43101, "doc/main.xml", 1209 ], [ 43138, "doc/main.xml", 1210 ],
[ 43185, "doc/main.xml", 1211 ], [ 43230, "doc/main.xml", 1212 ],
[ 43244, "doc/main.xml", 1213 ], [ 43319, "doc/main.xml", 1214 ],
[ 43392, "doc/main.xml", 1215 ], [ 43467, "doc/main.xml", 1216 ],
[ 43540, "doc/main.xml", 1217 ], [ 43593, "doc/main.xml", 1218 ],
[ 43608, "doc/main.xml", 1219 ], [ 43622, "doc/main.xml", 1220 ],
[ 43623, "doc/main.xml", 1221 ], [ 43636, "doc/main.xml", 1222 ],
[ 43675, "doc/main.xml", 1223 ], [ 43731, "doc/main.xml", 1224 ],
[ 43776, "doc/main.xml", 1225 ], [ 43790, "doc/main.xml", 1226 ],
[ 43860, "doc/main.xml", 1227 ], [ 43924, "doc/main.xml", 1228 ],
[ 43988, "doc/main.xml", 1229 ], [ 44060, "doc/main.xml", 1230 ],
[ 44135, "doc/main.xml", 1231 ], [ 44209, "doc/main.xml", 1232 ],
[ 44283, "doc/main.xml", 1233 ], [ 44354, "doc/main.xml", 1234 ],
[ 44429, "doc/main.xml", 1235 ], [ 44485, "doc/main.xml", 1236 ],
[ 44500, "doc/main.xml", 1237 ], [ 44514, "doc/main.xml", 1238 ],
[ 44515, "doc/main.xml", 1239 ], [ 44528, "doc/main.xml", 1240 ],
[ 44561, "doc/main.xml", 1241 ], [ 44617, "doc/main.xml", 1242 ],
[ 44662, "doc/main.xml", 1243 ], [ 44676, "doc/main.xml", 1244 ],
[ 44752, "doc/main.xml", 1245 ], [ 44821, "doc/main.xml", 1246 ],
[ 44891, "doc/main.xml", 1247 ], [ 44958, "doc/main.xml", 1248 ],
[ 45010, "doc/main.xml", 1249 ], [ 45080, "doc/main.xml", 1250 ],
[ 45102, "doc/main.xml", 1251 ], [ 45103, "doc/main.xml", 1252 ],
[ 45171, "doc/main.xml", 1253 ], [ 45240, "doc/main.xml", 1254 ],
[ 45241, "doc/main.xml", 1255 ], [ 45308, "doc/main.xml", 1256 ],
[ 45376, "doc/main.xml", 1257 ], [ 45430, "doc/main.xml", 1258 ],
[ 45487, "doc/main.xml", 1259 ], [ 45502, "doc/main.xml", 1260 ],
[ 45516, "doc/main.xml", 1261 ], [ 45517, "doc/main.xml", 1262 ],
[ 45530, "doc/main.xml", 1263 ], [ 45571, "doc/main.xml", 1264 ],
[ 45629, "doc/main.xml", 1265 ], [ 45683, "doc/main.xml", 1266 ],
[ 45697, "doc/main.xml", 1267 ], [ 45769, "doc/main.xml", 1268 ],
[ 45837, "doc/main.xml", 1269 ], [ 45900, "doc/main.xml", 1270 ],
[ 45966, "doc/main.xml", 1271 ], [ 46039, "doc/main.xml", 1272 ],
[ 46106, "doc/main.xml", 1273 ], [ 46176, "doc/main.xml", 1274 ],
[ 46198, "doc/main.xml", 1275 ], [ 46199, "doc/main.xml", 1276 ],
[ 46267, "doc/main.xml", 1277 ], [ 46336, "doc/main.xml", 1278 ],
[ 46337, "doc/main.xml", 1279 ], [ 46401, "doc/main.xml", 1280 ],
[ 46476, "doc/main.xml", 1281 ], [ 46493, "doc/main.xml", 1282 ],
[ 46508, "doc/main.xml", 1283 ], [ 46522, "doc/main.xml", 1284 ],
[ 46523, "doc/main.xml", 1285 ], [ 46536, "doc/main.xml", 1286 ],
[ 46570, "doc/main.xml", 1287 ], [ 46619, "doc/main.xml", 1288 ],
[ 46633, "doc/main.xml", 1289 ], [ 46703, "doc/main.xml", 1290 ],
[ 46771, "doc/main.xml", 1291 ], [ 46840, "doc/main.xml", 1292 ],
[ 46910, "doc/main.xml", 1293 ], [ 46977, "doc/main.xml", 1294 ],
[ 47030, "doc/main.xml", 1295 ], [ 47045, "doc/main.xml", 1296 ],
[ 47059, "doc/main.xml", 1297 ], [ 47060, "doc/main.xml", 1298 ],
[ 47073, "doc/main.xml", 1299 ], [ 47107, "doc/main.xml", 1300 ],
[ 47153, "doc/main.xml", 1301 ], [ 47198, "doc/main.xml", 1302 ],
[ 47212, "doc/main.xml", 1303 ], [ 47270, "doc/main.xml", 1304 ],
[ 47343, "doc/main.xml", 1305 ], [ 47376, "doc/main.xml", 1306 ],
[ 47400, "doc/main.xml", 1307 ], [ 47452, "doc/main.xml", 1308 ],
[ 47523, "doc/main.xml", 1309 ], [ 47588, "doc/main.xml", 1310 ],
[ 47589, "doc/main.xml", 1311 ], [ 47657, "doc/main.xml", 1312 ],
[ 47726, "doc/main.xml", 1313 ], [ 47727, "doc/main.xml", 1314 ],
[ 47795, "doc/main.xml", 1315 ], [ 47853, "doc/main.xml", 1316 ],
[ 47854, "doc/main.xml", 1317 ], [ 47931, "doc/main.xml", 1318 ],
[ 48006, "doc/main.xml", 1319 ], [ 48077, "doc/main.xml", 1320 ],
[ 48144, "doc/main.xml", 1321 ], [ 48155, "doc/main.xml", 1322 ],
[ 48170, "doc/main.xml", 1323 ], [ 48184, "doc/main.xml", 1324 ],
[ 48185, "doc/main.xml", 1325 ], [ 48198, "doc/main.xml", 1326 ],
[ 48243, "doc/main.xml", 1327 ], [ 48288, "doc/main.xml", 1328 ],
[ 48335, "doc/main.xml", 1329 ], [ 48349, "doc/main.xml", 1330 ],
[ 48424, "doc/main.xml", 1331 ], [ 48496, "doc/main.xml", 1332 ],
[ 48566, "doc/main.xml", 1333 ], [ 48640, "doc/main.xml", 1334 ],
[ 48641, "doc/main.xml", 1335 ], [ 48716, "doc/main.xml", 1336 ],
[ 48786, "doc/main.xml", 1337 ], [ 48858, "doc/main.xml", 1338 ],
[ 48859, "doc/main.xml", 1339 ], [ 48930, "doc/main.xml", 1340 ],
[ 48999, "doc/main.xml", 1341 ], [ 49062, "doc/main.xml", 1342 ],
[ 49063, "doc/main.xml", 1343 ], [ 49134, "doc/main.xml", 1344 ],
[ 49207, "doc/main.xml", 1345 ], [ 49213, "doc/main.xml", 1346 ],
[ 49228, "doc/main.xml", 1347 ], [ 49242, "doc/main.xml", 1348 ],
[ 49243, "doc/main.xml", 1349 ], [ 49256, "doc/main.xml", 1350 ],
[ 49296, "doc/main.xml", 1351 ], [ 49351, "doc/main.xml", 1352 ],
[ 49398, "doc/main.xml", 1353 ], [ 49412, "doc/main.xml", 1354 ],
[ 49477, "doc/main.xml", 1355 ], [ 49543, "doc/main.xml", 1356 ],
[ 49614, "doc/main.xml", 1357 ], [ 49688, "doc/main.xml", 1358 ],
[ 49734, "doc/main.xml", 1359 ], [ 49749, "doc/main.xml", 1360 ],
[ 49763, "doc/main.xml", 1361 ], [ 49764, "doc/main.xml", 1362 ],
[ 49777, "doc/main.xml", 1363 ], [ 49818, "doc/main.xml", 1364 ],
[ 49875, "doc/main.xml", 1365 ], [ 49922, "doc/main.xml", 1366 ],
[ 49936, "doc/main.xml", 1367 ], [ 50003, "doc/main.xml", 1368 ],
[ 50069, "doc/main.xml", 1369 ], [ 50138, "doc/main.xml", 1370 ],
[ 50207, "doc/main.xml", 1371 ], [ 50279, "doc/main.xml", 1372 ],
[ 50294, "doc/main.xml", 1373 ], [ 50308, "doc/main.xml", 1374 ],
[ 50309, "doc/main.xml", 1375 ], [ 50322, "doc/main.xml", 1376 ],
[ 50352, "doc/main.xml", 1377 ], [ 50406, "doc/main.xml", 1378 ],
[ 50454, "doc/main.xml", 1379 ], [ 50468, "doc/main.xml", 1380 ],
[ 50538, "doc/main.xml", 1381 ], [ 50607, "doc/main.xml", 1382 ],
[ 50680, "doc/main.xml", 1383 ], [ 50744, "doc/main.xml", 1384 ],
[ 50815, "doc/main.xml", 1385 ], [ 50887, "doc/main.xml", 1386 ],
[ 50956, "doc/main.xml", 1387 ], [ 50980, "doc/main.xml", 1388 ],
[ 50981, "doc/main.xml", 1389 ], [ 51045, "doc/main.xml", 1390 ],
[ 51113, "doc/main.xml", 1391 ], [ 51132, "doc/main.xml", 1392 ],
[ 51133, "doc/main.xml", 1393 ], [ 51204, "doc/main.xml", 1394 ],
[ 51228, "doc/main.xml", 1395 ], [ 51243, "doc/main.xml", 1396 ],
[ 51257, "doc/main.xml", 1397 ], [ 51258, "doc/main.xml", 1398 ],
[ 51271, "doc/main.xml", 1399 ], [ 51318, "doc/main.xml", 1400 ],
[ 51365, "doc/main.xml", 1401 ], [ 51379, "doc/main.xml", 1402 ],
[ 51451, "doc/main.xml", 1403 ], [ 51521, "doc/main.xml", 1404 ],
[ 51556, "doc/main.xml", 1405 ], [ 51571, "doc/main.xml", 1406 ],
[ 51585, "doc/main.xml", 1407 ], [ 51586, "doc/main.xml", 1408 ],
[ 51599, "doc/main.xml", 1409 ], [ 51639, "doc/main.xml", 1410 ],
[ 51688, "doc/main.xml", 1411 ], [ 51702, "doc/main.xml", 1412 ],
[ 51772, "doc/main.xml", 1413 ], [ 51840, "doc/main.xml", 1414 ],
[ 51892, "doc/main.xml", 1415 ], [ 51945, "doc/main.xml", 1416 ],
[ 51974, "doc/main.xml", 1417 ], [ 52041, "doc/main.xml", 1418 ],
[ 52047, "doc/main.xml", 1419 ], [ 52062, "doc/main.xml", 1420 ],
[ 52076, "doc/main.xml", 1421 ], [ 52077, "doc/main.xml", 1422 ],
[ 52090, "doc/main.xml", 1423 ], [ 52147, "doc/main.xml", 1424 ],
[ 52194, "doc/main.xml", 1425 ], [ 52208, "doc/main.xml", 1426 ],
[ 52275, "doc/main.xml", 1427 ], [ 52346, "doc/main.xml", 1428 ],
[ 52410, "doc/main.xml", 1429 ], [ 52478, "doc/main.xml", 1430 ],
[ 52545, "doc/main.xml", 1431 ], [ 52611, "doc/main.xml", 1432 ],
[ 52675, "doc/main.xml", 1433 ], [ 52742, "doc/main.xml", 1434 ],
[ 52814, "doc/main.xml", 1435 ], [ 52887, "doc/main.xml", 1436 ],
[ 52958, "doc/main.xml", 1437 ], [ 53021, "doc/main.xml", 1438 ],
[ 53036, "doc/main.xml", 1439 ], [ 53050, "doc/main.xml", 1440 ],
[ 53051, "doc/main.xml", 1441 ], [ 53064, "doc/main.xml", 1442 ],
[ 53104, "doc/main.xml", 1443 ], [ 53153, "doc/main.xml", 1444 ],
[ 53167, "doc/main.xml", 1445 ], [ 53237, "doc/main.xml", 1446 ],
[ 53305, "doc/main.xml", 1447 ], [ 53357, "doc/main.xml", 1448 ],
[ 53410, "doc/main.xml", 1449 ], [ 53439, "doc/main.xml", 1450 ],
[ 53509, "doc/main.xml", 1451 ], [ 53577, "doc/main.xml", 1452 ],
[ 53620, "doc/main.xml", 1453 ], [ 53635, "doc/main.xml", 1454 ],
[ 53649, "doc/main.xml", 1455 ], [ 53650, "doc/main.xml", 1456 ],
[ 53663, "doc/main.xml", 1457 ], [ 53706, "doc/main.xml", 1458 ],
[ 53769, "doc/main.xml", 1459 ], [ 53783, "doc/main.xml", 1460 ],
[ 53853, "doc/main.xml", 1461 ], [ 53922, "doc/main.xml", 1462 ],
[ 53989, "doc/main.xml", 1463 ], [ 54058, "doc/main.xml", 1464 ],
[ 54119, "doc/main.xml", 1465 ], [ 54187, "doc/main.xml", 1466 ],
[ 54259, "doc/main.xml", 1467 ], [ 54334, "doc/main.xml", 1468 ],
[ 54350, "doc/main.xml", 1469 ], [ 54365, "doc/main.xml", 1470 ],
[ 54379, "doc/main.xml", 1471 ], [ 54380, "doc/main.xml", 1472 ],
[ 54393, "doc/main.xml", 1473 ], [ 54423, "doc/main.xml", 1474 ],
[ 54470, "doc/main.xml", 1475 ], [ 54518, "doc/main.xml", 1476 ],
[ 54532, "doc/main.xml", 1477 ], [ 54608, "doc/main.xml", 1478 ],
[ 54681, "doc/main.xml", 1479 ], [ 54756, "doc/main.xml", 1480 ],
[ 54831, "doc/main.xml", 1481 ], [ 54899, "doc/main.xml", 1482 ],
[ 54914, "doc/main.xml", 1483 ], [ 54928, "doc/main.xml", 1484 ],
[ 54929, "doc/main.xml", 1485 ], [ 54940, "doc/main.xml", 1486 ],
[ 54941, "doc/main.xml", 1487 ], [ 54951, "doc/main.xml", 1488 ],
[ 54990, "doc/main.xml", 1489 ], [ 54991, "doc/main.xml", 1490 ],
[ 55004, "doc/main.xml", 1491 ], [ 55034, "doc/main.xml", 1492 ],
[ 55096, "doc/main.xml", 1493 ], [ 55128, "doc/main.xml", 1494 ],
[ 55142, "doc/main.xml", 1495 ], [ 55208, "doc/main.xml", 1496 ],
[ 55237, "doc/main.xml", 1497 ], [ 55252, "doc/main.xml", 1498 ],
[ 55266, "doc/main.xml", 1499 ], [ 55267, "doc/main.xml", 1500 ],
[ 55280, "doc/main.xml", 1501 ], [ 55312, "doc/main.xml", 1502 ],
[ 55366, "doc/main.xml", 1503 ], [ 55412, "doc/main.xml", 1504 ],
[ 55426, "doc/main.xml", 1505 ], [ 55502, "doc/main.xml", 1506 ],
[ 55569, "doc/main.xml", 1507 ], [ 55633, "doc/main.xml", 1508 ],
[ 55699, "doc/main.xml", 1509 ], [ 55769, "doc/main.xml", 1510 ],
[ 55793, "doc/main.xml", 1511 ], [ 55808, "doc/main.xml", 1512 ],
[ 55822, "doc/main.xml", 1513 ], [ 55823, "doc/main.xml", 1514 ],
[ 55836, "doc/main.xml", 1515 ], [ 55886, "doc/main.xml", 1516 ],
[ 55933, "doc/main.xml", 1517 ], [ 55947, "doc/main.xml", 1518 ],
[ 56018, "doc/main.xml", 1519 ], [ 56087, "doc/main.xml", 1520 ],
[ 56158, "doc/main.xml", 1521 ], [ 56229, "doc/main.xml", 1522 ],
[ 56303, "doc/main.xml", 1523 ], [ 56378, "doc/main.xml", 1524 ],
[ 56445, "doc/main.xml", 1525 ], [ 56512, "doc/main.xml", 1526 ],
[ 56580, "doc/main.xml", 1527 ], [ 56581, "doc/main.xml", 1528 ],
[ 56657, "doc/main.xml", 1529 ], [ 56729, "doc/main.xml", 1530 ],
[ 56795, "doc/main.xml", 1531 ], [ 56861, "doc/main.xml", 1532 ],
[ 56893, "doc/main.xml", 1533 ], [ 56965, "doc/main.xml", 1534 ],
[ 57037, "doc/main.xml", 1535 ], [ 57105, "doc/main.xml", 1536 ],
[ 57139, "doc/main.xml", 1537 ], [ 57140, "doc/main.xml", 1538 ],
[ 57212, "doc/main.xml", 1539 ], [ 57271, "doc/main.xml", 1540 ],
[ 57286, "doc/main.xml", 1541 ], [ 57300, "doc/main.xml", 1542 ],
[ 57301, "doc/main.xml", 1543 ], [ 57372, "doc/main.xml", 1544 ],
[ 57373, "doc/main.xml", 1545 ], [ 57386, "doc/main.xml", 1546 ],
[ 57425, "doc/main.xml", 1547 ], [ 57495, "doc/main.xml", 1548 ],
[ 57549, "doc/main.xml", 1549 ], [ 57563, "doc/main.xml", 1550 ],
[ 57633, "doc/main.xml", 1551 ], [ 57703, "doc/main.xml", 1552 ],
[ 57752, "doc/main.xml", 1553 ], [ 57767, "doc/main.xml", 1554 ],
[ 57781, "doc/main.xml", 1555 ], [ 57782, "doc/main.xml", 1556 ],
[ 57795, "doc/main.xml", 1557 ], [ 57846, "doc/main.xml", 1558 ],
[ 57891, "doc/main.xml", 1559 ], [ 57962, "doc/main.xml", 1560 ],
[ 57976, "doc/main.xml", 1561 ], [ 58047, "doc/main.xml", 1562 ],
[ 58075, "doc/main.xml", 1563 ], [ 58090, "doc/main.xml", 1564 ],
[ 58104, "doc/main.xml", 1565 ], [ 58105, "doc/main.xml", 1566 ],
[ 58175, "doc/main.xml", 1567 ], [ 58245, "doc/main.xml", 1568 ],
[ 58309, "doc/main.xml", 1569 ], [ 58375, "doc/main.xml", 1570 ],
[ 58403, "doc/main.xml", 1571 ], [ 58404, "doc/main.xml", 1572 ],
[ 58417, "doc/main.xml", 1573 ], [ 58474, "doc/main.xml", 1574 ],
[ 58551, "doc/main.xml", 1575 ], [ 58581, "doc/main.xml", 1576 ],
[ 58595, "doc/main.xml", 1577 ], [ 58664, "doc/main.xml", 1578 ],
[ 58736, "doc/main.xml", 1579 ], [ 58808, "doc/main.xml", 1580 ],
[ 58872, "doc/main.xml", 1581 ], [ 58941, "doc/main.xml", 1582 ],
[ 59011, "doc/main.xml", 1583 ], [ 59081, "doc/main.xml", 1584 ],
[ 59090, "doc/main.xml", 1585 ], [ 59105, "doc/main.xml", 1586 ],
[ 59119, "doc/main.xml", 1587 ], [ 59120, "doc/main.xml", 1588 ],
[ 59133, "doc/main.xml", 1589 ], [ 59168, "doc/main.xml", 1590 ],
[ 59227, "doc/main.xml", 1591 ], [ 59272, "doc/main.xml", 1592 ],
[ 59286, "doc/main.xml", 1593 ], [ 59359, "doc/main.xml", 1594 ],
[ 59430, "doc/main.xml", 1595 ], [ 59500, "doc/main.xml", 1596 ],
[ 59576, "doc/main.xml", 1597 ], [ 59649, "doc/main.xml", 1598 ],
[ 59665, "doc/main.xml", 1599 ], [ 59680, "doc/main.xml", 1600 ],
[ 59694, "doc/main.xml", 1601 ], [ 59695, "doc/main.xml", 1602 ],
[ 59708, "doc/main.xml", 1603 ], [ 59744, "doc/main.xml", 1604 ],
[ 59817, "doc/main.xml", 1605 ], [ 59856, "doc/main.xml", 1606 ],
[ 59870, "doc/main.xml", 1607 ], [ 59942, "doc/main.xml", 1608 ],
[ 60011, "doc/main.xml", 1609 ], [ 60021, "doc/main.xml", 1610 ],
[ 60036, "doc/main.xml", 1611 ], [ 60050, "doc/main.xml", 1612 ],
[ 60061, "doc/main.xml", 1613 ], [ 60062, "doc/main.xml", 1614 ],
[ 60084, "doc/main.xml", 1615 ], [ 60135, "doc/main.xml", 1616 ],
[ 60136, "doc/main.xml", 1617 ], [ 60149, "doc/main.xml", 1618 ],
[ 60193, "doc/main.xml", 1619 ], [ 60255, "doc/main.xml", 1620 ],
[ 60269, "doc/main.xml", 1621 ], [ 60337, "doc/main.xml", 1622 ],
[ 60413, "doc/main.xml", 1623 ], [ 60480, "doc/main.xml", 1624 ],
[ 60551, "doc/main.xml", 1625 ], [ 60622, "doc/main.xml", 1626 ],
[ 60689, "doc/main.xml", 1627 ], [ 60726, "doc/main.xml", 1628 ],
[ 60727, "doc/main.xml", 1629 ], [ 60797, "doc/main.xml", 1630 ],
[ 60842, "doc/main.xml", 1631 ], [ 60857, "doc/main.xml", 1632 ],
[ 60871, "doc/main.xml", 1633 ], [ 60872, "doc/main.xml", 1634 ],
[ 60885, "doc/main.xml", 1635 ], [ 60930, "doc/main.xml", 1636 ],
[ 61007, "doc/main.xml", 1637 ], [ 61036, "doc/main.xml", 1638 ],
[ 61050, "doc/main.xml", 1639 ], [ 61126, "doc/main.xml", 1640 ],
[ 61154, "doc/main.xml", 1641 ], [ 61169, "doc/main.xml", 1642 ],
[ 61183, "doc/main.xml", 1643 ], [ 61184, "doc/main.xml", 1644 ],
[ 61185, "doc/main.xml", 1645 ], [ 61198, "doc/main.xml", 1646 ],
[ 61243, "doc/main.xml", 1647 ], [ 61322, "doc/main.xml", 1648 ],
[ 61379, "doc/main.xml", 1649 ], [ 61393, "doc/main.xml", 1650 ],
[ 61464, "doc/main.xml", 1651 ], [ 61505, "doc/main.xml", 1652 ],
[ 61506, "doc/main.xml", 1653 ], [ 61565, "doc/main.xml", 1654 ],
[ 61612, "doc/main.xml", 1655 ], [ 61682, "doc/main.xml", 1656 ],
[ 61711, "doc/main.xml", 1657 ], [ 61712, "doc/main.xml", 1658 ],
[ 61758, "doc/main.xml", 1659 ], [ 61828, "doc/main.xml", 1660 ],
[ 61898, "doc/main.xml", 1661 ], [ 61970, "doc/main.xml", 1662 ],
[ 62007, "doc/main.xml", 1663 ], [ 62008, "doc/main.xml", 1664 ],
[ 62080, "doc/main.xml", 1665 ], [ 62153, "doc/main.xml", 1666 ],
[ 62230, "doc/main.xml", 1667 ], [ 62305, "doc/main.xml", 1668 ],
[ 62306, "doc/main.xml", 1669 ], [ 62357, "doc/main.xml", 1670 ],
[ 62358, "doc/main.xml", 1671 ], [ 62426, "doc/main.xml", 1672 ],
[ 62494, "doc/main.xml", 1673 ], [ 62562, "doc/main.xml", 1674 ],
[ 62629, "doc/main.xml", 1675 ], [ 62658, "doc/main.xml", 1676 ],
[ 62731, "doc/main.xml", 1677 ], [ 62772, "doc/main.xml", 1678 ],
[ 62773, "doc/main.xml", 1679 ], [ 62835, "doc/main.xml", 1680 ],
[ 62903, "doc/main.xml", 1681 ], [ 62918, "doc/main.xml", 1682 ],
[ 62932, "doc/main.xml", 1683 ], [ 62933, "doc/main.xml", 1684 ],
[ 62946, "doc/main.xml", 1685 ], [ 62986, "doc/main.xml", 1686 ],
[ 63059, "doc/main.xml", 1687 ], [ 63104, "doc/main.xml", 1688 ],
[ 63118, "doc/main.xml", 1689 ], [ 63189, "doc/main.xml", 1690 ],
[ 63230, "doc/main.xml", 1691 ], [ 63231, "doc/main.xml", 1692 ],
[ 63298, "doc/main.xml", 1693 ], [ 63344, "doc/main.xml", 1694 ],
[ 63416, "doc/main.xml", 1695 ], [ 63488, "doc/main.xml", 1696 ],
[ 63566, "doc/main.xml", 1697 ], [ 63643, "doc/main.xml", 1698 ],
[ 63700, "doc/main.xml", 1699 ], [ 63749, "doc/main.xml", 1700 ],
[ 63804, "doc/main.xml", 1701 ], [ 63805, "doc/main.xml", 1702 ],
[ 63852, "doc/main.xml", 1703 ], [ 63853, "doc/main.xml", 1704 ],
[ 63932, "doc/main.xml", 1705 ], [ 64003, "doc/main.xml", 1706 ],
[ 64073, "doc/main.xml", 1707 ], [ 64138, "doc/main.xml", 1708 ],
[ 64163, "doc/main.xml", 1709 ], [ 64237, "doc/main.xml", 1710 ],
[ 64278, "doc/main.xml", 1711 ], [ 64279, "doc/main.xml", 1712 ],
[ 64352, "doc/main.xml", 1713 ], [ 64424, "doc/main.xml", 1714 ],
[ 64480, "doc/main.xml", 1715 ], [ 64495, "doc/main.xml", 1716 ],
[ 64509, "doc/main.xml", 1717 ], [ 64510, "doc/main.xml", 1718 ],
[ 64523, "doc/main.xml", 1719 ], [ 64563, "doc/main.xml", 1720 ],
[ 64642, "doc/main.xml", 1721 ], [ 64687, "doc/main.xml", 1722 ],
[ 64701, "doc/main.xml", 1723 ], [ 64772, "doc/main.xml", 1724 ],
[ 64813, "doc/main.xml", 1725 ], [ 64814, "doc/main.xml", 1726 ],
[ 64881, "doc/main.xml", 1727 ], [ 64944, "doc/main.xml", 1728 ],
[ 65013, "doc/main.xml", 1729 ], [ 65064, "doc/main.xml", 1730 ],
[ 65124, "doc/main.xml", 1731 ], [ 65193, "doc/main.xml", 1732 ],
[ 65226, "doc/main.xml", 1733 ], [ 65303, "doc/main.xml", 1734 ],
[ 65369, "doc/main.xml", 1735 ], [ 65388, "doc/main.xml", 1736 ],
[ 65389, "doc/main.xml", 1737 ], [ 65436, "doc/main.xml", 1738 ],
[ 65437, "doc/main.xml", 1739 ], [ 65510, "doc/main.xml", 1740 ],
[ 65580, "doc/main.xml", 1741 ], [ 65648, "doc/main.xml", 1742 ],
[ 65722, "doc/main.xml", 1743 ], [ 65775, "doc/main.xml", 1744 ],
[ 65849, "doc/main.xml", 1745 ], [ 65890, "doc/main.xml", 1746 ],
[ 65891, "doc/main.xml", 1747 ], [ 65969, "doc/main.xml", 1748 ],
[ 66041, "doc/main.xml", 1749 ], [ 66097, "doc/main.xml", 1750 ],
[ 66112, "doc/main.xml", 1751 ], [ 66126, "doc/main.xml", 1752 ],
[ 66127, "doc/main.xml", 1753 ], [ 66140, "doc/main.xml", 1754 ],
[ 66210, "doc/main.xml", 1755 ], [ 66255, "doc/main.xml", 1756 ],
[ 66269, "doc/main.xml", 1757 ], [ 66344, "doc/main.xml", 1758 ],
[ 66422, "doc/main.xml", 1759 ], [ 66468, "doc/main.xml", 1760 ],
[ 66515, "doc/main.xml", 1761 ], [ 66593, "doc/main.xml", 1762 ],
[ 66670, "doc/main.xml", 1763 ], [ 66717, "doc/main.xml", 1764 ],
[ 66782, "doc/main.xml", 1765 ], [ 66834, "doc/main.xml", 1766 ],
[ 66872, "doc/main.xml", 1767 ], [ 66940, "doc/main.xml", 1768 ],
[ 66996, "doc/main.xml", 1769 ], [ 67001, "doc/main.xml", 1770 ],
[ 67075, "doc/main.xml", 1771 ], [ 67136, "doc/main.xml", 1772 ],
[ 67206, "doc/main.xml", 1773 ], [ 67285, "doc/main.xml", 1774 ],
[ 67356, "doc/main.xml", 1775 ], [ 67409, "doc/main.xml", 1776 ],
[ 67445, "doc/main.xml", 1777 ], [ 67513, "doc/main.xml", 1778 ],
[ 67588, "doc/main.xml", 1779 ], [ 67665, "doc/main.xml", 1780 ],
[ 67685, "doc/main.xml", 1781 ], [ 67690, "doc/main.xml", 1782 ],
[ 67770, "doc/main.xml", 1783 ], [ 67845, "doc/main.xml", 1784 ],
[ 67918, "doc/main.xml", 1785 ], [ 67987, "doc/main.xml", 1786 ],
[ 68000, "doc/main.xml", 1787 ], [ 68015, "doc/main.xml", 1788 ],
[ 68029, "doc/main.xml", 1789 ], [ 68030, "doc/main.xml", 1790 ],
[ 68043, "doc/main.xml", 1791 ], [ 68100, "doc/main.xml", 1792 ],
[ 68145, "doc/main.xml", 1793 ], [ 68159, "doc/main.xml", 1794 ],
[ 68229, "doc/main.xml", 1795 ], [ 68297, "doc/main.xml", 1796 ],
[ 68366, "doc/main.xml", 1797 ], [ 68434, "doc/main.xml", 1798 ],
[ 68498, "doc/main.xml", 1799 ], [ 68513, "doc/main.xml", 1800 ],
[ 68527, "doc/main.xml", 1801 ], [ 68528, "doc/main.xml", 1802 ],
[ 68541, "doc/main.xml", 1803 ], [ 68614, "doc/main.xml", 1804 ],
[ 68642, "doc/main.xml", 1805 ], [ 68687, "doc/main.xml", 1806 ],
[ 68701, "doc/main.xml", 1807 ], [ 68775, "doc/main.xml", 1808 ],
[ 68816, "doc/main.xml", 1809 ], [ 68884, "doc/main.xml", 1810 ],
[ 68955, "doc/main.xml", 1811 ], [ 69029, "doc/main.xml", 1812 ],
[ 69097, "doc/main.xml", 1813 ], [ 69153, "doc/main.xml", 1814 ],
[ 69207, "doc/main.xml", 1815 ], [ 69222, "doc/main.xml", 1816 ],
[ 69236, "doc/main.xml", 1817 ], [ 69237, "doc/main.xml", 1818 ],
[ 69250, "doc/main.xml", 1819 ], [ 69321, "doc/main.xml", 1820 ],
[ 69378, "doc/main.xml", 1821 ], [ 69392, "doc/main.xml", 1822 ],
[ 69460, "doc/main.xml", 1823 ], [ 69483, "doc/main.xml", 1824 ],
[ 69557, "doc/main.xml", 1825 ], [ 69627, "doc/main.xml", 1826 ],
[ 69700, "doc/main.xml", 1827 ], [ 69705, "doc/main.xml", 1828 ],
[ 69773, "doc/main.xml", 1829 ], [ 69833, "doc/main.xml", 1830 ],
[ 69899, "doc/main.xml", 1831 ], [ 69972, "doc/main.xml", 1832 ],
[ 70041, "doc/main.xml", 1833 ], [ 70081, "doc/main.xml", 1834 ],
[ 70161, "doc/main.xml", 1835 ], [ 70205, "doc/main.xml", 1836 ],
[ 70252, "doc/main.xml", 1837 ], [ 70331, "doc/main.xml", 1838 ],
[ 70346, "doc/main.xml", 1839 ], [ 70360, "doc/main.xml", 1840 ],
[ 70361, "doc/main.xml", 1841 ], [ 70374, "doc/main.xml", 1842 ],
[ 70423, "doc/main.xml", 1843 ], [ 70486, "doc/main.xml", 1844 ],
[ 70500, "doc/main.xml", 1845 ], [ 70569, "doc/main.xml", 1846 ],
[ 70637, "doc/main.xml", 1847 ], [ 70707, "doc/main.xml", 1848 ],
[ 70783, "doc/main.xml", 1849 ], [ 70848, "doc/main.xml", 1850 ],
[ 70917, "doc/main.xml", 1851 ], [ 70945, "doc/main.xml", 1852 ],
[ 70946, "doc/main.xml", 1853 ], [ 71018, "doc/main.xml", 1854 ],
[ 71086, "doc/main.xml", 1855 ], [ 71156, "doc/main.xml", 1856 ],
[ 71228, "doc/main.xml", 1857 ], [ 71297, "doc/main.xml", 1858 ],
[ 71368, "doc/main.xml", 1859 ], [ 71409, "doc/main.xml", 1860 ],
[ 71453, "doc/main.xml", 1861 ], [ 71487, "doc/main.xml", 1862 ],
[ 71552, "doc/main.xml", 1863 ], [ 71553, "doc/main.xml", 1864 ],
[ 71621, "doc/main.xml", 1865 ], [ 71696, "doc/main.xml", 1866 ],
[ 71768, "doc/main.xml", 1867 ], [ 71830, "doc/main.xml", 1868 ],
[ 71898, "doc/main.xml", 1869 ], [ 71899, "doc/main.xml", 1870 ],
[ 71966, "doc/main.xml", 1871 ], [ 72040, "doc/main.xml", 1872 ],
[ 72111, "doc/main.xml", 1873 ], [ 72182, "doc/main.xml", 1874 ],
[ 72248, "doc/main.xml", 1875 ], [ 72317, "doc/main.xml", 1876 ],
[ 72332, "doc/main.xml", 1877 ], [ 72346, "doc/main.xml", 1878 ],
[ 72347, "doc/main.xml", 1879 ], [ 72360, "doc/main.xml", 1880 ],
[ 72413, "doc/main.xml", 1881 ], [ 72458, "doc/main.xml", 1882 ],
[ 72472, "doc/main.xml", 1883 ], [ 72534, "doc/main.xml", 1884 ],
[ 72601, "doc/main.xml", 1885 ], [ 72632, "doc/main.xml", 1886 ],
[ 72710, "doc/main.xml", 1887 ], [ 72782, "doc/main.xml", 1888 ],
[ 72853, "doc/main.xml", 1889 ], [ 72923, "doc/main.xml", 1890 ],
[ 72979, "doc/main.xml", 1891 ], [ 73024, "doc/main.xml", 1892 ],
[ 73029, "doc/main.xml", 1893 ], [ 73094, "doc/main.xml", 1894 ],
[ 73156, "doc/main.xml", 1895 ], [ 73195, "doc/main.xml", 1896 ],
[ 73241, "doc/main.xml", 1897 ], [ 73256, "doc/main.xml", 1898 ],
[ 73270, "doc/main.xml", 1899 ], [ 73271, "doc/main.xml", 1900 ],
[ 73284, "doc/main.xml", 1901 ], [ 73346, "doc/main.xml", 1902 ],
[ 73391, "doc/main.xml", 1903 ], [ 73405, "doc/main.xml", 1904 ],
[ 73467, "doc/main.xml", 1905 ], [ 73529, "doc/main.xml", 1906 ],
[ 73565, "doc/main.xml", 1907 ], [ 73635, "doc/main.xml", 1908 ],
[ 73650, "doc/main.xml", 1909 ], [ 73722, "doc/main.xml", 1910 ],
[ 73793, "doc/main.xml", 1911 ], [ 73863, "doc/main.xml", 1912 ],
[ 73936, "doc/main.xml", 1913 ], [ 73992, "doc/main.xml", 1914 ],
[ 74037, "doc/main.xml", 1915 ], [ 74042, "doc/main.xml", 1916 ],
[ 74107, "doc/main.xml", 1917 ], [ 74169, "doc/main.xml", 1918 ],
[ 74208, "doc/main.xml", 1919 ], [ 74254, "doc/main.xml", 1920 ],
[ 74259, "doc/main.xml", 1921 ], [ 74335, "doc/main.xml", 1922 ],
[ 74402, "doc/main.xml", 1923 ], [ 74468, "doc/main.xml", 1924 ],
[ 74491, "doc/main.xml", 1925 ], [ 74506, "doc/main.xml", 1926 ],
[ 74520, "doc/main.xml", 1927 ], [ 74521, "doc/main.xml", 1928 ],
[ 74532, "doc/main.xml", 1929 ], [ 74533, "doc/main.xml", 1930 ],
[ 74544, "doc/main.xml", 1931 ], [ 74545, "doc/main.xml", 1932 ],
[ 74555, "doc/main.xml", 1933 ], [ 74610, "doc/main.xml", 1934 ],
[ 74611, "doc/main.xml", 1935 ], [ 74678, "doc/main.xml", 1936 ],
[ 74752, "doc/main.xml", 1937 ], [ 74825, "doc/main.xml", 1938 ],
[ 74898, "doc/main.xml", 1939 ], [ 74970, "doc/main.xml", 1940 ],
[ 75042, "doc/main.xml", 1941 ], [ 75108, "doc/main.xml", 1942 ],
[ 75136, "doc/main.xml", 1943 ], [ 75137, "doc/main.xml", 1944 ],
[ 75142, "doc/main.xml", 1945 ], [ 75217, "doc/main.xml", 1946 ],
[ 75284, "doc/main.xml", 1947 ], [ 75354, "doc/main.xml", 1948 ],
[ 75415, "doc/main.xml", 1949 ], [ 75478, "doc/main.xml", 1950 ],
[ 75546, "doc/main.xml", 1951 ], [ 75547, "doc/main.xml", 1952 ],
[ 75557, "doc/main.xml", 1953 ], [ 75595, "doc/main.xml", 1954 ],
[ 75596, "doc/main.xml", 1955 ], [ 75661, "doc/main.xml", 1956 ],
[ 75702, "doc/main.xml", 1957 ], [ 75703, "doc/main.xml", 1958 ],
[ 75716, "doc/main.xml", 1959 ], [ 75739, "doc/main.xml", 1960 ],
[ 75812, "doc/main.xml", 1961 ], [ 75826, "doc/main.xml", 1962 ],
[ 75827, "doc/main.xml", 1963 ], [ 75840, "doc/main.xml", 1964 ],
[ 75865, "doc/main.xml", 1965 ], [ 75915, "doc/main.xml", 1966 ],
[ 75975, "doc/main.xml", 1967 ], [ 76027, "doc/main.xml", 1968 ],
[ 76042, "doc/main.xml", 1969 ], [ 76056, "doc/main.xml", 1970 ],
[ 76057, "doc/main.xml", 1971 ], [ 76070, "doc/main.xml", 1972 ],
[ 76090, "doc/main.xml", 1973 ], [ 76165, "doc/main.xml", 1974 ],
[ 76218, "doc/main.xml", 1975 ], [ 76233, "doc/main.xml", 1976 ],
[ 76247, "doc/main.xml", 1977 ], [ 76248, "doc/main.xml", 1978 ],
[ 76319, "doc/main.xml", 1979 ], [ 76359, "doc/main.xml", 1980 ],
[ 76360, "doc/main.xml", 1981 ], [ 76371, "doc/main.xml", 1982 ],
[ 76372, "doc/main.xml", 1983 ], [ 76382, "doc/main.xml", 1984 ],
[ 76429, "doc/main.xml", 1985 ], [ 76430, "doc/main.xml", 1986 ],
[ 76443, "doc/main.xml", 1987 ], [ 76484, "doc/main.xml", 1988 ],
[ 76555, "doc/main.xml", 1989 ], [ 76573, "doc/main.xml", 1990 ],
[ 76641, "doc/main.xml", 1991 ], [ 76712, "doc/main.xml", 1992 ],
[ 76781, "doc/main.xml", 1993 ], [ 76849, "doc/main.xml", 1994 ],
[ 76925, "doc/main.xml", 1995 ], [ 77000, "doc/main.xml", 1996 ],
[ 77072, "doc/main.xml", 1997 ], [ 77140, "doc/main.xml", 1998 ],
[ 77206, "doc/main.xml", 1999 ], [ 77272, "doc/main.xml", 2000 ],
[ 77298, "doc/main.xml", 2001 ], [ 77311, "doc/main.xml", 2002 ],
[ 77382, "doc/main.xml", 2003 ], [ 77453, "doc/main.xml", 2004 ],
[ 77524, "doc/main.xml", 2005 ], [ 77599, "doc/main.xml", 2006 ],
[ 77627, "doc/main.xml", 2007 ], [ 77702, "doc/main.xml", 2008 ],
[ 77772, "doc/main.xml", 2009 ], [ 77828, "doc/main.xml", 2010 ],
[ 77841, "doc/main.xml", 2011 ], [ 77915, "doc/main.xml", 2012 ],
[ 77991, "doc/main.xml", 2013 ], [ 78018, "doc/main.xml", 2014 ],
[ 78037, "doc/main.xml", 2015 ], [ 78051, "doc/main.xml", 2016 ],
[ 78052, "doc/main.xml", 2017 ], [ 78065, "doc/main.xml", 2018 ],
[ 78104, "doc/main.xml", 2019 ], [ 78170, "doc/main.xml", 2020 ],
[ 78188, "doc/main.xml", 2021 ], [ 78256, "doc/main.xml", 2022 ],
[ 78327, "doc/main.xml", 2023 ], [ 78390, "doc/main.xml", 2024 ],
[ 78421, "doc/main.xml", 2025 ], [ 78461, "doc/main.xml", 2026 ],
[ 78543, "doc/main.xml", 2027 ], [ 78608, "doc/main.xml", 2028 ],
[ 78680, "doc/main.xml", 2029 ], [ 78699, "doc/main.xml", 2030 ],
[ 78713, "doc/main.xml", 2031 ], [ 78714, "doc/main.xml", 2032 ],
[ 78727, "doc/main.xml", 2033 ], [ 78773, "doc/main.xml", 2034 ],
[ 78806, "doc/main.xml", 2035 ], [ 78824, "doc/main.xml", 2036 ],
[ 78900, "doc/main.xml", 2037 ], [ 78980, "doc/main.xml", 2038 ],
[ 79050, "doc/main.xml", 2039 ], [ 79119, "doc/main.xml", 2040 ],
[ 79197, "doc/main.xml", 2041 ], [ 79263, "doc/main.xml", 2042 ],
[ 79330, "doc/main.xml", 2043 ], [ 79407, "doc/main.xml", 2044 ],
[ 79424, "doc/main.xml", 2045 ], [ 79443, "doc/main.xml", 2046 ],
[ 79457, "doc/main.xml", 2047 ], [ 79458, "doc/main.xml", 2048 ],
[ 79469, "doc/main.xml", 2049 ], [ 79470, "doc/main.xml", 2050 ],
[ 79501, "doc/main.xml", 2051 ], [ 79553, "doc/main.xml", 2052 ],
[ 79554, "doc/main.xml", 2053 ], [ 79625, "doc/main.xml", 2054 ],
[ 79626, "doc/main.xml", 2055 ], [ 79631, "doc/main.xml", 2056 ],
[ 79700, "doc/main.xml", 2057 ], [ 79769, "doc/main.xml", 2058 ],
[ 79841, "doc/main.xml", 2059 ], [ 79917, "doc/main.xml", 2060 ],
[ 79983, "doc/main.xml", 2061 ], [ 80053, "doc/main.xml", 2062 ],
[ 80123, "doc/main.xml", 2063 ], [ 80202, "doc/main.xml", 2064 ],
[ 80277, "doc/main.xml", 2065 ], [ 80332, "doc/main.xml", 2066 ],
[ 80396, "doc/main.xml", 2067 ], [ 80463, "doc/main.xml", 2068 ],
[ 80519, "doc/main.xml", 2069 ], [ 80520, "doc/main.xml", 2070 ],
[ 80525, "doc/main.xml", 2071 ], [ 80595, "doc/main.xml", 2072 ],
[ 80659, "doc/main.xml", 2073 ], [ 80727, "doc/main.xml", 2074 ],
[ 80800, "doc/main.xml", 2075 ], [ 80867, "doc/main.xml", 2076 ],
[ 80868, "doc/main.xml", 2077 ], [ 80873, "doc/main.xml", 2078 ],
[ 80939, "doc/main.xml", 2079 ], [ 81008, "doc/main.xml", 2080 ],
[ 81020, "doc/main.xml", 2081 ], [ 81021, "doc/main.xml", 2082 ],
[ 81026, "doc/main.xml", 2083 ], [ 81093, "doc/main.xml", 2084 ],
[ 81152, "doc/main.xml", 2085 ], [ 81235, "doc/main.xml", 2086 ],
[ 81302, "doc/main.xml", 2087 ], [ 81372, "doc/main.xml", 2088 ],
[ 81437, "doc/main.xml", 2089 ], [ 81509, "doc/main.xml", 2090 ],
[ 81579, "doc/main.xml", 2091 ], [ 81580, "doc/main.xml", 2092 ],
[ 81585, "doc/main.xml", 2093 ], [ 81650, "doc/main.xml", 2094 ],
[ 81717, "doc/main.xml", 2095 ], [ 81797, "doc/main.xml", 2096 ],
[ 81864, "doc/main.xml", 2097 ], [ 81932, "doc/main.xml", 2098 ],
[ 82006, "doc/main.xml", 2099 ], [ 82078, "doc/main.xml", 2100 ],
[ 82145, "doc/main.xml", 2101 ], [ 82203, "doc/main.xml", 2102 ],
[ 82204, "doc/main.xml", 2103 ], [ 82209, "doc/main.xml", 2104 ],
[ 82288, "doc/main.xml", 2105 ], [ 82358, "doc/main.xml", 2106 ],
[ 82427, "doc/main.xml", 2107 ], [ 82498, "doc/main.xml", 2108 ],
[ 82564, "doc/main.xml", 2109 ], [ 82637, "doc/main.xml", 2110 ],
[ 82708, "doc/main.xml", 2111 ], [ 82766, "doc/main.xml", 2112 ],
[ 82767, "doc/main.xml", 2113 ], [ 82772, "doc/main.xml", 2114 ],
[ 82836, "doc/main.xml", 2115 ], [ 82891, "doc/main.xml", 2116 ],
[ 82920, "doc/main.xml", 2117 ], [ 82921, "doc/main.xml", 2118 ],
[ 82932, "doc/main.xml", 2119 ], [ 82933, "doc/main.xml", 2120 ],
[ 82944, "doc/main.xml", 2121 ], [ 82945, "doc/main.xml", 2122 ],
[ 82955, "doc/main.xml", 2123 ], [ 83000, "doc/main.xml", 2124 ],
[ 83001, "doc/main.xml", 2125 ], [ 83075, "doc/main.xml", 2126 ],
[ 83149, "doc/main.xml", 2127 ], [ 83218, "doc/main.xml", 2128 ],
[ 83295, "doc/main.xml", 2129 ], [ 83368, "doc/main.xml", 2130 ],
[ 83434, "doc/main.xml", 2131 ], [ 83482, "doc/main.xml", 2132 ],
[ 83483, "doc/main.xml", 2133 ], [ 83497, "doc/main.xml", 2134 ],
[ 83538, "doc/main.xml", 2135 ], [ 83539, "doc/main.xml", 2136 ],
[ 83552, "doc/main.xml", 2137 ], [ 83592, "doc/main.xml", 2138 ],
[ 83660, "doc/main.xml", 2139 ], [ 83674, "doc/main.xml", 2140 ],
[ 83732, "doc/main.xml", 2141 ], [ 83795, "doc/main.xml", 2142 ],
[ 83850, "doc/main.xml", 2143 ], [ 83921, "doc/main.xml", 2144 ],
[ 83987, "doc/main.xml", 2145 ], [ 84056, "doc/main.xml", 2146 ],
[ 84132, "doc/main.xml", 2147 ], [ 84204, "doc/main.xml", 2148 ],
[ 84272, "doc/main.xml", 2149 ], [ 84316, "doc/main.xml", 2150 ],
[ 84331, "doc/main.xml", 2151 ], [ 84345, "doc/main.xml", 2152 ],
[ 84356, "doc/main.xml", 2153 ], [ 84357, "doc/main.xml", 2154 ],
[ 84368, "doc/main.xml", 2155 ], [ 84369, "doc/main.xml", 2156 ],
[ 84379, "doc/main.xml", 2157 ], [ 84452, "doc/main.xml", 2158 ],
[ 84453, "doc/main.xml", 2159 ], [ 84533, "doc/main.xml", 2160 ],
[ 84600, "doc/main.xml", 2161 ], [ 84673, "doc/main.xml", 2162 ],
[ 84735, "doc/main.xml", 2163 ], [ 84736, "doc/main.xml", 2164 ],
[ 84746, "doc/main.xml", 2165 ], [ 84800, "doc/main.xml", 2166 ],
[ 84801, "doc/main.xml", 2167 ], [ 84814, "doc/main.xml", 2168 ],
[ 84869, "doc/main.xml", 2169 ], [ 84899, "doc/main.xml", 2170 ],
[ 84913, "doc/main.xml", 2171 ], [ 84985, "doc/main.xml", 2172 ],
[ 85056, "doc/main.xml", 2173 ], [ 85126, "doc/main.xml", 2174 ],
[ 85183, "doc/main.xml", 2175 ], [ 85252, "doc/main.xml", 2176 ],
[ 85309, "doc/main.xml", 2177 ], [ 85378, "doc/main.xml", 2178 ],
[ 85440, "doc/main.xml", 2179 ], [ 85508, "doc/main.xml", 2180 ],
[ 85576, "doc/main.xml", 2181 ], [ 85645, "doc/main.xml", 2182 ],
[ 85715, "doc/main.xml", 2183 ], [ 85777, "doc/main.xml", 2184 ],
[ 85841, "doc/main.xml", 2185 ], [ 85856, "doc/main.xml", 2186 ],
[ 85870, "doc/main.xml", 2187 ], [ 85871, "doc/main.xml", 2188 ],
[ 85884, "doc/main.xml", 2189 ], [ 85957, "doc/main.xml", 2190 ],
[ 85987, "doc/main.xml", 2191 ], [ 86001, "doc/main.xml", 2192 ],
[ 86077, "doc/main.xml", 2193 ], [ 86140, "doc/main.xml", 2194 ],
[ 86210, "doc/main.xml", 2195 ], [ 86274, "doc/main.xml", 2196 ],
[ 86343, "doc/main.xml", 2197 ], [ 86409, "doc/main.xml", 2198 ],
[ 86481, "doc/main.xml", 2199 ], [ 86550, "doc/main.xml", 2200 ],
[ 86622, "doc/main.xml", 2201 ], [ 86691, "doc/main.xml", 2202 ],
[ 86760, "doc/main.xml", 2203 ], [ 86831, "doc/main.xml", 2204 ],
[ 86903, "doc/main.xml", 2205 ], [ 86975, "doc/main.xml", 2206 ],
[ 87047, "doc/main.xml", 2207 ], [ 87119, "doc/main.xml", 2208 ],
[ 87189, "doc/main.xml", 2209 ], [ 87254, "doc/main.xml", 2210 ],
[ 87323, "doc/main.xml", 2211 ], [ 87393, "doc/main.xml", 2212 ],
[ 87461, "doc/main.xml", 2213 ], [ 87523, "doc/main.xml", 2214 ],
[ 87598, "doc/main.xml", 2215 ], [ 87667, "doc/main.xml", 2216 ],
[ 87736, "doc/main.xml", 2217 ], [ 87804, "doc/main.xml", 2218 ],
[ 87874, "doc/main.xml", 2219 ], [ 87940, "doc/main.xml", 2220 ],
[ 88009, "doc/main.xml", 2221 ], [ 88081, "doc/main.xml", 2222 ],
[ 88152, "doc/main.xml", 2223 ], [ 88218, "doc/main.xml", 2224 ],
[ 88289, "doc/main.xml", 2225 ], [ 88355, "doc/main.xml", 2226 ],
[ 88422, "doc/main.xml", 2227 ], [ 88490, "doc/main.xml", 2228 ],
[ 88558, "doc/main.xml", 2229 ], [ 88625, "doc/main.xml", 2230 ],
[ 88693, "doc/main.xml", 2231 ], [ 88757, "doc/main.xml", 2232 ],
[ 88774, "doc/main.xml", 2233 ], [ 88826, "doc/main.xml", 2234 ],
[ 88894, "doc/main.xml", 2235 ], [ 88913, "doc/main.xml", 2236 ],
[ 88982, "doc/main.xml", 2237 ], [ 89050, "doc/main.xml", 2238 ],
[ 89120, "doc/main.xml", 2239 ], [ 89191, "doc/main.xml", 2240 ],
[ 89214, "doc/main.xml", 2241 ], [ 89229, "doc/main.xml", 2242 ],
[ 89243, "doc/main.xml", 2243 ], [ 89244, "doc/main.xml", 2244 ],
[ 89257, "doc/main.xml", 2245 ], [ 89292, "doc/main.xml", 2246 ],
[ 89306, "doc/main.xml", 2247 ], [ 89380, "doc/main.xml", 2248 ],
[ 89451, "doc/main.xml", 2249 ], [ 89519, "doc/main.xml", 2250 ],
[ 89588, "doc/main.xml", 2251 ], [ 89657, "doc/main.xml", 2252 ],
[ 89725, "doc/main.xml", 2253 ], [ 89792, "doc/main.xml", 2254 ],
[ 89858, "doc/main.xml", 2255 ], [ 89889, "doc/main.xml", 2256 ],
[ 89953, "doc/main.xml", 2257 ], [ 89993, "doc/main.xml", 2258 ],
[ 90008, "doc/main.xml", 2259 ], [ 90022, "doc/main.xml", 2260 ],
[ 90023, "doc/main.xml", 2261 ], [ 90036, "doc/main.xml", 2262 ],
[ 90082, "doc/main.xml", 2263 ], [ 90111, "doc/main.xml", 2264 ],
[ 90125, "doc/main.xml", 2265 ], [ 90199, "doc/main.xml", 2266 ],
[ 90232, "doc/main.xml", 2267 ], [ 90247, "doc/main.xml", 2268 ],
[ 90261, "doc/main.xml", 2269 ], [ 90262, "doc/main.xml", 2270 ],
[ 90275, "doc/main.xml", 2271 ], [ 90307, "doc/main.xml", 2272 ],
[ 90371, "doc/main.xml", 2273 ], [ 90401, "doc/main.xml", 2274 ],
[ 90415, "doc/main.xml", 2275 ], [ 90483, "doc/main.xml", 2276 ],
[ 90550, "doc/main.xml", 2277 ], [ 90614, "doc/main.xml", 2278 ],
[ 90678, "doc/main.xml", 2279 ], [ 90740, "doc/main.xml", 2280 ],
[ 90811, "doc/main.xml", 2281 ], [ 90883, "doc/main.xml", 2282 ],
[ 90951, "doc/main.xml", 2283 ], [ 90966, "doc/main.xml", 2284 ],
[ 90980, "doc/main.xml", 2285 ], [ 90981, "doc/main.xml", 2286 ],
[ 91048, "doc/main.xml", 2287 ], [ 91113, "doc/main.xml", 2288 ],
[ 91125, "doc/main.xml", 2289 ], [ 91126, "doc/main.xml", 2290 ],
[ 91139, "doc/main.xml", 2291 ], [ 91177, "doc/main.xml", 2292 ],
[ 91206, "doc/main.xml", 2293 ], [ 91220, "doc/main.xml", 2294 ],
[ 91287, "doc/main.xml", 2295 ], [ 91357, "doc/main.xml", 2296 ],
[ 91425, "doc/main.xml", 2297 ], [ 91488, "doc/main.xml", 2298 ],
[ 91559, "doc/main.xml", 2299 ], [ 91568, "doc/main.xml", 2300 ],
[ 91610, "doc/main.xml", 2301 ], [ 91681, "doc/main.xml", 2302 ],
[ 91756, "doc/main.xml", 2303 ], [ 91791, "doc/main.xml", 2304 ],
[ 91806, "doc/main.xml", 2305 ], [ 91820, "doc/main.xml", 2306 ],
[ 91821, "doc/main.xml", 2307 ], [ 91834, "doc/main.xml", 2308 ],
[ 91867, "doc/main.xml", 2309 ], [ 91896, "doc/main.xml", 2310 ],
[ 91910, "doc/main.xml", 2311 ], [ 91979, "doc/main.xml", 2312 ],
[ 92027, "doc/main.xml", 2313 ], [ 92071, "doc/main.xml", 2314 ],
[ 92110, "doc/main.xml", 2315 ], [ 92119, "doc/main.xml", 2316 ],
[ 92190, "doc/main.xml", 2317 ], [ 92261, "doc/main.xml", 2318 ],
[ 92324, "doc/main.xml", 2319 ], [ 92339, "doc/main.xml", 2320 ],
[ 92353, "doc/main.xml", 2321 ], [ 92354, "doc/main.xml", 2322 ],
[ 92365, "doc/main.xml", 2323 ], [ 92366, "doc/main.xml", 2324 ],
[ 92377, "doc/main.xml", 2325 ], [ 92378, "doc/main.xml", 2326 ],
[ 92388, "doc/main.xml", 2327 ], [ 92434, "doc/main.xml", 2328 ],
[ 92435, "doc/main.xml", 2329 ], [ 92510, "doc/main.xml", 2330 ],
[ 92581, "doc/main.xml", 2331 ], [ 92651, "doc/main.xml", 2332 ],
[ 92723, "doc/main.xml", 2333 ], [ 92791, "doc/main.xml", 2334 ],
[ 92861, "doc/main.xml", 2335 ], [ 92931, "doc/main.xml", 2336 ],
[ 93006, "doc/main.xml", 2337 ], [ 93078, "doc/main.xml", 2338 ],
[ 93150, "doc/main.xml", 2339 ], [ 93226, "doc/main.xml", 2340 ],
[ 93279, "doc/main.xml", 2341 ], [ 93280, "doc/main.xml", 2342 ],
[ 93285, "doc/main.xml", 2343 ], [ 93363, "doc/main.xml", 2344 ],
[ 93434, "doc/main.xml", 2345 ], [ 93503, "doc/main.xml", 2346 ],
[ 93518, "doc/main.xml", 2347 ], [ 93519, "doc/main.xml", 2348 ],
[ 93524, "doc/main.xml", 2349 ], [ 93603, "doc/main.xml", 2350 ],
[ 93673, "doc/main.xml", 2351 ], [ 93742, "doc/main.xml", 2352 ],
[ 93812, "doc/main.xml", 2353 ], [ 93857, "doc/main.xml", 2354 ],
[ 93858, "doc/main.xml", 2355 ], [ 93868, "doc/main.xml", 2356 ],
[ 93903, "doc/main.xml", 2357 ], [ 93904, "doc/main.xml", 2358 ],
[ 93963, "doc/main.xml", 2359 ], [ 93964, "doc/main.xml", 2360 ],
[ 93977, "doc/main.xml", 2361 ], [ 94035, "doc/main.xml", 2362 ],
[ 94093, "doc/main.xml", 2363 ], [ 94107, "doc/main.xml", 2364 ],
[ 94175, "doc/main.xml", 2365 ], [ 94243, "doc/main.xml", 2366 ],
[ 94308, "doc/main.xml", 2367 ], [ 94374, "doc/main.xml", 2368 ],
[ 94443, "doc/main.xml", 2369 ], [ 94513, "doc/main.xml", 2370 ],
[ 94519, "doc/main.xml", 2371 ], [ 94524, "doc/main.xml", 2372 ],
[ 94594, "doc/main.xml", 2373 ], [ 94664, "doc/main.xml", 2374 ],
[ 94735, "doc/main.xml", 2375 ], [ 94804, "doc/main.xml", 2376 ],
[ 94872, "doc/main.xml", 2377 ], [ 94942, "doc/main.xml", 2378 ],
[ 95007, "doc/main.xml", 2379 ], [ 95075, "doc/main.xml", 2380 ],
[ 95146, "doc/main.xml", 2381 ], [ 95208, "doc/main.xml", 2382 ],
[ 95275, "doc/main.xml", 2383 ], [ 95352, "doc/main.xml", 2384 ],
[ 95357, "doc/main.xml", 2385 ], [ 95431, "doc/main.xml", 2386 ],
[ 95511, "doc/main.xml", 2387 ], [ 95587, "doc/main.xml", 2388 ],
[ 95659, "doc/main.xml", 2389 ], [ 95732, "doc/main.xml", 2390 ],
[ 95798, "doc/main.xml", 2391 ], [ 95870, "doc/main.xml", 2392 ],
[ 95942, "doc/main.xml", 2393 ], [ 95981, "doc/main.xml", 2394 ],
[ 95996, "doc/main.xml", 2395 ], [ 96010, "doc/main.xml", 2396 ],
[ 96011, "doc/main.xml", 2397 ], [ 96078, "doc/main.xml", 2398 ],
[ 96087, "doc/main.xml", 2399 ], [ 96088, "doc/main.xml", 2400 ],
[ 96101, "doc/main.xml", 2401 ], [ 96147, "doc/main.xml", 2402 ],
[ 96207, "doc/main.xml", 2403 ], [ 96221, "doc/main.xml", 2404 ],
[ 96292, "doc/main.xml", 2405 ], [ 96360, "doc/main.xml", 2406 ],
[ 96431, "doc/main.xml", 2407 ], [ 96510, "doc/main.xml", 2408 ],
[ 96582, "doc/main.xml", 2409 ], [ 96657, "doc/main.xml", 2410 ],
[ 96731, "doc/main.xml", 2411 ], [ 96790, "doc/main.xml", 2412 ],
[ 96819, "doc/main.xml", 2413 ], [ 96890, "doc/main.xml", 2414 ],
[ 96915, "doc/main.xml", 2415 ], [ 96930, "doc/main.xml", 2416 ],
[ 96944, "doc/main.xml", 2417 ], [ 96945, "doc/main.xml", 2418 ],
[ 96958, "doc/main.xml", 2419 ], [ 96997, "doc/main.xml", 2420 ],
[ 97044, "doc/main.xml", 2421 ], [ 97058, "doc/main.xml", 2422 ],
[ 97129, "doc/main.xml", 2423 ], [ 97176, "doc/main.xml", 2424 ],
[ 97242, "doc/main.xml", 2425 ], [ 97257, "doc/main.xml", 2426 ],
[ 97271, "doc/main.xml", 2427 ], [ 97272, "doc/main.xml", 2428 ],
[ 97285, "doc/main.xml", 2429 ], [ 97324, "doc/main.xml", 2430 ],
[ 97392, "doc/main.xml", 2431 ], [ 97406, "doc/main.xml", 2432 ],
[ 97476, "doc/main.xml", 2433 ], [ 97548, "doc/main.xml", 2434 ],
[ 97616, "doc/main.xml", 2435 ], [ 97684, "doc/main.xml", 2436 ],
[ 97709, "doc/main.xml", 2437 ], [ 97724, "doc/main.xml", 2438 ],
[ 97738, "doc/main.xml", 2439 ], [ 97739, "doc/main.xml", 2440 ],
[ 97752, "doc/main.xml", 2441 ], [ 97798, "doc/main.xml", 2442 ],
[ 97866, "doc/main.xml", 2443 ], [ 97880, "doc/main.xml", 2444 ],
[ 97941, "doc/main.xml", 2445 ], [ 97956, "doc/main.xml", 2446 ],
[ 97970, "doc/main.xml", 2447 ], [ 97971, "doc/main.xml", 2448 ],
[ 97984, "doc/main.xml", 2449 ], [ 98036, "doc/main.xml", 2450 ],
[ 98082, "doc/main.xml", 2451 ], [ 98096, "doc/main.xml", 2452 ],
[ 98167, "doc/main.xml", 2453 ], [ 98235, "doc/main.xml", 2454 ],
[ 98307, "doc/main.xml", 2455 ], [ 98376, "doc/main.xml", 2456 ],
[ 98449, "doc/main.xml", 2457 ], [ 98462, "doc/main.xml", 2458 ],
[ 98532, "doc/main.xml", 2459 ], [ 98580, "doc/main.xml", 2460 ],
[ 98618, "doc/main.xml", 2461 ], [ 98689, "doc/main.xml", 2462 ],
[ 98744, "doc/main.xml", 2463 ], [ 98749, "doc/main.xml", 2464 ],
[ 98825, "doc/main.xml", 2465 ], [ 98897, "doc/main.xml", 2466 ],
[ 98961, "doc/main.xml", 2467 ], [ 98976, "doc/main.xml", 2468 ],
[ 98991, "doc/main.xml", 2469 ], [ 99005, "doc/main.xml", 2470 ],
[ 99006, "doc/main.xml", 2471 ], [ 99019, "doc/main.xml", 2472 ],
[ 99063, "doc/main.xml", 2473 ], [ 99090, "doc/main.xml", 2474 ],
[ 99104, "doc/main.xml", 2475 ], [ 99171, "doc/main.xml", 2476 ],
[ 99235, "doc/main.xml", 2477 ], [ 99296, "doc/main.xml", 2478 ],
[ 99361, "doc/main.xml", 2479 ], [ 99437, "doc/main.xml", 2480 ],
[ 99508, "doc/main.xml", 2481 ], [ 99570, "doc/main.xml", 2482 ],
[ 99585, "doc/main.xml", 2483 ], [ 99599, "doc/main.xml", 2484 ],
[ 99600, "doc/main.xml", 2485 ], [ 99611, "doc/main.xml", 2486 ],
[ 99612, "doc/main.xml", 2487 ], [ 99613, "doc/main.xml", 2488 ],
[ 99623, "doc/main.xml", 2489 ], [ 99673, "doc/main.xml", 2490 ],
[ 99674, "doc/main.xml", 2491 ], [ 99735, "doc/main.xml", 2492 ],
[ 99797, "doc/main.xml", 2493 ], [ 99807, "doc/main.xml", 2494 ],
[ 99808, "doc/main.xml", 2495 ], [ 99821, "doc/main.xml", 2496 ],
[ 99885, "doc/main.xml", 2497 ], [ 99937, "doc/main.xml", 2498 ],
[ 99951, "doc/main.xml", 2499 ], [ 100018, "doc/main.xml", 2500 ],
[ 100085, "doc/main.xml", 2501 ], [ 100150, "doc/main.xml", 2502 ],
[ 100221, "doc/main.xml", 2503 ], [ 100286, "doc/main.xml", 2504 ],
[ 100361, "doc/main.xml", 2505 ], [ 100430, "doc/main.xml", 2506 ],
[ 100497, "doc/main.xml", 2507 ], [ 100565, "doc/main.xml", 2508 ],
[ 100631, "doc/main.xml", 2509 ], [ 100704, "doc/main.xml", 2510 ],
[ 100775, "doc/main.xml", 2511 ], [ 100849, "doc/main.xml", 2512 ],
[ 100884, "doc/main.xml", 2513 ], [ 100889, "doc/main.xml", 2514 ],
[ 100957, "doc/main.xml", 2515 ], [ 101023, "doc/main.xml", 2516 ],
[ 101085, "doc/main.xml", 2517 ], [ 101153, "doc/main.xml", 2518 ],
[ 101223, "doc/main.xml", 2519 ], [ 101287, "doc/main.xml", 2520 ],
[ 101314, "doc/main.xml", 2521 ], [ 101329, "doc/main.xml", 2522 ],
[ 101343, "doc/main.xml", 2523 ], [ 101344, "doc/main.xml", 2524 ],
[ 101357, "doc/main.xml", 2525 ], [ 101408, "doc/main.xml", 2526 ],
[ 101460, "doc/main.xml", 2527 ], [ 101474, "doc/main.xml", 2528 ],
[ 101541, "doc/main.xml", 2529 ], [ 101608, "doc/main.xml", 2530 ],
[ 101673, "doc/main.xml", 2531 ], [ 101744, "doc/main.xml", 2532 ],
[ 101809, "doc/main.xml", 2533 ], [ 101882, "doc/main.xml", 2534 ],
[ 101936, "doc/main.xml", 2535 ], [ 101946, "doc/main.xml", 2536 ],
[ 102006, "doc/main.xml", 2537 ], [ 102082, "doc/main.xml", 2538 ],
[ 102087, "doc/main.xml", 2539 ], [ 102152, "doc/main.xml", 2540 ],
[ 102230, "doc/main.xml", 2541 ], [ 102292, "doc/main.xml", 2542 ],
[ 102360, "doc/main.xml", 2543 ], [ 102430, "doc/main.xml", 2544 ],
[ 102494, "doc/main.xml", 2545 ], [ 102559, "doc/main.xml", 2546 ],
[ 102627, "doc/main.xml", 2547 ], [ 102664, "doc/main.xml", 2548 ],
[ 102679, "doc/main.xml", 2549 ], [ 102693, "doc/main.xml", 2550 ],
[ 102694, "doc/main.xml", 2551 ], [ 102707, "doc/main.xml", 2552 ],
[ 102759, "doc/main.xml", 2553 ], [ 102811, "doc/main.xml", 2554 ],
[ 102825, "doc/main.xml", 2555 ], [ 102893, "doc/main.xml", 2556 ],
[ 102961, "doc/main.xml", 2557 ], [ 103024, "doc/main.xml", 2558 ],
[ 103083, "doc/main.xml", 2559 ], [ 103159, "doc/main.xml", 2560 ],
[ 103232, "doc/main.xml", 2561 ], [ 103303, "doc/main.xml", 2562 ],
[ 103360, "doc/main.xml", 2563 ], [ 103365, "doc/main.xml", 2564 ],
[ 103437, "doc/main.xml", 2565 ], [ 103516, "doc/main.xml", 2566 ],
[ 103590, "doc/main.xml", 2567 ], [ 103653, "doc/main.xml", 2568 ],
[ 103668, "doc/main.xml", 2569 ], [ 103682, "doc/main.xml", 2570 ],
[ 103683, "doc/main.xml", 2571 ], [ 103696, "doc/main.xml", 2572 ],
[ 103758, "doc/main.xml", 2573 ], [ 103800, "doc/main.xml", 2574 ],
[ 103814, "doc/main.xml", 2575 ], [ 103890, "doc/main.xml", 2576 ],
[ 103899, "doc/main.xml", 2577 ], [ 103954, "doc/main.xml", 2578 ],
[ 104033, "doc/main.xml", 2579 ], [ 104104, "doc/main.xml", 2580 ],
[ 104177, "doc/main.xml", 2581 ], [ 104230, "doc/main.xml", 2582 ],
[ 104306, "doc/main.xml", 2583 ], [ 104379, "doc/main.xml", 2584 ],
[ 104450, "doc/main.xml", 2585 ], [ 104512, "doc/main.xml", 2586 ],
[ 104517, "doc/main.xml", 2587 ], [ 104572, "doc/main.xml", 2588 ],
[ 104637, "doc/main.xml", 2589 ], [ 104691, "doc/main.xml", 2590 ],
[ 104706, "doc/main.xml", 2591 ], [ 104720, "doc/main.xml", 2592 ],
[ 104721, "doc/main.xml", 2593 ], [ 104781, "doc/main.xml", 2594 ],
[ 104820, "doc/main.xml", 2595 ], [ 104831, "doc/main.xml", 2596 ],
[ 104832, "doc/main.xml", 2597 ], [ 104842, "doc/main.xml", 2598 ],
[ 104874, "doc/main.xml", 2599 ], [ 104875, "doc/main.xml", 2600 ],
[ 104939, "doc/main.xml", 2601 ], [ 105004, "doc/main.xml", 2602 ],
[ 105070, "doc/main.xml", 2603 ], [ 105129, "doc/main.xml", 2604 ],
[ 105189, "doc/main.xml", 2605 ], [ 105202, "doc/main.xml", 2606 ],
[ 105203, "doc/main.xml", 2607 ], [ 105209, "doc/main.xml", 2608 ],
[ 105265, "doc/main.xml", 2609 ], [ 105278, "doc/main.xml", 2610 ],
[ 105328, "doc/main.xml", 2611 ], [ 105401, "doc/main.xml", 2612 ],
[ 105415, "doc/main.xml", 2613 ], [ 105477, "doc/main.xml", 2614 ],
[ 105551, "doc/main.xml", 2615 ], [ 105621, "doc/main.xml", 2616 ],
[ 105692, "doc/main.xml", 2617 ], [ 105762, "doc/main.xml", 2618 ],
[ 105828, "doc/main.xml", 2619 ], [ 105866, "doc/main.xml", 2620 ],
[ 105881, "doc/main.xml", 2621 ], [ 105895, "doc/main.xml", 2622 ],
[ 105896, "doc/main.xml", 2623 ], [ 105950, "doc/main.xml", 2624 ],
[ 105951, "doc/main.xml", 2625 ], [ 105964, "doc/main.xml", 2626 ],
[ 106004, "doc/main.xml", 2627 ], [ 106033, "doc/main.xml", 2628 ],
[ 106047, "doc/main.xml", 2629 ], [ 106117, "doc/main.xml", 2630 ],
[ 106182, "doc/main.xml", 2631 ], [ 106250, "doc/main.xml", 2632 ],
[ 106318, "doc/main.xml", 2633 ], [ 106383, "doc/main.xml", 2634 ],
[ 106434, "doc/main.xml", 2635 ], [ 106439, "doc/main.xml", 2636 ],
[ 106508, "doc/main.xml", 2637 ], [ 106564, "doc/main.xml", 2638 ],
[ 106632, "doc/main.xml", 2639 ], [ 106698, "doc/main.xml", 2640 ],
[ 106740, "doc/main.xml", 2641 ], [ 106745, "doc/main.xml", 2642 ],
[ 106807, "doc/main.xml", 2643 ], [ 106873, "doc/main.xml", 2644 ],
[ 106941, "doc/main.xml", 2645 ], [ 107008, "doc/main.xml", 2646 ],
[ 107073, "doc/main.xml", 2647 ], [ 107144, "doc/main.xml", 2648 ],
[ 107208, "doc/main.xml", 2649 ], [ 107273, "doc/main.xml", 2650 ],
[ 107325, "doc/main.xml", 2651 ], [ 107330, "doc/main.xml", 2652 ],
[ 107394, "doc/main.xml", 2653 ], [ 107406, "doc/main.xml", 2654 ],
[ 107421, "doc/main.xml", 2655 ], [ 107435, "doc/main.xml", 2656 ],
[ 107436, "doc/main.xml", 2657 ], [ 107449, "doc/main.xml", 2658 ],
[ 107492, "doc/main.xml", 2659 ], [ 107521, "doc/main.xml", 2660 ],
[ 107535, "doc/main.xml", 2661 ], [ 107605, "doc/main.xml", 2662 ],
[ 107678, "doc/main.xml", 2663 ], [ 107738, "doc/main.xml", 2664 ],
[ 107753, "doc/main.xml", 2665 ], [ 107767, "doc/main.xml", 2666 ],
[ 107768, "doc/main.xml", 2667 ], [ 107781, "doc/main.xml", 2668 ],
[ 107826, "doc/main.xml", 2669 ], [ 107875, "doc/main.xml", 2670 ],
[ 107889, "doc/main.xml", 2671 ], [ 107954, "doc/main.xml", 2672 ],
[ 108019, "doc/main.xml", 2673 ], [ 108096, "doc/main.xml", 2674 ],
[ 108156, "doc/main.xml", 2675 ], [ 108217, "doc/main.xml", 2676 ],
[ 108284, "doc/main.xml", 2677 ], [ 108299, "doc/main.xml", 2678 ],
[ 108313, "doc/main.xml", 2679 ], [ 108314, "doc/main.xml", 2680 ],
[ 108327, "doc/main.xml", 2681 ], [ 108381, "doc/main.xml", 2682 ],
[ 108410, "doc/main.xml", 2683 ], [ 108424, "doc/main.xml", 2684 ],
[ 108494, "doc/main.xml", 2685 ], [ 108563, "doc/main.xml", 2686 ],
[ 108576, "doc/main.xml", 2687 ], [ 108630, "doc/main.xml", 2688 ],
[ 108707, "doc/main.xml", 2689 ], [ 108776, "doc/main.xml", 2690 ],
[ 108782, "doc/main.xml", 2691 ], [ 108797, "doc/main.xml", 2692 ],
[ 108811, "doc/main.xml", 2693 ], [ 108812, "doc/main.xml", 2694 ],
[ 108825, "doc/main.xml", 2695 ], [ 108879, "doc/main.xml", 2696 ],
[ 108908, "doc/main.xml", 2697 ], [ 108922, "doc/main.xml", 2698 ],
[ 108987, "doc/main.xml", 2699 ], [ 109055, "doc/main.xml", 2700 ],
[ 109118, "doc/main.xml", 2701 ], [ 109179, "doc/main.xml", 2702 ],
[ 109200, "doc/main.xml", 2703 ], [ 109205, "doc/main.xml", 2704 ],
[ 109259, "doc/main.xml", 2705 ], [ 109337, "doc/main.xml", 2706 ],
[ 109416, "doc/main.xml", 2707 ], [ 109422, "doc/main.xml", 2708 ],
[ 109437, "doc/main.xml", 2709 ], [ 109451, "doc/main.xml", 2710 ],
[ 109452, "doc/main.xml", 2711 ], [ 109463, "doc/main.xml", 2712 ],
[ 109464, "doc/main.xml", 2713 ], [ 109475, "doc/main.xml", 2714 ],
[ 109476, "doc/main.xml", 2715 ], [ 109486, "doc/main.xml", 2716 ],
[ 109526, "doc/main.xml", 2717 ], [ 109527, "doc/main.xml", 2718 ],
[ 109541, "doc/main.xml", 2719 ], [ 109581, "doc/main.xml", 2720 ],
[ 109582, "doc/main.xml", 2721 ], [ 109654, "doc/main.xml", 2722 ],
[ 109717, "doc/main.xml", 2723 ], [ 109786, "doc/main.xml", 2724 ],
[ 109843, "doc/main.xml", 2725 ], [ 109909, "doc/main.xml", 2726 ],
[ 109977, "doc/main.xml", 2727 ], [ 110037, "doc/main.xml", 2728 ],
[ 110107, "doc/main.xml", 2729 ], [ 110176, "doc/main.xml", 2730 ],
[ 110249, "doc/main.xml", 2731 ], [ 110317, "doc/main.xml", 2732 ],
[ 110381, "doc/main.xml", 2733 ], [ 110441, "doc/main.xml", 2734 ],
[ 110512, "doc/main.xml", 2735 ], [ 110582, "doc/main.xml", 2736 ],
[ 110652, "doc/main.xml", 2737 ], [ 110653, "doc/main.xml", 2738 ],
[ 110664, "doc/main.xml", 2739 ], [ 110665, "doc/main.xml", 2740 ],
[ 110675, "doc/main.xml", 2741 ], [ 110738, "doc/main.xml", 2742 ],
[ 110739, "doc/main.xml", 2743 ], [ 110804, "doc/main.xml", 2744 ],
[ 110860, "doc/main.xml", 2745 ], [ 110873, "doc/main.xml", 2746 ],
[ 110901, "doc/main.xml", 2747 ], [ 110952, "doc/main.xml", 2748 ],
[ 110966, "doc/main.xml", 2749 ], [ 111042, "doc/main.xml", 2750 ],
[ 111059, "doc/main.xml", 2751 ], [ 111074, "doc/main.xml", 2752 ],
[ 111088, "doc/main.xml", 2753 ], [ 111089, "doc/main.xml", 2754 ],
[ 111102, "doc/main.xml", 2755 ], [ 111145, "doc/main.xml", 2756 ],
[ 111185, "doc/main.xml", 2757 ], [ 111199, "doc/main.xml", 2758 ],
[ 111274, "doc/main.xml", 2759 ], [ 111338, "doc/main.xml", 2760 ],
[ 111403, "doc/main.xml", 2761 ], [ 111465, "doc/main.xml", 2762 ],
[ 111536, "doc/main.xml", 2763 ], [ 111604, "doc/main.xml", 2764 ],
[ 111672, "doc/main.xml", 2765 ], [ 111746, "doc/main.xml", 2766 ],
[ 111784, "doc/main.xml", 2767 ], [ 111847, "doc/main.xml", 2768 ],
[ 111924, "doc/main.xml", 2769 ], [ 111994, "doc/main.xml", 2770 ],
[ 112054, "doc/main.xml", 2771 ], [ 112121, "doc/main.xml", 2772 ],
[ 112196, "doc/main.xml", 2773 ], [ 112235, "doc/main.xml", 2774 ],
[ 112282, "doc/main.xml", 2775 ], [ 112297, "doc/main.xml", 2776 ],
[ 112311, "doc/main.xml", 2777 ], [ 112312, "doc/main.xml", 2778 ],
[ 112325, "doc/main.xml", 2779 ], [ 112368, "doc/main.xml", 2780 ],
[ 112397, "doc/main.xml", 2781 ], [ 112411, "doc/main.xml", 2782 ],
[ 112479, "doc/main.xml", 2783 ], [ 112550, "doc/main.xml", 2784 ],
[ 112618, "doc/main.xml", 2785 ], [ 112671, "doc/main.xml", 2786 ],
[ 112686, "doc/main.xml", 2787 ], [ 112700, "doc/main.xml", 2788 ],
[ 112701, "doc/main.xml", 2789 ], [ 112714, "doc/main.xml", 2790 ],
[ 112769, "doc/main.xml", 2791 ], [ 112828, "doc/main.xml", 2792 ],
[ 112842, "doc/main.xml", 2793 ], [ 112903, "doc/main.xml", 2794 ],
[ 112972, "doc/main.xml", 2795 ], [ 113032, "doc/main.xml", 2796 ],
[ 113088, "doc/main.xml", 2797 ], [ 113096, "doc/main.xml", 2798 ],
[ 113161, "doc/main.xml", 2799 ], [ 113225, "doc/main.xml", 2800 ],
[ 113290, "doc/main.xml", 2801 ], [ 113356, "doc/main.xml", 2802 ],
[ 113404, "doc/main.xml", 2803 ], [ 113419, "doc/main.xml", 2804 ],
[ 113433, "doc/main.xml", 2805 ], [ 113434, "doc/main.xml", 2806 ],
[ 113447, "doc/main.xml", 2807 ], [ 113492, "doc/main.xml", 2808 ],
[ 113521, "doc/main.xml", 2809 ], [ 113535, "doc/main.xml", 2810 ],
[ 113596, "doc/main.xml", 2811 ], [ 113659, "doc/main.xml", 2812 ],
[ 113699, "doc/main.xml", 2813 ], [ 113714, "doc/main.xml", 2814 ],
[ 113728, "doc/main.xml", 2815 ], [ 113729, "doc/main.xml", 2816 ],
[ 113742, "doc/main.xml", 2817 ], [ 113774, "doc/main.xml", 2818 ],
[ 113803, "doc/main.xml", 2819 ], [ 113817, "doc/main.xml", 2820 ],
[ 113878, "doc/main.xml", 2821 ], [ 113932, "doc/main.xml", 2822 ],
[ 113992, "doc/main.xml", 2823 ], [ 114054, "doc/main.xml", 2824 ],
[ 114125, "doc/main.xml", 2825 ], [ 114140, "doc/main.xml", 2826 ],
[ 114154, "doc/main.xml", 2827 ], [ 114155, "doc/main.xml", 2828 ],
[ 114168, "doc/main.xml", 2829 ], [ 114211, "doc/main.xml", 2830 ],
[ 114265, "doc/main.xml", 2831 ], [ 114279, "doc/main.xml", 2832 ],
[ 114340, "doc/main.xml", 2833 ], [ 114402, "doc/main.xml", 2834 ],
[ 114466, "doc/main.xml", 2835 ], [ 114536, "doc/main.xml", 2836 ],
[ 114598, "doc/main.xml", 2837 ], [ 114666, "doc/main.xml", 2838 ],
[ 114736, "doc/main.xml", 2839 ], [ 114806, "doc/main.xml", 2840 ],
[ 114875, "doc/main.xml", 2841 ], [ 114946, "doc/main.xml", 2842 ],
[ 115017, "doc/main.xml", 2843 ], [ 115025, "doc/main.xml", 2844 ],
[ 115040, "doc/main.xml", 2845 ], [ 115054, "doc/main.xml", 2846 ],
[ 115055, "doc/main.xml", 2847 ], [ 115068, "doc/main.xml", 2848 ],
[ 115112, "doc/main.xml", 2849 ], [ 115160, "doc/main.xml", 2850 ],
[ 115174, "doc/main.xml", 2851 ], [ 115239, "doc/main.xml", 2852 ],
[ 115303, "doc/main.xml", 2853 ], [ 115368, "doc/main.xml", 2854 ],
[ 115434, "doc/main.xml", 2855 ], [ 115499, "doc/main.xml", 2856 ],
[ 115567, "doc/main.xml", 2857 ], [ 115624, "doc/main.xml", 2858 ],
[ 115695, "doc/main.xml", 2859 ], [ 115710, "doc/main.xml", 2860 ],
[ 115724, "doc/main.xml", 2861 ], [ 115725, "doc/main.xml", 2862 ],
[ 115738, "doc/main.xml", 2863 ], [ 115774, "doc/main.xml", 2864 ],
[ 115821, "doc/main.xml", 2865 ], [ 115835, "doc/main.xml", 2866 ],
[ 115896, "doc/main.xml", 2867 ], [ 115926, "doc/main.xml", 2868 ],
[ 115996, "doc/main.xml", 2869 ], [ 116068, "doc/main.xml", 2870 ],
[ 116141, "doc/main.xml", 2871 ], [ 116210, "doc/main.xml", 2872 ],
[ 116280, "doc/main.xml", 2873 ], [ 116344, "doc/main.xml", 2874 ],
[ 116407, "doc/main.xml", 2875 ], [ 116474, "doc/main.xml", 2876 ],
[ 116543, "doc/main.xml", 2877 ], [ 116571, "doc/main.xml", 2878 ],
[ 116586, "doc/main.xml", 2879 ], [ 116600, "doc/main.xml", 2880 ],
[ 116601, "doc/main.xml", 2881 ], [ 116614, "doc/main.xml", 2882 ],
[ 116666, "doc/main.xml", 2883 ], [ 116722, "doc/main.xml", 2884 ],
[ 116736, "doc/main.xml", 2885 ], [ 116797, "doc/main.xml", 2886 ],
[ 116863, "doc/main.xml", 2887 ], [ 116933, "doc/main.xml", 2888 ],
[ 117002, "doc/main.xml", 2889 ], [ 117071, "doc/main.xml", 2890 ],
[ 117150, "doc/main.xml", 2891 ], [ 117194, "doc/main.xml", 2892 ],
[ 117251, "doc/main.xml", 2893 ], [ 117310, "doc/main.xml", 2894 ],
[ 117325, "doc/main.xml", 2895 ], [ 117339, "doc/main.xml", 2896 ],
[ 117340, "doc/main.xml", 2897 ], [ 117353, "doc/main.xml", 2898 ],
[ 117388, "doc/main.xml", 2899 ], [ 117416, "doc/main.xml", 2900 ],
[ 117430, "doc/main.xml", 2901 ], [ 117491, "doc/main.xml", 2902 ],
[ 117559, "doc/main.xml", 2903 ], [ 117625, "doc/main.xml", 2904 ],
[ 117694, "doc/main.xml", 2905 ], [ 117755, "doc/main.xml", 2906 ],
[ 117770, "doc/main.xml", 2907 ], [ 117784, "doc/main.xml", 2908 ],
[ 117785, "doc/main.xml", 2909 ], [ 117798, "doc/main.xml", 2910 ],
[ 117832, "doc/main.xml", 2911 ], [ 117860, "doc/main.xml", 2912 ],
[ 117874, "doc/main.xml", 2913 ], [ 117935, "doc/main.xml", 2914 ],
[ 118002, "doc/main.xml", 2915 ], [ 118070, "doc/main.xml", 2916 ],
[ 118144, "doc/main.xml", 2917 ], [ 118205, "doc/main.xml", 2918 ],
[ 118220, "doc/main.xml", 2919 ], [ 118234, "doc/main.xml", 2920 ],
[ 118235, "doc/main.xml", 2921 ], [ 118248, "doc/main.xml", 2922 ],
[ 118285, "doc/main.xml", 2923 ], [ 118349, "doc/main.xml", 2924 ],
[ 118363, "doc/main.xml", 2925 ], [ 118424, "doc/main.xml", 2926 ],
[ 118493, "doc/main.xml", 2927 ], [ 118561, "doc/main.xml", 2928 ],
[ 118632, "doc/main.xml", 2929 ], [ 118701, "doc/main.xml", 2930 ],
[ 118767, "doc/main.xml", 2931 ], [ 118841, "doc/main.xml", 2932 ],
[ 118899, "doc/main.xml", 2933 ], [ 118961, "doc/main.xml", 2934 ],
[ 119026, "doc/main.xml", 2935 ], [ 119068, "doc/main.xml", 2936 ],
[ 119111, "doc/main.xml", 2937 ], [ 119173, "doc/main.xml", 2938 ],
[ 119236, "doc/main.xml", 2939 ], [ 119281, "doc/main.xml", 2940 ],
[ 119331, "doc/main.xml", 2941 ], [ 119346, "doc/main.xml", 2942 ],
[ 119360, "doc/main.xml", 2943 ], [ 119361, "doc/main.xml", 2944 ],
[ 119372, "doc/main.xml", 2945 ], [ 119373, "doc/main.xml", 2946 ],
[ 119383, "doc/main.xml", 2947 ], [ 119417, "doc/main.xml", 2948 ],
[ 119418, "doc/main.xml", 2949 ], [ 119462, "doc/main.xml", 2950 ],
[ 119492, "doc/main.xml", 2951 ], [ 119493, "doc/main.xml", 2952 ],
[ 119504, "doc/main.xml", 2953 ], [ 119505, "doc/main.xml", 2954 ],
[ 119516, "doc/main.xml", 2955 ], [ 119517, "doc/main.xml", 2956 ],
[ 119527, "doc/main.xml", 2957 ], [ 119564, "doc/main.xml", 2958 ],
[ 119565, "doc/main.xml", 2959 ], [ 119635, "doc/main.xml", 2960 ],
[ 119695, "doc/main.xml", 2961 ], [ 119766, "doc/main.xml", 2962 ],
[ 119799, "doc/main.xml", 2963 ], [ 119800, "doc/main.xml", 2964 ],
[ 119837, "doc/main.xml", 2965 ], [ 119907, "doc/main.xml", 2966 ],
[ 119908, "doc/main.xml", 2967 ], [ 119975, "doc/main.xml", 2968 ],
[ 120033, "doc/main.xml", 2969 ], [ 120034, "doc/main.xml", 2970 ],
[ 120039, "doc/main.xml", 2971 ], [ 120112, "doc/main.xml", 2972 ],
[ 120182, "doc/main.xml", 2973 ], [ 120239, "doc/main.xml", 2974 ],
[ 120265, "doc/main.xml", 2975 ], [ 120295, "doc/main.xml", 2976 ],
[ 120296, "doc/main.xml", 2977 ], [ 120306, "doc/main.xml", 2978 ],
[ 120352, "doc/main.xml", 2979 ], [ 120353, "doc/main.xml", 2980 ],
[ 120427, "doc/main.xml", 2981 ], [ 120453, "doc/main.xml", 2982 ],
[ 120454, "doc/main.xml", 2983 ], [ 120460, "doc/main.xml", 2984 ],
[ 120491, "doc/main.xml", 2985 ], [ 120529, "doc/main.xml", 2986 ],
[ 120563, "doc/main.xml", 2987 ], [ 120566, "doc/main.xml", 2988 ],
[ 120604, "doc/main.xml", 2989 ], [ 120607, "doc/main.xml", 2990 ],
[ 120631, "doc/main.xml", 2991 ], [ 120633, "doc/main.xml", 2992 ],
[ 120651, "doc/main.xml", 2993 ], [ 120656, "doc/main.xml", 2994 ],
[ 120674, "doc/main.xml", 2995 ], [ 120679, "doc/main.xml", 2996 ],
[ 120686, "doc/main.xml", 2997 ], [ 120687, "doc/main.xml", 2998 ],
[ 120757, "doc/main.xml", 2999 ], [ 120826, "doc/main.xml", 3000 ],
[ 120891, "doc/main.xml", 3001 ], [ 120963, "doc/main.xml", 3002 ],
[ 121037, "doc/main.xml", 3003 ], [ 121073, "doc/main.xml", 3004 ],
[ 121074, "doc/main.xml", 3005 ], [ 121142, "doc/main.xml", 3006 ],
[ 121143, "doc/main.xml", 3007 ], [ 121149, "doc/main.xml", 3008 ],
[ 121180, "doc/main.xml", 3009 ], [ 121225, "doc/main.xml", 3010 ],
[ 121245, "doc/main.xml", 3011 ], [ 121258, "doc/main.xml", 3012 ],
[ 121279, "doc/main.xml", 3013 ], [ 121285, "doc/main.xml", 3014 ],
[ 121306, "doc/main.xml", 3015 ], [ 121324, "doc/main.xml", 3016 ],
[ 121345, "doc/main.xml", 3017 ], [ 121353, "doc/main.xml", 3018 ],
[ 121374, "doc/main.xml", 3019 ], [ 121377, "doc/main.xml", 3020 ],
[ 121395, "doc/main.xml", 3021 ], [ 121400, "doc/main.xml", 3022 ],
[ 121407, "doc/main.xml", 3023 ], [ 121408, "doc/main.xml", 3024 ],
[ 121479, "doc/main.xml", 3025 ], [ 121543, "doc/main.xml", 3026 ],
[ 121611, "doc/main.xml", 3027 ], [ 121657, "doc/main.xml", 3028 ],
[ 121668, "doc/main.xml", 3029 ], [ 121669, "doc/main.xml", 3030 ],
[ 121679, "doc/main.xml", 3031 ], [ 121747, "doc/main.xml", 3032 ],
[ 121748, "doc/main.xml", 3033 ], [ 121825, "doc/main.xml", 3034 ],
[ 121896, "doc/main.xml", 3035 ], [ 121919, "doc/main.xml", 3036 ],
[ 121920, "doc/main.xml", 3037 ], [ 121926, "doc/main.xml", 3038 ],
[ 121990, "doc/main.xml", 3039 ], [ 122006, "doc/main.xml", 3040 ],
[ 122012, "doc/main.xml", 3041 ], [ 122070, "doc/main.xml", 3042 ],
[ 122075, "doc/main.xml", 3043 ], [ 122111, "doc/main.xml", 3044 ],
[ 122129, "doc/main.xml", 3045 ], [ 122135, "doc/main.xml", 3046 ],
[ 122198, "doc/main.xml", 3047 ], [ 122209, "doc/main.xml", 3048 ],
[ 122214, "doc/main.xml", 3049 ], [ 122221, "doc/main.xml", 3050 ],
[ 122222, "doc/main.xml", 3051 ], [ 122296, "doc/main.xml", 3052 ],
[ 122312, "doc/main.xml", 3053 ], [ 122323, "doc/main.xml", 3054 ],
[ 122324, "doc/main.xml", 3055 ], [ 122334, "doc/main.xml", 3056 ],
[ 122410, "doc/main.xml", 3057 ], [ 122411, "doc/main.xml", 3058 ],
[ 122479, "doc/main.xml", 3059 ], [ 122549, "doc/main.xml", 3060 ],
[ 122605, "doc/main.xml", 3061 ], [ 122606, "doc/main.xml", 3062 ],
[ 122612, "doc/main.xml", 3063 ], [ 122673, "doc/main.xml", 3064 ],
[ 122711, "doc/main.xml", 3065 ], [ 122746, "doc/main.xml", 3066 ],
[ 122749, "doc/main.xml", 3067 ], [ 122800, "doc/main.xml", 3068 ],
[ 122805, "doc/main.xml", 3069 ], [ 122823, "doc/main.xml", 3070 ],
[ 122828, "doc/main.xml", 3071 ], [ 122889, "doc/main.xml", 3072 ],
[ 122934, "doc/main.xml", 3073 ], [ 122955, "doc/main.xml", 3074 ],
[ 122972, "doc/main.xml", 3075 ], [ 123010, "doc/main.xml", 3076 ],
[ 123015, "doc/main.xml", 3077 ], [ 123053, "doc/main.xml", 3078 ],
[ 123056, "doc/main.xml", 3079 ], [ 123074, "doc/main.xml", 3080 ],
[ 123079, "doc/main.xml", 3081 ], [ 123086, "doc/main.xml", 3082 ],
[ 123097, "doc/main.xml", 3083 ], [ 123098, "doc/main.xml", 3084 ],
[ 123108, "doc/main.xml", 3085 ], [ 123148, "doc/main.xml", 3086 ],
[ 123149, "doc/main.xml", 3087 ], [ 123229, "doc/main.xml", 3088 ],
[ 123302, "doc/main.xml", 3089 ], [ 123317, "doc/main.xml", 3090 ],
[ 123318, "doc/main.xml", 3091 ], [ 123324, "doc/main.xml", 3092 ],
[ 123388, "doc/main.xml", 3093 ], [ 123455, "doc/main.xml", 3094 ],
[ 123474, "doc/main.xml", 3095 ], [ 123545, "doc/main.xml", 3096 ],
[ 123560, "doc/main.xml", 3097 ], [ 123565, "doc/main.xml", 3098 ],
[ 123584, "doc/main.xml", 3099 ], [ 123588, "doc/main.xml", 3100 ],
[ 123603, "doc/main.xml", 3101 ], [ 123650, "doc/main.xml", 3102 ],
[ 123689, "doc/main.xml", 3103 ], [ 123742, "doc/main.xml", 3104 ],
[ 123807, "doc/main.xml", 3105 ], [ 123885, "doc/main.xml", 3106 ],
[ 123906, "doc/main.xml", 3107 ], [ 123911, "doc/main.xml", 3108 ],
[ 123918, "doc/main.xml", 3109 ], [ 123919, "doc/main.xml", 3110 ],
[ 123987, "doc/main.xml", 3111 ], [ 124005, "doc/main.xml", 3112 ],
[ 124016, "doc/main.xml", 3113 ], [ 124017, "doc/main.xml", 3114 ],
[ 124027, "doc/main.xml", 3115 ], [ 124060, "doc/main.xml", 3116 ],
[ 124061, "doc/main.xml", 3117 ], [ 124132, "doc/main.xml", 3118 ],
[ 124175, "doc/main.xml", 3119 ], [ 124176, "doc/main.xml", 3120 ],
[ 124182, "doc/main.xml", 3121 ], [ 124233, "doc/main.xml", 3122 ],
[ 124277, "doc/main.xml", 3123 ], [ 124295, "doc/main.xml", 3124 ],
[ 124342, "doc/main.xml", 3125 ], [ 124373, "doc/main.xml", 3126 ],
[ 124411, "doc/main.xml", 3127 ], [ 124432, "doc/main.xml", 3128 ],
[ 124438, "doc/main.xml", 3129 ], [ 124475, "doc/main.xml", 3130 ],
[ 124481, "doc/main.xml", 3131 ], [ 124499, "doc/main.xml", 3132 ],
[ 124504, "doc/main.xml", 3133 ], [ 124511, "doc/main.xml", 3134 ],
[ 124512, "doc/main.xml", 3135 ], [ 124548, "doc/main.xml", 3136 ],
[ 124549, "doc/main.xml", 3137 ], [ 124555, "doc/main.xml", 3138 ],
[ 124582, "doc/main.xml", 3139 ], [ 124627, "doc/main.xml", 3140 ],
[ 124648, "doc/main.xml", 3141 ], [ 124695, "doc/main.xml", 3142 ],
[ 124716, "doc/main.xml", 3143 ], [ 124737, "doc/main.xml", 3144 ],
[ 124758, "doc/main.xml", 3145 ], [ 124769, "doc/main.xml", 3146 ],
[ 124787, "doc/main.xml", 3147 ], [ 124792, "doc/main.xml", 3148 ],
[ 124799, "doc/main.xml", 3149 ], [ 124800, "doc/main.xml", 3150 ],
[ 124874, "doc/main.xml", 3151 ], [ 124944, "doc/main.xml", 3152 ],
[ 124998, "doc/main.xml", 3153 ], [ 125070, "doc/main.xml", 3154 ],
[ 125112, "doc/main.xml", 3155 ], [ 125113, "doc/main.xml", 3156 ],
[ 125124, "doc/main.xml", 3157 ], [ 125135, "doc/main.xml", 3158 ],
[ 125136, "doc/main.xml", 3159 ], [ 125146, "doc/main.xml", 3160 ],
[ 125177, "doc/main.xml", 3161 ], [ 125178, "doc/main.xml", 3162 ],
[ 125247, "doc/main.xml", 3163 ], [ 125316, "doc/main.xml", 3164 ],
[ 125382, "doc/main.xml", 3165 ], [ 125422, "doc/main.xml", 3166 ],
[ 125423, "doc/main.xml", 3167 ], [ 125487, "doc/main.xml", 3168 ],
[ 125550, "doc/main.xml", 3169 ], [ 125612, "doc/main.xml", 3170 ],
[ 125661, "doc/main.xml", 3171 ], [ 125662, "doc/main.xml", 3172 ],
[ 125728, "doc/main.xml", 3173 ], [ 125796, "doc/main.xml", 3174 ],
[ 125797, "doc/main.xml", 3175 ], [ 125808, "doc/io.xml", 49 ],
[ 125809, "doc/io.xml", 50 ], [ 125817, "doc/io.xml", 51 ],
[ 125818, "doc/io.xml", 52 ], [ 125859, "doc/io.xml", 53 ],
[ 125900, "doc/io.xml", 54 ], [ 125901, "doc/io.xml", 55 ],
[ 125942, "doc/io.xml", 56 ], [ 125954, "doc/io.xml", 57 ],
[ 125955, "doc/io.xml", 58 ], [ 125963, "doc/io.xml", 59 ],
[ 125964, "doc/io.xml", 60 ], [ 125969, "doc/io.xml", 61 ],
[ 126038, "doc/io.xml", 62 ], [ 126107, "doc/io.xml", 63 ],
[ 126173, "doc/io.xml", 64 ], [ 126209, "doc/io.xml", 65 ],
[ 126210, "doc/io.xml", 66 ], [ 126274, "doc/io.xml", 67 ],
[ 126337, "doc/io.xml", 68 ], [ 126399, "doc/io.xml", 69 ],
[ 126444, "doc/io.xml", 70 ], [ 126445, "doc/io.xml", 71 ],
[ 126511, "doc/io.xml", 72 ], [ 126581, "doc/io.xml", 73 ],
[ 126585, "doc/io.xml", 74 ] ],
labels :=
rec( AcceptNewConnection := [ "9.2-7", "chap9.html#X7BE1B9FD82C9B8E0" ],
AttachServingSocket := [ "9.2-4", "chap9.html#X7F7FD824866CB582" ],
BackgroundJobByFork := [ "8.1-1", "chap8.html#X7FE0061F8484814B" ],
ChangeCurrentDirectory := [ "4.3-5", "chap4.html#X7D849D987800A0F6" ],
("Chap-CLibFuncs") := [ "3", "chap3.html#X85DE7F82801DDA50" ],
("Chap-Install") := [ "2", "chap2.html#X87D1C7D0861CBE25" ],
("Chap-Preface") := [ "1", "chap1.html#X874E1D45845007FE" ],
CheckForUpdates := [ "7.1-6", "chap7.html#X78BAF7A77F6BE631" ],
CloseConnection := [ "9.2-3", "chap9.html#X8553D2E47C05797F" ],
CloseHTTPConnection := [ "7.1-4", "chap7.html#X81702FA07F2AF472" ],
DoIO := [ "9.2-13", "chap9.html#X810D418A802D09D1" ],
DoQueues := [ "8.3-2", "chap8.html#X7ED2CE687EA7FC66" ],
ExtPickFrame := [ "5.3", "chap5.html#X7B1C9A9C7D3C0312" ],
GetInput := [ "9.2-9", "chap9.html#X837629707DF9B60E" ],
HTTPRequest := [ "7.1-2", "chap7.html#X80FF9E307BDA0659" ],
HTTPTimeoutForSelect := [ "7.1-3", "chap7.html#X83526BF378B3D8F2" ],
HasTerminated := [ "8.1-3", "chap8.html#X86E1283D7AD05169" ],
IOHub := [ "9.2-1", "chap9.html#X83C0523D8538E866" ],
IO_ClearPickleCache := [ "5.2-3", "chap5.html#X844736FB80F6EE97" ],
IO_Close := [ "4.2-16", "chap4.html#X820DA9C97C2E80BA" ],
IO_CloseAllFDs := [ "4.4-2", "chap4.html#X7C43017E7AC5973A" ],
IO_Environment := [ "4.3-7", "chap4.html#X7F9AAE018474E1D8" ],
IO_Error := [ "5.1-1", "chap5.html#X86E06A128511BA25" ],
("IO_File (bufsize)") := [ "4.1-3", "chap4.html#X7EC160D07E815DBB" ],
("IO_File (mode and bufsize)") :=
[ "4.1-3", "chap4.html#X7EC160D07E815DBB" ],
("IO_File (mode)") := [ "4.1-3", "chap4.html#X7EC160D07E815DBB" ],
("IO_FileFilterString (append)") :=
[ "4.4-8", "chap4.html#X83E765D783531845" ],
IO_FilteredFile := [ "4.4-9", "chap4.html#X801CE3708656FB00" ],
IO_FindExecutable := [ "4.4-1", "chap4.html#X84E91FE27A7860F3" ],
IO_Flush := [ "4.2-10", "chap4.html#X7873A49F7CC7ECFB" ],
IO_FlushNonBlocking := [ "4.2-15", "chap4.html#X80E977B48771D207" ],
IO_GetFD := [ "4.3-1", "chap4.html#X7F893EFC7D0C7BF2" ],
IO_GetWBuf := [ "4.3-2", "chap4.html#X86666C9681EA7297" ],
IO_HasData := [ "4.2-5", "chap4.html#X87E0AC547835F21D" ],
IO_InstallSIGCHLDHandler := [ "3.3-3", "chap3.html#X8383E62D86BE30C6" ],
IO_ListDir := [ "4.3-4", "chap4.html#X84B16DB878265F02" ],
IO_MakeEnvList := [ "4.3-8", "chap4.html#X7CF3DB5081A91600" ],
IO_MakeIPAddressPort := [ "4.3-6", "chap4.html#X8568CE6684C90CE5" ],
IO_Nothing := [ "5.1-2", "chap5.html#X7887BFCF824B439B" ],
IO_OK := [ "5.1-3", "chap5.html#X7D4D092B8401EA0F" ],
IO_Pickle := [ "5.2-1", "chap5.html#X7E01770481297DF1" ],
IO_PipeThrough := [ "4.4-11", "chap4.html#X8484B0CD7836A19E" ],
IO_PipeThroughWithError := [ "4.4-12", "chap4.html#X7A9ACA3979635506" ],
IO_Popen := [ "4.4-3", "chap4.html#X7891F56386C008CE" ],
IO_Popen2 := [ "4.4-4", "chap4.html#X7E05CF6481CBC0A1" ],
IO_Popen3 := [ "4.4-5", "chap4.html#X7975BC6D80BC71E5" ],
IO_Read := [ "4.2-6", "chap4.html#X84F3D862836BF17C" ],
IO_ReadBlock := [ "4.2-2", "chap4.html#X7D2686ED854BEF95" ],
IO_ReadLine := [ "4.2-3", "chap4.html#X8738708E7B9DF8DB" ],
IO_ReadLines := [ "4.2-4", "chap4.html#X81E72756806C0945" ],
IO_ReadUntilEOF := [ "4.2-1", "chap4.html#X865A873E78C822B7" ],
IO_ReadyForFlush := [ "4.2-14", "chap4.html#X7C5786E07813434B" ],
IO_ReadyForWrite := [ "4.2-12", "chap4.html#X80CF240F78664DF4" ],
IO_RestoreSIGCHLDHandler := [ "3.3-4", "chap3.html#X7EEB7471816B64DF" ],
IO_Select := [ "4.3-3", "chap4.html#X81CA6EE88062010E" ],
IO_SendStringBackground := [ "4.4-10", "chap4.html#X7D62E9C57F1F96FB" ],
IO_StartPipeline := [ "4.4-6", "chap4.html#X813219C17FB54731" ],
IO_StringFilterFile := [ "4.4-7", "chap4.html#X86D61FAE871B23E8" ],
IO_Unpickle := [ "5.2-2", "chap5.html#X8228EE63809A6DEF" ],
IO_WaitPid := [ "3.2-60", "chap3.html#X80737A008450184F" ],
IO_WrapFD := [ "4.1-2", "chap4.html#X7DDB0BA6836DA208" ],
IO_Write := [ "4.2-7", "chap4.html#X84EB06707D1BD3F1" ],
IO_WriteFlush := [ "4.2-11", "chap4.html#X7870634278F6C69F" ],
IO_WriteLine := [ "4.2-8", "chap4.html#X83A03ACB81F53BB1" ],
IO_WriteLines := [ "4.2-9", "chap4.html#X87CE6EC17C1573AC" ],
IO_WriteNonBlocking := [ "4.2-13", "chap4.html#X84052F9886ADED0D" ],
IO_accept := [ "3.2-1", "chap3.html#X7E474E9787012FE4" ],
IO_bind := [ "3.2-2", "chap3.html#X791A6341852001F8" ],
IO_chdir := [ "3.2-3", "chap3.html#X790139B37E87FA61" ],
IO_chmod := [ "3.2-4", "chap3.html#X83D4CB2681674FA4" ],
IO_chown := [ "3.2-5", "chap3.html#X85C0617479E4D952" ],
IO_close := [ "3.2-6", "chap3.html#X820DA9C97C2E80BA" ],
IO_closedir := [ "3.2-7", "chap3.html#X8078699B84F082A4" ],
IO_connect := [ "3.2-8", "chap3.html#X7DE9D8B387D3A3D5" ],
IO_creat := [ "3.2-9", "chap3.html#X78FCF69C7FCF3BD7" ],
IO_dup := [ "3.2-10", "chap3.html#X7DAAD93A80F76681" ],
IO_dup2 := [ "3.2-11", "chap3.html#X7F7B8FAC7ABA285B" ],
IO_environ := [ "3.3-2", "chap3.html#X7F3E88AD7EFD52F4" ],
IO_execv := [ "3.2-12", "chap3.html#X7B30A7FA84692EC5" ],
IO_execve := [ "3.2-13", "chap3.html#X875D9A9E8201D461" ],
IO_execvp := [ "3.2-14", "chap3.html#X818044D07C64A412" ],
IO_exit := [ "3.2-15", "chap3.html#X843634347E88C357" ],
IO_fchmod := [ "3.2-16", "chap3.html#X7F08E1187BDB619A" ],
IO_fchown := [ "3.2-17", "chap3.html#X791C4B4A81059A88" ],
IO_fcntl := [ "3.2-18", "chap3.html#X7870647E866D29A4" ],
IO_fork := [ "3.2-19", "chap3.html#X86C819F37D07ECF7" ],
IO_fstat := [ "3.2-20", "chap3.html#X7E27748983EC7B5C" ],
IO_gethostbyname := [ "3.2-21", "chap3.html#X7DD25BDC79EE65AD" ],
IO_gethostname := [ "3.2-22", "chap3.html#X7B7164EF8307D26B" ],
IO_getpid := [ "3.2-23", "chap3.html#X7ECF948083E38BD0" ],
IO_getppid := [ "3.2-24", "chap3.html#X7EC6ABAB7AB9F40F" ],
IO_getsockname := [ "3.2-25", "chap3.html#X877A161482FC1769" ],
IO_getsockopt := [ "3.2-26", "chap3.html#X790213D885BAB495" ],
IO_gettimeofday := [ "3.2-27", "chap3.html#X7BC965198011083B" ],
IO_gmtime := [ "3.2-28", "chap3.html#X7DC156EA86F3F356" ],
IO_kill := [ "3.2-29", "chap3.html#X7D0439128512FBF6" ],
IO_lchown := [ "3.2-30", "chap3.html#X8305F97C87FE448E" ],
IO_link := [ "3.2-31", "chap3.html#X7E1C65EB84497185" ],
IO_listen := [ "3.2-32", "chap3.html#X7957063B807025C7" ],
IO_localtime := [ "3.2-33", "chap3.html#X7B7D3D64805F335F" ],
IO_lseek := [ "3.2-34", "chap3.html#X85C475187C824830" ],
IO_lstat := [ "3.2-35", "chap3.html#X7A8C75038517A55A" ],
IO_make_sockaddr_in := [ "3.3-1", "chap3.html#X878007A67E806CEF" ],
IO_mkdir := [ "3.2-36", "chap3.html#X83D968AB84F00ABF" ],
IO_mkfifo := [ "3.2-37", "chap3.html#X80BFF17A8099815F" ],
IO_mknod := [ "3.2-38", "chap3.html#X7928F1DB8379F850" ],
IO_open := [ "3.2-39", "chap3.html#X8731A44E8032D9D2" ],
IO_opendir := [ "3.2-40", "chap3.html#X78E234797EB01883" ],
IO_pipe := [ "3.2-41", "chap3.html#X7C8F0A44837BBE8C" ],
IO_read := [ "3.2-42", "chap3.html#X84F3D862836BF17C" ],
IO_readdir := [ "3.2-43", "chap3.html#X8410C6F17DE9302D" ],
IO_readlink := [ "3.2-44", "chap3.html#X7943F25E7EBA9A6B" ],
IO_recv := [ "3.2-45", "chap3.html#X78EB295E78B363B2" ],
IO_recvfrom := [ "3.2-46", "chap3.html#X84C617887EE02EB4" ],
IO_rename := [ "3.2-47", "chap3.html#X78EC95007A92AB69" ],
IO_rewinddir := [ "3.2-48", "chap3.html#X7F86DBEB7876FBA5" ],
IO_rmdir := [ "3.2-49", "chap3.html#X7FA4DD537C83A199" ],
IO_seekdir := [ "3.2-50", "chap3.html#X84A98D2380BF6574" ],
IO_select := [ "3.2-51", "chap3.html#X81CA6EE88062010E" ],
IO_send := [ "3.2-52", "chap3.html#X87019FD887F55C27" ],
IO_sendto := [ "3.2-53", "chap3.html#X8388B0147B5745EC" ],
IO_setsockopt := [ "3.2-54", "chap3.html#X7BE641C1784D0899" ],
IO_socket := [ "3.2-55", "chap3.html#X852B16CF82B96C84" ],
IO_stat := [ "3.2-56", "chap3.html#X7F7D23867B45D525" ],
IO_symlink := [ "3.2-57", "chap3.html#X7B0D9CEF7A3CD431" ],
IO_telldir := [ "3.2-58", "chap3.html#X81FF8B678748900B" ],
IO_unlink := [ "3.2-59", "chap3.html#X78C93B6587B478C2" ],
IO_write := [ "3.2-61", "chap3.html#X84EB06707D1BD3F1" ],
InputQueue := [ "9.2-12", "chap9.html#X7972FF1C7B59D0A4" ],
IsFile := [ "4.1-1", "chap4.html#X80C9B80A80E3A555" ],
("IsIdle (bgjob)") := [ "8.1-2", "chap8.html#X7B7D934583257B9A" ],
("IsIdle (wfarm)") := [ "8.3-4", "chap8.html#X7C4E3D5A7FE617FE" ],
("Kill (bgjob)") := [ "8.1-7", "chap8.html#X841B3A1A7967DEA4" ],
("Kill (wfarm)") := [ "8.3-3", "chap8.html#X83289405792FF902" ],
NewConnection := [ "9.2-2", "chap9.html#X7D1D9A8D837ECCEB" ],
NewTCPConnection := [ "9.2-10", "chap9.html#X79031BC687502CB6" ],
OpenHTTPConnection := [ "7.1-1", "chap7.html#X7B5588D5856BE6DD" ],
OutputQueue := [ "9.2-11", "chap9.html#X7F8C7F5782213A71" ],
ParDoByFork := [ "8.2-2", "chap8.html#X7A1F40D1841C36D2" ],
ParListByFork := [ "8.2-3", "chap8.html#X80DA6945873DCC66" ],
ParMapReduceByFork := [ "8.2-4", "chap8.html#X7AD5D85283BC41AC" ],
ParTakeFirstResultByFork := [ "8.2-1", "chap8.html#X78A59A628449960F" ],
ParWorkerFarmByFork := [ "8.3-1", "chap8.html#X87896E477DCB9C55" ],
("Pickup (bgjob)") := [ "8.1-5", "chap8.html#X7F4B8B9078D0E18E" ],
("Pickup (wfarm)") := [ "8.3-6", "chap8.html#X7878258F84138DEA" ],
RandomSource := [ "6.1-1", "chap6.html#X7CB0B5BC82F8FD8F" ],
ReadWeb := [ "7.1-7", "chap7.html#X872B174F7FFD345B" ],
Shutdown := [ "9.2-6", "chap9.html#X84AFBD658118ABB8" ],
ShutdownServingSocket := [ "9.2-5", "chap9.html#X7866F9DA8358968C" ],
SingleHTTPRequest := [ "7.1-5", "chap7.html#X7DBCB0B4801E4D6D" ],
("Submit (bgjob)") := [ "8.1-6", "chap8.html#X864492F37E858197" ],
("Submit (wfarm)") := [ "8.3-5", "chap8.html#X81773CEC8246EDF3" ],
SubmitOutput := [ "9.2-8", "chap9.html#X85F634D4826D89F1" ],
WaitUntilIdle := [ "8.1-4", "chap8.html#X7C139805804E6FE1" ],
bufio := [ "4", "chap4.html#X7D6A3F7178CB6169" ],
ipc := [ "4.4", "chap4.html#X85BB2BA684485CD6" ] ),
labeltexts :=
rec(
("Chap-CLibFuncs") := "<span class=\"Heading\">Functions directly availa\
ble from the C library</span>",
("Chap-Install") := "<span class=\"Heading\">Installation of the <strong\
class=\"pkg\">IO</strong>-package</span>",
("Chap-Preface") := "<span class=\"Heading\">Preface</span>",
ExtPickFrame := "<span class=\"Heading\">Extending the pickling framewor\
k</span>",
bufio := "<span class=\"Heading\">High level functions for buffered I/O<\
/span>", ipc := "<span class=\"Heading\">Inter process communication</span>" )
, linelength := 76, mathmode := "Text", name := "WHOLEDOCUMENT",
next := 126604, root := ~,
six :=
[
[ "Title page", ".", [ 0, 0, 0 ], 1, 1, "title page",
"X7D2C85EC87DD46E5" ],
[ "Copyright", ".-1", [ 0, 0, 1 ], 29, 2, "copyright",
"X81488B807F2A1CF1" ],
[ "Table of Contents", ".-2", [ 0, 0, 2 ], 37, 3, "table of contents",
"X8537FEB07AF2BEC8" ],
[ "\033[1X\033[33X\033[0;-2YPreface\033[133X\033[101X", "1",
[ 1, 0, 0 ], 1, 5, "preface", "X874E1D45845007FE" ],
[
"\033[1X\033[33X\033[0;-2YInstallation of the \033[5XIO\033[105X\033[10\
1X\027\033[1X\027-package\033[133X\033[101X", "2", [ 2, 0, 0 ], 1, 6,
"installation of the io\027\027-package", "X87D1C7D0861CBE25" ],
[
"\033[1X\033[33X\033[0;-2YRecompiling the documentation\033[133X\033[10\
1X", "2.1", [ 2, 1, 0 ], 62, 7, "recompiling the documentation",
"X7FB00ED2787027A3" ],
[
"\033[1X\033[33X\033[0;-2YFunctions directly available from the C libra\
ry\033[133X\033[101X", "3", [ 3, 0, 0 ], 1, 8,
"functions directly available from the c library",
"X85DE7F82801DDA50" ],
[
"\033[1X\033[33X\033[0;-2YDifferences in arguments - an overview\033[13\
3X\033[101X", "3.1", [ 3, 1, 0 ], 39, 8,
"differences in arguments - an overview", "X85D3551379BA32FC" ],
[
"\033[1X\033[33X\033[0;-2YThe low-level functions in detail\033[133X\\
033[101X", "3.2", [ 3, 2, 0 ], 94, 9, "the low-level functions in detail",
"X800F9F3E810A7228" ],
[ "\033[1X\033[33X\033[0;-2YFurther C level functions\033[133X\033[101X"
, "3.3", [ 3, 3, 0 ], 625, 18, "further c level functions",
"X85065AD381BD8E0F" ],
[
"\033[1X\033[33X\033[0;-2YHigh level functions for buffered I/O\033[133\
X\033[101X", "4", [ 4, 0, 0 ], 1, 20, "high level functions for buffered i/o",
"X7D6A3F7178CB6169" ],
[
"\033[1X\033[33X\033[0;-2YTypes and the creation of \033[10XFile\033[11\
0X\033[101X\027\033[1X\027 objects\033[133X\033[101X", "4.1", [ 4, 1, 0 ],
29, 20, "types and the creation of file\027\027 objects",
"X7F697A8884B57F27" ],
[ "\033[1X\033[33X\033[0;-2YReading and writing\033[133X\033[101X",
"4.2", [ 4, 2, 0 ], 91, 21, "reading and writing",
"X818FA8A37C8BBB95" ],
[ "\033[1X\033[33X\033[0;-2YOther functions\033[133X\033[101X", "4.3",
[ 4, 3, 0 ], 326, 25, "other functions", "X87C3D1B984960984" ],
[
"\033[1X\033[33X\033[0;-2YInter process communication\033[133X\033[101X\
", "4.4", [ 4, 4, 0 ], 429, 27, "inter process communication",
"X85BB2BA684485CD6" ],
[
"\033[1X\033[33X\033[0;-2YObject serialisation (Pickling)\033[133X\033[\
101X", "5", [ 5, 0, 0 ], 1, 32, "object serialisation pickling",
"X81BBA46880EBFC7D" ],
[ "\033[1X\033[33X\033[0;-2YResult objects\033[133X\033[101X", "5.1",
[ 5, 1, 0 ], 18, 32, "result objects", "X7E504814811605B7" ],
[ "\033[1X\033[33X\033[0;-2YPickling and unpickling\033[133X\033[101X",
"5.2", [ 5, 2, 0 ], 47, 33, "pickling and unpickling",
"X7F68A8F47F87B243" ],
[
"\033[1X\033[33X\033[0;-2YExtending the pickling framework\033[133X\\
033[101X", "5.3", [ 5, 3, 0 ], 99, 33, "extending the pickling framework",
"X7B1C9A9C7D3C0312" ],
[ "\033[1X\033[33X\033[0;-2YReally random sources\033[133X\033[101X",
"6", [ 6, 0, 0 ], 1, 35, "really random sources",
"X78A8811F7BD55ABA" ],
[ "\033[1X\033[33X\033[0;-2YThe functions\033[133X\033[101X", "6.1",
[ 6, 1, 0 ], 11, 35, "the functions", "X8173135A7D187358" ],
[
"\033[1X\033[33X\033[0;-2YA client side implementation of the HTTP prot\
ocol\033[133X\033[101X", "7", [ 7, 0, 0 ], 1, 36,
"a client side implementation of the http protocol",
"X79DA05BB7CCC1749" ],
[
"\033[1X\033[33X\033[0;-2YFunctions for client side HTTP\033[133X\033[1\
01X", "7.1", [ 7, 1, 0 ], 9, 36, "functions for client side http",
"X7E8B5F0A87F2C1F7" ],
[
"\033[1X\033[33X\033[0;-2YBackground jobs using fork\033[133X\033[101X"
, "8", [ 8, 0, 0 ], 1, 39, "background jobs using fork",
"X7E9E9B3F7B585BA7" ],
[ "\033[1X\033[33X\033[0;-2YBackground jobs\033[133X\033[101X", "8.1",
[ 8, 1, 0 ], 28, 39, "background jobs", "X7CCAF66D7E7E098E" ],
[
"\033[1X\033[33X\033[0;-2YParallel programming skeletons\033[133X\033[1\
01X", "8.2", [ 8, 2, 0 ], 138, 41, "parallel programming skeletons",
"X7AF7D78B7F6F1212" ],
[ "\033[1X\033[33X\033[0;-2YWorker farms\033[133X\033[101X", "8.3",
[ 8, 3, 0 ], 232, 43, "worker farms", "X7D18519B879047B3" ],
[ "\033[1X\033[33X\033[0;-2YI/O multiplexing\033[133X\033[101X", "9",
[ 9, 0, 0 ], 1, 45, "i/o multiplexing", "X7A466B907B882CA0" ],
[ "\033[1X\033[33X\033[0;-2YIntroduction\033[133X\033[101X", "9.1",
[ 9, 1, 0 ], 4, 45, "introduction", "X7DFB63A97E67C0A1" ],
[
"\033[1X\033[33X\033[0;-2YThe operations for \033[10XIOHub\033[110X\\
033[101X\027\033[1X\027 objects\033[133X\033[101X", "9.2", [ 9, 2, 0 ], 22,
45, "the operations for iohub\027\027 objects", "X853D93B47EA82379"
], [ "\033[1X\033[33X\033[0;-2YExamples\033[133X\033[101X", "9.3",
[ 9, 3, 0 ], 194, 48, "examples", "X7A489A5D79DA9E5C" ],
[ "\033[1X\033[33X\033[0;-2YExamples of usage\033[133X\033[101X", "10",
[ 10, 0, 0 ], 1, 49, "examples of usage", "X7EADF566874177D8" ],
[
"\033[1X\033[33X\033[0;-2YWriting and reading a file\033[133X\033[101X"
, "10.1", [ 10, 1, 0 ], 18, 49, "writing and reading a file",
"X7EC25CA68794860A" ],
[
"\033[1X\033[33X\033[0;-2YUsing filtering programs to read and write fi\
les\033[133X\033[101X", "10.2", [ 10, 2, 0 ], 69, 50,
"using filtering programs to read and write files",
"X7AECE665813D6E4D" ],
[
"\033[1X\033[33X\033[0;-2YUsing filters when reading or writing files s\
equentially\033[133X\033[101X", "10.3", [ 10, 3, 0 ], 93, 50,
"using filters when reading or writing files sequentially",
"X7A8A180D7B335151" ],
[ "\033[1X\033[33X\033[0;-2YAccessing a web page\033[133X\033[101X",
"10.4", [ 10, 4, 0 ], 121, 51, "accessing a web page",
"X7BD2BF7F87573C69" ],
[ "\033[1X\033[33X\033[0;-2Y(Un-)Pickling\033[133X\033[101X", "10.5",
[ 10, 5, 0 ], 149, 51, "un- pickling", "X81BD8400832EE20B" ],
[ "\033[1X\033[33X\033[0;-2YLicense\033[133X\033[101X", "11",
[ 11, 0, 0 ], 1, 53, "license", "X861E5DF986F89AE2" ],
[ "Index", "Ind", [ "Ind", 0, 0 ], 1, 54, "index", "X83A0356F839C696F" ]
,
[ "\033[5XIO\033[105X", "1.", [ 1, 0, 0 ], 1, 5, "io",
"X874E1D45845007FE" ],
[ "\033[2XIO_accept\033[102X", "3.2-1", [ 3, 2, 1 ], 103, 9,
"io_accept", "X7E474E9787012FE4" ],
[ "\033[2XIO_bind\033[102X", "3.2-2", [ 3, 2, 2 ], 112, 9, "io_bind",
"X791A6341852001F8" ],
[ "\033[2XIO_chdir\033[102X", "3.2-3", [ 3, 2, 3 ], 121, 10,
"io_chdir", "X790139B37E87FA61" ],
[ "\033[2XIO_chmod\033[102X", "3.2-4", [ 3, 2, 4 ], 128, 10,
"io_chmod", "X83D4CB2681674FA4" ],
[ "\033[2XIO_chown\033[102X", "3.2-5", [ 3, 2, 5 ], 135, 10,
"io_chown", "X85C0617479E4D952" ],
[ "\033[2XIO_close\033[102X", "3.2-6", [ 3, 2, 6 ], 142, 10,
"io_close", "X820DA9C97C2E80BA" ],
[ "\033[2XIO_closedir\033[102X", "3.2-7", [ 3, 2, 7 ], 149, 10,
"io_closedir", "X8078699B84F082A4" ],
[ "\033[2XIO_connect\033[102X", "3.2-8", [ 3, 2, 8 ], 157, 10,
"io_connect", "X7DE9D8B387D3A3D5" ],
[ "\033[2XIO_creat\033[102X", "3.2-9", [ 3, 2, 9 ], 166, 10,
"io_creat", "X78FCF69C7FCF3BD7" ],
[ "\033[2XIO_dup\033[102X", "3.2-10", [ 3, 2, 10 ], 173, 11, "io_dup",
"X7DAAD93A80F76681" ],
[ "\033[2XIO_dup2\033[102X", "3.2-11", [ 3, 2, 11 ], 180, 11,
"io_dup2", "X7F7B8FAC7ABA285B" ],
[ "\033[2XIO_execv\033[102X", "3.2-12", [ 3, 2, 12 ], 187, 11,
"io_execv", "X7B30A7FA84692EC5" ],
[ "\033[2XIO_execve\033[102X", "3.2-13", [ 3, 2, 13 ], 196, 11,
"io_execve", "X875D9A9E8201D461" ],
[ "\033[2XIO_execvp\033[102X", "3.2-14", [ 3, 2, 14 ], 207, 11,
"io_execvp", "X818044D07C64A412" ],
[ "\033[2XIO_exit\033[102X", "3.2-15", [ 3, 2, 15 ], 216, 11,
"io_exit", "X843634347E88C357" ],
[ "\033[2XIO_fchmod\033[102X", "3.2-16", [ 3, 2, 16 ], 223, 11,
"io_fchmod", "X7F08E1187BDB619A" ],
[ "\033[2XIO_fchown\033[102X", "3.2-17", [ 3, 2, 17 ], 230, 12,
"io_fchown", "X791C4B4A81059A88" ],
[ "\033[2XIO_fcntl\033[102X", "3.2-18", [ 3, 2, 18 ], 237, 12,
"io_fcntl", "X7870647E866D29A4" ],
[ "\033[2XIO_fork\033[102X", "3.2-19", [ 3, 2, 19 ], 245, 12,
"io_fork", "X86C819F37D07ECF7" ],
[ "\033[2XIO_fstat\033[102X", "3.2-20", [ 3, 2, 20 ], 260, 12,
"io_fstat", "X7E27748983EC7B5C" ],
[ "\033[2XIO_gethostbyname\033[102X", "3.2-21", [ 3, 2, 21 ], 268, 12,
"io_gethostbyname", "X7DD25BDC79EE65AD" ],
[ "\033[2XIO_gethostname\033[102X", "3.2-22", [ 3, 2, 22 ], 276, 12,
"io_gethostname", "X7B7164EF8307D26B" ],
[ "\033[2XIO_getpid\033[102X", "3.2-23", [ 3, 2, 23 ], 283, 12,
"io_getpid", "X7ECF948083E38BD0" ],
[ "\033[2XIO_getppid\033[102X", "3.2-24", [ 3, 2, 24 ], 291, 13,
"io_getppid", "X7EC6ABAB7AB9F40F" ],
[ "\033[2XIO_getsockname\033[102X", "3.2-25", [ 3, 2, 25 ], 299, 13,
"io_getsockname", "X877A161482FC1769" ],
[ "\033[2XIO_getsockopt\033[102X", "3.2-26", [ 3, 2, 26 ], 306, 13,
"io_getsockopt", "X790213D885BAB495" ],
[ "\033[2XIO_gettimeofday\033[102X", "3.2-27", [ 3, 2, 27 ], 315, 13,
"io_gettimeofday", "X7BC965198011083B" ],
[ "\033[2XIO_gmtime\033[102X", "3.2-28", [ 3, 2, 28 ], 324, 13,
"io_gmtime", "X7DC156EA86F3F356" ],
[ "\033[2XIO_kill\033[102X", "3.2-29", [ 3, 2, 29 ], 333, 13,
"io_kill", "X7D0439128512FBF6" ],
[ "\033[2XIO_lchown\033[102X", "3.2-30", [ 3, 2, 30 ], 342, 13,
"io_lchown", "X8305F97C87FE448E" ],
[ "\033[2XIO_link\033[102X", "3.2-31", [ 3, 2, 31 ], 350, 14,
"io_link", "X7E1C65EB84497185" ],
[ "\033[2XIO_listen\033[102X", "3.2-32", [ 3, 2, 32 ], 357, 14,
"io_listen", "X7957063B807025C7" ],
[ "\033[2XIO_localtime\033[102X", "3.2-33", [ 3, 2, 33 ], 364, 14,
"io_localtime", "X7B7D3D64805F335F" ],
[ "\033[2XIO_lseek\033[102X", "3.2-34", [ 3, 2, 34 ], 373, 14,
"io_lseek", "X85C475187C824830" ],
[ "\033[2XIO_lstat\033[102X", "3.2-35", [ 3, 2, 35 ], 380, 14,
"io_lstat", "X7A8C75038517A55A" ],
[ "\033[2XIO_mkdir\033[102X", "3.2-36", [ 3, 2, 36 ], 389, 14,
"io_mkdir", "X83D968AB84F00ABF" ],
[ "\033[2XIO_mkfifo\033[102X", "3.2-37", [ 3, 2, 37 ], 396, 14,
"io_mkfifo", "X80BFF17A8099815F" ],
[ "\033[2XIO_mknod\033[102X", "3.2-38", [ 3, 2, 38 ], 403, 15,
"io_mknod", "X7928F1DB8379F850" ],
[ "\033[2XIO_open\033[102X", "3.2-39", [ 3, 2, 39 ], 410, 15,
"io_open", "X8731A44E8032D9D2" ],
[ "\033[2XIO_opendir\033[102X", "3.2-40", [ 3, 2, 40 ], 418, 15,
"io_opendir", "X78E234797EB01883" ],
[ "\033[2XIO_pipe\033[102X", "3.2-41", [ 3, 2, 41 ], 427, 15,
"io_pipe", "X7C8F0A44837BBE8C" ],
[ "\033[2XIO_read\033[102X", "3.2-42", [ 3, 2, 42 ], 437, 15,
"io_read", "X84F3D862836BF17C" ],
[ "\033[2XIO_readdir\033[102X", "3.2-43", [ 3, 2, 43 ], 448, 15,
"io_readdir", "X8410C6F17DE9302D" ],
[ "\033[2XIO_readlink\033[102X", "3.2-44", [ 3, 2, 44 ], 458, 16,
"io_readlink", "X7943F25E7EBA9A6B" ],
[ "\033[2XIO_recv\033[102X", "3.2-45", [ 3, 2, 45 ], 466, 16,
"io_recv", "X78EB295E78B363B2" ],
[ "\033[2XIO_recvfrom\033[102X", "3.2-46", [ 3, 2, 46 ], 475, 16,
"io_recvfrom", "X84C617887EE02EB4" ],
[ "\033[2XIO_rename\033[102X", "3.2-47", [ 3, 2, 47 ], 486, 16,
"io_rename", "X78EC95007A92AB69" ],
[ "\033[2XIO_rewinddir\033[102X", "3.2-48", [ 3, 2, 48 ], 493, 16,
"io_rewinddir", "X7F86DBEB7876FBA5" ],
[ "\033[2XIO_rmdir\033[102X", "3.2-49", [ 3, 2, 49 ], 502, 16,
"io_rmdir", "X7FA4DD537C83A199" ],
[ "\033[2XIO_seekdir\033[102X", "3.2-50", [ 3, 2, 50 ], 509, 16,
"io_seekdir", "X84A98D2380BF6574" ],
[ "\033[2XIO_select\033[102X", "3.2-51", [ 3, 2, 51 ], 518, 17,
"io_select", "X81CA6EE88062010E" ],
[ "\033[2XIO_send\033[102X", "3.2-52", [ 3, 2, 52 ], 530, 17,
"io_send", "X87019FD887F55C27" ],
[ "\033[2XIO_sendto\033[102X", "3.2-53", [ 3, 2, 53 ], 540, 17,
"io_sendto", "X8388B0147B5745EC" ],
[ "\033[2XIO_setsockopt\033[102X", "3.2-54", [ 3, 2, 54 ], 552, 17,
"io_setsockopt", "X7BE641C1784D0899" ],
[ "\033[2XIO_socket\033[102X", "3.2-55", [ 3, 2, 55 ], 561, 17,
"io_socket", "X852B16CF82B96C84" ],
[ "\033[2XIO_stat\033[102X", "3.2-56", [ 3, 2, 56 ], 571, 17,
"io_stat", "X7F7D23867B45D525" ],
[ "\033[2XIO_symlink\033[102X", "3.2-57", [ 3, 2, 57 ], 579, 18,
"io_symlink", "X7B0D9CEF7A3CD431" ],
[ "\033[2XIO_telldir\033[102X", "3.2-58", [ 3, 2, 58 ], 586, 18,
"io_telldir", "X81FF8B678748900B" ],
[ "\033[2XIO_unlink\033[102X", "3.2-59", [ 3, 2, 59 ], 595, 18,
"io_unlink", "X78C93B6587B478C2" ],
[ "\033[2XIO_WaitPid\033[102X", "3.2-60", [ 3, 2, 60 ], 603, 18,
"io_waitpid", "X80737A008450184F" ],
[ "\033[2XIO_write\033[102X", "3.2-61", [ 3, 2, 61 ], 615, 18,
"io_write", "X84EB06707D1BD3F1" ],
[ "\033[2XIO_make_sockaddr_in\033[102X", "3.3-1", [ 3, 3, 1 ], 631, 18,
"io_make_sockaddr_in", "X878007A67E806CEF" ],
[ "\033[2XIO_environ\033[102X", "3.3-2", [ 3, 3, 2 ], 642, 19,
"io_environ", "X7F3E88AD7EFD52F4" ],
[ "\033[2XIO_InstallSIGCHLDHandler\033[102X", "3.3-3", [ 3, 3, 3 ],
650, 19, "io_installsigchldhandler", "X8383E62D86BE30C6" ],
[ "\033[2XIO_RestoreSIGCHLDHandler\033[102X", "3.3-4", [ 3, 3, 4 ],
660, 19, "io_restoresigchldhandler", "X7EEB7471816B64DF" ],
[ "\033[2XIsFile\033[102X", "4.1-1", [ 4, 1, 1 ], 34, 20, "isfile",
"X80C9B80A80E3A555" ],
[ "\033[2XIO_WrapFD\033[102X", "4.1-2", [ 4, 1, 2 ], 43, 20,
"io_wrapfd", "X7DDB0BA6836DA208" ],
[ "\033[2XIO_File\033[102X (mode)", "4.1-3", [ 4, 1, 3 ], 66, 21,
"io_file mode", "X7EC160D07E815DBB" ],
[ "\033[2XIO_File\033[102X (bufsize)", "4.1-3", [ 4, 1, 3 ], 66, 21,
"io_file bufsize", "X7EC160D07E815DBB" ],
[ "\033[2XIO_File\033[102X (mode and bufsize)", "4.1-3", [ 4, 1, 3 ],
66, 21, "io_file mode and bufsize", "X7EC160D07E815DBB" ],
[ "\033[2XIO_ReadUntilEOF\033[102X", "4.2-1", [ 4, 2, 1 ], 96, 21,
"io_readuntileof", "X865A873E78C822B7" ],
[ "\033[2XIO_ReadBlock\033[102X", "4.2-2", [ 4, 2, 2 ], 107, 21,
"io_readblock", "X7D2686ED854BEF95" ],
[ "\033[2XIO_ReadLine\033[102X", "4.2-3", [ 4, 2, 3 ], 122, 22,
"io_readline", "X8738708E7B9DF8DB" ],
[ "\033[2XIO_ReadLines\033[102X", "4.2-4", [ 4, 2, 4 ], 142, 22,
"io_readlines", "X81E72756806C0945" ],
[ "\033[2XIO_HasData\033[102X", "4.2-5", [ 4, 2, 5 ], 162, 22,
"io_hasdata", "X87E0AC547835F21D" ],
[ "\033[2XIO_Read\033[102X", "4.2-6", [ 4, 2, 6 ], 173, 22, "io_read",
"X84F3D862836BF17C" ],
[ "\033[2XIO_Write\033[102X", "4.2-7", [ 4, 2, 7 ], 195, 23,
"io_write", "X84EB06707D1BD3F1" ],
[ "\033[2XIO_WriteLine\033[102X", "4.2-8", [ 4, 2, 8 ], 216, 23,
"io_writeline", "X83A03ACB81F53BB1" ],
[ "\033[2XIO_WriteLines\033[102X", "4.2-9", [ 4, 2, 9 ], 227, 23,
"io_writelines", "X87CE6EC17C1573AC" ],
[ "\033[2XIO_Flush\033[102X", "4.2-10", [ 4, 2, 10 ], 238, 23,
"io_flush", "X7873A49F7CC7ECFB" ],
[ "\033[2XIO_WriteFlush\033[102X", "4.2-11", [ 4, 2, 11 ], 256, 24,
"io_writeflush", "X7870634278F6C69F" ],
[ "\033[2XIO_ReadyForWrite\033[102X", "4.2-12", [ 4, 2, 12 ], 265, 24,
"io_readyforwrite", "X80CF240F78664DF4" ],
[ "\033[2XIO_WriteNonBlocking\033[102X", "4.2-13", [ 4, 2, 13 ], 275,
24, "io_writenonblocking", "X84052F9886ADED0D" ],
[ "\033[2XIO_ReadyForFlush\033[102X", "4.2-14", [ 4, 2, 14 ], 290, 24,
"io_readyforflush", "X7C5786E07813434B" ],
[ "\033[2XIO_FlushNonBlocking\033[102X", "4.2-15", [ 4, 2, 15 ], 302,
25, "io_flushnonblocking", "X80E977B48771D207" ],
[ "\033[2XIO_Close\033[102X", "4.2-16", [ 4, 2, 16 ], 315, 25,
"io_close", "X820DA9C97C2E80BA" ],
[ "\033[2XIO_GetFD\033[102X", "4.3-1", [ 4, 3, 1 ], 329, 25,
"io_getfd", "X7F893EFC7D0C7BF2" ],
[ "\033[2XIO_GetWBuf\033[102X", "4.3-2", [ 4, 3, 2 ], 337, 25,
"io_getwbuf", "X86666C9681EA7297" ],
[ "\033[2XIO_Select\033[102X", "4.3-3", [ 4, 3, 3 ], 348, 25,
"io_select", "X81CA6EE88062010E" ],
[ "\033[2XIO_ListDir\033[102X", "4.3-4", [ 4, 3, 4 ], 375, 26,
"io_listdir", "X84B16DB878265F02" ],
[ "\033[2XChangeCurrentDirectory\033[102X", "4.3-5", [ 4, 3, 5 ], 384,
26, "changecurrentdirectory", "X7D849D987800A0F6" ],
[ "\033[2XIO_MakeIPAddressPort\033[102X", "4.3-6", [ 4, 3, 6 ], 396,
26, "io_makeipaddressport", "X8568CE6684C90CE5" ],
[ "\033[2XIO_Environment\033[102X", "4.3-7", [ 4, 3, 7 ], 409, 26,
"io_environment", "X7F9AAE018474E1D8" ],
[ "\033[2XIO_MakeEnvList\033[102X", "4.3-8", [ 4, 3, 8 ], 421, 27,
"io_makeenvlist", "X7CF3DB5081A91600" ],
[ "\033[2XIO_FindExecutable\033[102X", "4.4-1", [ 4, 4, 1 ], 432, 27,
"io_findexecutable", "X84E91FE27A7860F3" ],
[ "\033[2XIO_CloseAllFDs\033[102X", "4.4-2", [ 4, 4, 2 ], 447, 27,
"io_closeallfds", "X7C43017E7AC5973A" ],
[ "\033[2XIO_Popen\033[102X", "4.4-3", [ 4, 4, 3 ], 455, 27,
"io_popen", "X7891F56386C008CE" ],
[ "\033[2XIO_Popen2\033[102X", "4.4-4", [ 4, 4, 4 ], 490, 28,
"io_popen2", "X7E05CF6481CBC0A1" ],
[ "\033[2XIO_Popen3\033[102X", "4.4-5", [ 4, 4, 5 ], 520, 28,
"io_popen3", "X7975BC6D80BC71E5" ],
[ "\033[2XIO_StartPipeline\033[102X", "4.4-6", [ 4, 4, 6 ], 550, 28,
"io_startpipeline", "X813219C17FB54731" ],
[ "\033[2XIO_StringFilterFile\033[102X", "4.4-7", [ 4, 4, 7 ], 581, 29,
"io_stringfilterfile", "X86D61FAE871B23E8" ],
[ "\033[2XIO_FileFilterString\033[102X (append)", "4.4-8", [ 4, 4, 8 ],
591, 29, "io_filefilterstring append", "X83E765D783531845" ],
[ "\033[2XIO_FilteredFile\033[102X", "4.4-9", [ 4, 4, 9 ], 603, 29,
"io_filteredfile", "X801CE3708656FB00" ],
[ "\033[2XIO_SendStringBackground\033[102X", "4.4-10", [ 4, 4, 10 ],
625, 30, "io_sendstringbackground", "X7D62E9C57F1F96FB" ],
[ "\033[2XIO_PipeThrough\033[102X", "4.4-11", [ 4, 4, 11 ], 658, 30,
"io_pipethrough", "X8484B0CD7836A19E" ],
[ "\033[2XIO_PipeThroughWithError\033[102X", "4.4-12", [ 4, 4, 12 ],
677, 30, "io_pipethroughwitherror", "X7A9ACA3979635506" ],
[ "\033[2XIO_Error\033[102X", "5.1-1", [ 5, 1, 1 ], 24, 32, "io_error",
"X86E06A128511BA25" ],
[ "\033[2XIO_Nothing\033[102X", "5.1-2", [ 5, 1, 2 ], 30, 32,
"io_nothing", "X7887BFCF824B439B" ],
[ "\033[2XIO_OK\033[102X", "5.1-3", [ 5, 1, 3 ], 37, 32, "io_ok",
"X7D4D092B8401EA0F" ],
[ "\033[2XIO_Pickle\033[102X", "5.2-1", [ 5, 2, 1 ], 50, 33,
"io_pickle", "X7E01770481297DF1" ],
[ "\033[2XIO_Unpickle\033[102X", "5.2-2", [ 5, 2, 2 ], 75, 33,
"io_unpickle", "X8228EE63809A6DEF" ],
[ "\033[2XIO_ClearPickleCache\033[102X", "5.2-3", [ 5, 2, 3 ], 86, 33,
"io_clearpicklecache", "X844736FB80F6EE97" ],
[ "\033[2XRandomSource\033[102X", "6.1-1", [ 6, 1, 1 ], 14, 35,
"randomsource", "X7CB0B5BC82F8FD8F" ],
[ "\033[2XOpenHTTPConnection\033[102X", "7.1-1", [ 7, 1, 1 ], 12, 36,
"openhttpconnection", "X7B5588D5856BE6DD" ],
[ "\033[2XHTTPRequest\033[102X", "7.1-2", [ 7, 1, 2 ], 31, 36,
"httprequest", "X80FF9E307BDA0659" ],
[ "\033[2XHTTPTimeoutForSelect\033[102X", "7.1-3", [ 7, 1, 3 ], 79, 37,
"httptimeoutforselect", "X83526BF378B3D8F2" ],
[ "\033[2XCloseHTTPConnection\033[102X", "7.1-4", [ 7, 1, 4 ], 95, 37,
"closehttpconnection", "X81702FA07F2AF472" ],
[ "\033[2XSingleHTTPRequest\033[102X", "7.1-5", [ 7, 1, 5 ], 103, 38,
"singlehttprequest", "X7DBCB0B4801E4D6D" ],
[ "\033[2XCheckForUpdates\033[102X", "7.1-6", [ 7, 1, 6 ], 119, 38,
"checkforupdates", "X78BAF7A77F6BE631" ],
[ "\033[2XReadWeb\033[102X", "7.1-7", [ 7, 1, 7 ], 134, 38, "readweb",
"X872B174F7FFD345B" ],
[ "\033[2XBackgroundJobByFork\033[102X", "8.1-1", [ 8, 1, 1 ], 33, 39,
"backgroundjobbyfork", "X7FE0061F8484814B" ],
[ "\033[2XIsIdle\033[102X (bgjob)", "8.1-2", [ 8, 1, 2 ], 67, 40,
"isidle bgjob", "X7B7D934583257B9A" ],
[ "\033[2XHasTerminated\033[102X", "8.1-3", [ 8, 1, 3 ], 82, 40,
"hasterminated", "X86E1283D7AD05169" ],
[ "\033[2XWaitUntilIdle\033[102X", "8.1-4", [ 8, 1, 4 ], 91, 40,
"waituntilidle", "X7C139805804E6FE1" ],
[ "\033[2XPickup\033[102X (bgjob)", "8.1-5", [ 8, 1, 5 ], 101, 40,
"pickup bgjob", "X7F4B8B9078D0E18E" ],
[ "\033[2XSubmit\033[102X (bgjob)", "8.1-6", [ 8, 1, 6 ], 108, 41,
"submit bgjob", "X864492F37E858197" ],
[ "\033[2XKill\033[102X (bgjob)", "8.1-7", [ 8, 1, 7 ], 126, 41,
"kill bgjob", "X841B3A1A7967DEA4" ],
[ "\033[2XParTakeFirstResultByFork\033[102X", "8.2-1", [ 8, 2, 1 ],
144, 41, "partakefirstresultbyfork", "X78A59A628449960F" ],
[ "\033[2XParDoByFork\033[102X", "8.2-2", [ 8, 2, 2 ], 169, 42,
"pardobyfork", "X7A1F40D1841C36D2" ],
[ "\033[2XParListByFork\033[102X", "8.2-3", [ 8, 2, 3 ], 192, 42,
"parlistbyfork", "X80DA6945873DCC66" ],
[ "\033[2XParMapReduceByFork\033[102X", "8.2-4", [ 8, 2, 4 ], 210, 42,
"parmapreducebyfork", "X7AD5D85283BC41AC" ],
[ "\033[2XParWorkerFarmByFork\033[102X", "8.3-1", [ 8, 3, 1 ], 243, 43,
"parworkerfarmbyfork", "X87896E477DCB9C55" ],
[ "\033[2XDoQueues\033[102X", "8.3-2", [ 8, 3, 2 ], 257, 43,
"doqueues", "X7ED2CE687EA7FC66" ],
[ "\033[2XKill\033[102X (wfarm)", "8.3-3", [ 8, 3, 3 ], 284, 43,
"kill wfarm", "X83289405792FF902" ],
[ "\033[2XIsIdle\033[102X (wfarm)", "8.3-4", [ 8, 3, 4 ], 293, 43,
"isidle wfarm", "X7C4E3D5A7FE617FE" ],
[ "\033[2XSubmit\033[102X (wfarm)", "8.3-5", [ 8, 3, 5 ], 304, 44,
"submit wfarm", "X81773CEC8246EDF3" ],
[ "\033[2XPickup\033[102X (wfarm)", "8.3-6", [ 8, 3, 6 ], 315, 44,
"pickup wfarm", "X7878258F84138DEA" ],
[ "\033[2XIOHub\033[102X", "9.2-1", [ 9, 2, 1 ], 28, 45, "iohub",
"X83C0523D8538E866" ],
[ "\033[2XNewConnection\033[102X", "9.2-2", [ 9, 2, 2 ], 35, 45,
"newconnection", "X7D1D9A8D837ECCEB" ],
[ "\033[2XCloseConnection\033[102X", "9.2-3", [ 9, 2, 3 ], 57, 46,
"closeconnection", "X8553D2E47C05797F" ],
[ "\033[2XAttachServingSocket\033[102X", "9.2-4", [ 9, 2, 4 ], 66, 46,
"attachservingsocket", "X7F7FD824866CB582" ],
[ "\033[2XShutdownServingSocket\033[102X", "9.2-5", [ 9, 2, 5 ], 79,
46, "shutdownservingsocket", "X7866F9DA8358968C" ],
[ "\033[2XShutdown\033[102X", "9.2-6", [ 9, 2, 6 ], 87, 46, "shutdown",
"X84AFBD658118ABB8" ],
[ "\033[2XAcceptNewConnection\033[102X", "9.2-7", [ 9, 2, 7 ], 97, 46,
"acceptnewconnection", "X7BE1B9FD82C9B8E0" ],
[ "\033[2XSubmitOutput\033[102X", "9.2-8", [ 9, 2, 8 ], 113, 47,
"submitoutput", "X85F634D4826D89F1" ],
[ "\033[2XGetInput\033[102X", "9.2-9", [ 9, 2, 9 ], 125, 47,
"getinput", "X837629707DF9B60E" ],
[ "\033[2XNewTCPConnection\033[102X", "9.2-10", [ 9, 2, 10 ], 140, 47,
"newtcpconnection", "X79031BC687502CB6" ],
[ "\033[2XOutputQueue\033[102X", "9.2-11", [ 9, 2, 11 ], 153, 47,
"outputqueue", "X7F8C7F5782213A71" ],
[ "\033[2XInputQueue\033[102X", "9.2-12", [ 9, 2, 12 ], 164, 48,
"inputqueue", "X7972FF1C7B59D0A4" ],
[ "\033[2XDoIO\033[102X", "9.2-13", [ 9, 2, 13 ], 175, 48, "doio",
"X810D418A802D09D1" ] ],
sixcount := [ [ 0, 0, 0 ], [ 0, 0, 1 ], [ 0, 0, 2 ], [ 1, 0, 0 ],
[ 1, 0, 0 ], [ 2, 0, 0 ], [ 2, 1, 0 ], [ 3, 0, 0 ], [ 3, 1, 0 ],
[ 3, 2, 0 ], [ 3, 2, 1 ], [ 3, 2, 2 ], [ 3, 2, 3 ], [ 3, 2, 4 ],
[ 3, 2, 5 ], [ 3, 2, 6 ], [ 3, 2, 7 ], [ 3, 2, 8 ], [ 3, 2, 9 ],
[ 3, 2, 10 ], [ 3, 2, 11 ], [ 3, 2, 12 ], [ 3, 2, 13 ], [ 3, 2, 14 ],
[ 3, 2, 15 ], [ 3, 2, 16 ], [ 3, 2, 17 ], [ 3, 2, 18 ], [ 3, 2, 19 ],
[ 3, 2, 20 ], [ 3, 2, 21 ], [ 3, 2, 22 ], [ 3, 2, 23 ], [ 3, 2, 24 ],
[ 3, 2, 25 ], [ 3, 2, 26 ], [ 3, 2, 27 ], [ 3, 2, 28 ], [ 3, 2, 29 ],
[ 3, 2, 30 ], [ 3, 2, 31 ], [ 3, 2, 32 ], [ 3, 2, 33 ], [ 3, 2, 34 ],
[ 3, 2, 35 ], [ 3, 2, 36 ], [ 3, 2, 37 ], [ 3, 2, 38 ], [ 3, 2, 39 ],
[ 3, 2, 40 ], [ 3, 2, 41 ], [ 3, 2, 42 ], [ 3, 2, 43 ], [ 3, 2, 44 ],
[ 3, 2, 45 ], [ 3, 2, 46 ], [ 3, 2, 47 ], [ 3, 2, 48 ], [ 3, 2, 49 ],
[ 3, 2, 50 ], [ 3, 2, 51 ], [ 3, 2, 52 ], [ 3, 2, 53 ], [ 3, 2, 54 ],
[ 3, 2, 55 ], [ 3, 2, 56 ], [ 3, 2, 57 ], [ 3, 2, 58 ], [ 3, 2, 59 ],
[ 3, 2, 60 ], [ 3, 2, 61 ], [ 3, 3, 0 ], [ 3, 3, 1 ], [ 3, 3, 2 ],
[ 3, 3, 3 ], [ 3, 3, 4 ], [ 4, 0, 0 ], [ 4, 1, 0 ], [ 4, 1, 1 ],
[ 4, 1, 2 ], [ 4, 1, 3 ], [ 4, 1, 3 ], [ 4, 1, 3 ], [ 4, 2, 0 ],
[ 4, 2, 1 ], [ 4, 2, 2 ], [ 4, 2, 3 ], [ 4, 2, 4 ], [ 4, 2, 5 ],
[ 4, 2, 6 ], [ 4, 2, 7 ], [ 4, 2, 8 ], [ 4, 2, 9 ], [ 4, 2, 10 ],
[ 4, 2, 11 ], [ 4, 2, 12 ], [ 4, 2, 13 ], [ 4, 2, 14 ], [ 4, 2, 15 ],
[ 4, 2, 16 ], [ 4, 3, 0 ], [ 4, 3, 1 ], [ 4, 3, 2 ], [ 4, 3, 3 ],
[ 4, 3, 4 ], [ 4, 3, 5 ], [ 4, 3, 6 ], [ 4, 3, 7 ], [ 4, 3, 8 ],
[ 4, 4, 0 ], [ 4, 4, 1 ], [ 4, 4, 2 ], [ 4, 4, 3 ], [ 4, 4, 4 ],
[ 4, 4, 5 ], [ 4, 4, 6 ], [ 4, 4, 7 ], [ 4, 4, 8 ], [ 4, 4, 9 ],
[ 4, 4, 10 ], [ 4, 4, 11 ], [ 4, 4, 12 ], [ 5, 0, 0 ], [ 5, 1, 0 ],
[ 5, 1, 1 ], [ 5, 1, 2 ], [ 5, 1, 3 ], [ 5, 2, 0 ], [ 5, 2, 1 ],
[ 5, 2, 2 ], [ 5, 2, 3 ], [ 5, 3, 0 ], [ 6, 0, 0 ], [ 6, 1, 0 ],
[ 6, 1, 1 ], [ 7, 0, 0 ], [ 7, 1, 0 ], [ 7, 1, 1 ], [ 7, 1, 2 ],
[ 7, 1, 3 ], [ 7, 1, 4 ], [ 7, 1, 5 ], [ 7, 1, 6 ], [ 7, 1, 7 ],
[ 8, 0, 0 ], [ 8, 1, 0 ], [ 8, 1, 1 ], [ 8, 1, 2 ], [ 8, 1, 3 ],
[ 8, 1, 4 ], [ 8, 1, 5 ], [ 8, 1, 6 ], [ 8, 1, 7 ], [ 8, 2, 0 ],
[ 8, 2, 1 ], [ 8, 2, 2 ], [ 8, 2, 3 ], [ 8, 2, 4 ], [ 8, 3, 0 ],
[ 8, 3, 1 ], [ 8, 3, 2 ], [ 8, 3, 3 ], [ 8, 3, 4 ], [ 8, 3, 5 ],
[ 8, 3, 6 ], [ 9, 0, 0 ], [ 9, 1, 0 ], [ 9, 2, 0 ], [ 9, 2, 1 ],
[ 9, 2, 2 ], [ 9, 2, 3 ], [ 9, 2, 4 ], [ 9, 2, 5 ], [ 9, 2, 6 ],
[ 9, 2, 7 ], [ 9, 2, 8 ], [ 9, 2, 9 ], [ 9, 2, 10 ], [ 9, 2, 11 ],
[ 9, 2, 12 ], [ 9, 2, 13 ], [ 9, 3, 0 ], [ 10, 0, 0 ], [ 10, 1, 0 ],
[ 10, 2, 0 ], [ 10, 3, 0 ], [ 10, 4, 0 ], [ 10, 5, 0 ], [ 11, 0, 0 ],
[ "Ind", 0, 0 ] ],
sixindex := [ 1, 2, 3, 4, 40, 5, 6, 7, 8, 9, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 10, 102, 103, 104, 105, 11, 12, 106, 107, 108, 109, 110, 13, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
126, 14, 127, 128, 129, 130, 131, 132, 133, 134, 15, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 145, 146, 16, 17, 147, 148, 149, 18,
150, 151, 152, 19, 20, 21, 153, 22, 23, 154, 155, 156, 157, 158, 159,
160, 24, 25, 161, 162, 163, 164, 165, 166, 167, 26, 168, 169, 170, 171,
27, 172, 173, 174, 175, 176, 177, 28, 29, 30, 178, 179, 180, 181, 182,
183, 184, 185, 186, 187, 188, 189, 190, 31, 32, 33, 34, 35, 36, 37, 38,
39 ], start := 0, stop := 126603,
toctext := "<div class=\"ContChap\"><a href=\"chap1.html#X874E1D45845007FE\"\
>1 <span class=\"Heading\">Preface</span></a>\n</div>\n<div class=\"ContChap\"\
><a href=\"chap2.html#X87D1C7D0861CBE25\">2 <span class=\"Heading\">Installati\
on of the <strong class=\"pkg\">IO</strong>-package</span></a>\n<div class=\"C\
ontSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\
\"chap2.html#X7FB00ED2787027A3\">2.1 <span class=\"Heading\">Recompiling the d\
ocumentation</span></a>\n</span>\n</div>\n</div>\n<div class=\"ContChap\"><a h\
ref=\"chap3.html#X85DE7F82801DDA50\">3 <span class=\"Heading\">Functions direc\
tly available from the C library</span></a>\n<div class=\"ContSect\"><span cla\
ss=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap3.html#X85D355\
1379BA32FC\">3.1 <span class=\"Heading\">Differences in arguments - an overvie\
w</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"\
><span class=\"nocss\"> </span><a href=\"chap3.html#X800F9F3E810A7228\">3\
.2 <span class=\"Heading\">The low-level functions in detail</span></a>\n</spa\
n>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap3.html#X7E474E9787012FE4\">3.2-1 IO_acc\
ept</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap3.html#X791A6341852001F8\">3.2-2 IO_bind</a></span>\n<sp\
an class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"c\
hap3.html#X790139B37E87FA61\">3.2-3 IO_chdir</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X83D4CB\
2681674FA4\">3.2-4 IO_chmod</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap3.html#X85C0617479E4D952\">3.2-5\
IO_chown</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X820DA9C97C2E80BA\">3.2-6 IO_close</a></spa\
n>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a h\
ref=\"chap3.html#X8078699B84F082A4\">3.2-7 IO_closedir</a></span>\n<span class\
=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.htm\
l#X7DE9D8B387D3A3D5\">3.2-8 IO_connect</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap3.html#X78FCF69C7FCF3\
BD7\">3.2-9 IO_creat</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap3.html#X7DAAD93A80F76681\">3.2-10 IO_du\
p</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> <\
/span><a href=\"chap3.html#X7F7B8FAC7ABA285B\">3.2-11 IO_dup2</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap3.html#X7B30A7FA84692EC5\">3.2-12 IO_execv</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X875D9A\
9E8201D461\">3.2-13 IO_execve</a></span>\n<span class=\"ContSS\"><br /><span c\
lass=\"nocss\"> </span><a href=\"chap3.html#X818044D07C64A412\">3.2\
-14 IO_execvp</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&\
nbsp; </span><a href=\"chap3.html#X843634347E88C357\">3.2-15 IO_exit</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap3.html#X7F08E1187BDB619A\">3.2-16 IO_fchmod</a></span>\n<span cl\
ass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.\
html#X791C4B4A81059A88\">3.2-17 IO_fchown</a></span>\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7870647E86\
6D29A4\">3.2-18 IO_fcntl</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap3.html#X86C819F37D07ECF7\">3.2-19 I\
O_fork</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap3.html#X7E27748983EC7B5C\">3.2-20 IO_fstat</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X7DD25BDC79EE65AD\">3.2-21 IO_gethostbyname</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3\
.html#X7B7164EF8307D26B\">3.2-22 IO_gethostname</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7ECF\
948083E38BD0\">3.2-23 IO_getpid</a></span>\n<span class=\"ContSS\"><br /><span\
class=\"nocss\"> </span><a href=\"chap3.html#X7EC6ABAB7AB9F40F\">3\
.2-24 IO_getppid</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X877A161482FC1769\">3.2-25 IO_getso\
ckname</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap3.html#X790213D885BAB495\">3.2-26 IO_getsockopt</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap3.html#X7BC965198011083B\">3.2-27 IO_gettimeofday</a></span>\n<sp\
an class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"c\
hap3.html#X7DC156EA86F3F356\">3.2-28 IO_gmtime</a></span>\n<span class=\"ContS\
S\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7D043\
9128512FBF6\">3.2-29 IO_kill</a></span>\n<span class=\"ContSS\"><br /><span cl\
ass=\"nocss\"> </span><a href=\"chap3.html#X8305F97C87FE448E\">3.2-\
30 IO_lchown</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&n\
bsp; </span><a href=\"chap3.html#X7E1C65EB84497185\">3.2-31 IO_link</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap3.html#X7957063B807025C7\">3.2-32 IO_listen</a></span>\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.h\
tml#X7B7D3D64805F335F\">3.2-33 IO_localtime</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X85C47518\
7C824830\">3.2-34 IO_lseek</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap3.html#X7A8C75038517A55A\">3.2-35\
IO_lstat</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X83D968AB84F00ABF\">3.2-36 IO_mkdir</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap3.html#X80BFF17A8099815F\">3.2-37 IO_mkfifo</a></span>\n<span class\
=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.htm\
l#X7928F1DB8379F850\">3.2-38 IO_mknod</a></span>\n<span class=\"ContSS\"><br /\
><span class=\"nocss\"> </span><a href=\"chap3.html#X8731A44E8032D9\
D2\">3.2-39 IO_open</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X78E234797EB01883\">3.2-40 IO_ope\
ndir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap3.html#X7C8F0A44837BBE8C\">3.2-41 IO_pipe</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap3.html#X84F3D862836BF17C\">3.2-42 IO_read</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8410\
C6F17DE9302D\">3.2-43 IO_readdir</a></span>\n<span class=\"ContSS\"><br /><spa\
n class=\"nocss\"> </span><a href=\"chap3.html#X7943F25E7EBA9A6B\">\
3.2-44 IO_readlink</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap3.html#X78EB295E78B363B2\">3.2-45 IO_recv\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap3.html#X84C617887EE02EB4\">3.2-46 IO_recvfrom</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap3.html#X78EC95007A92AB69\">3.2-47 IO_rename</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7F\
86DBEB7876FBA5\">3.2-48 IO_rewinddir</a></span>\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap3.html#X7FA4DD537C83A19\
9\">3.2-49 IO_rmdir</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X84A98D2380BF6574\">3.2-50 IO_see\
kdir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap3.html#X81CA6EE88062010E\">3.2-51 IO_select</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X87019FD887F55C27\">3.2-52 IO_send</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X83\
88B0147B5745EC\">3.2-53 IO_sendto</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap3.html#X7BE641C1784D0899\"\
>3.2-54 IO_setsockopt</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap3.html#X852B16CF82B96C84\">3.2-55 IO_s\
ocket</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nb\
sp;</span><a href=\"chap3.html#X7F7D23867B45D525\">3.2-56 IO_stat</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap3.html#X7B0D9CEF7A3CD431\">3.2-57 IO_symlink</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8\
1FF8B678748900B\">3.2-58 IO_telldir</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X78C93B6587B478C2\
\">3.2-59 IO_unlink</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X80737A008450184F\">3.2-60 IO_Wai\
tPid</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap3.html#X84EB06707D1BD3F1\">3.2-61 IO_write</a></span>\n\
</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"no\
css\"> </span><a href=\"chap3.html#X85065AD381BD8E0F\">3.3 <span class=\"\
Heading\">Further C level functions</span></a>\n</span>\n<div class=\"ContSSBl\
ock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap3.html#X878007A67E806CEF\">3.3-1 IO_make_sockaddr_in</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X7F3E88AD7EFD52F4\">3.3-2 IO_environ</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X\
8383E62D86BE30C6\">3.3-3 IO_InstallSIGCHLDHandler</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7E\
EB7471816B64DF\">3.3-4 IO_RestoreSIGCHLDHandler</a></span>\n</div></div>\n</di\
v>\n<div class=\"ContChap\"><a href=\"chap4.html#X7D6A3F7178CB6169\">4 <span c\
lass=\"Heading\">High level functions for buffered I/O</span></a>\n<div class=\
\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a hre\
f=\"chap4.html#X7F697A8884B57F27\">4.1 <span class=\"Heading\">Types and the c\
reation of <code class=\"code\">File</code> objects</span></a>\n</span>\n<div \
class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap4.html#X80C9B80A80E3A555\">4.1-1 IsFile</a></spa\
n>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a h\
ref=\"chap4.html#X7DDB0BA6836DA208\">4.1-2 IO_WrapFD</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html\
#X7EC160D07E815DBB\">4.1-3 IO_File</a></span>\n</div></div>\n<div class=\"Cont\
Sect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"ch\
ap4.html#X818FA8A37C8BBB95\">4.2 <span class=\"Heading\">Reading and writing</\
span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap4.html#X865A873E78C822B\
7\">4.2-1 IO_ReadUntilEOF</a></span>\n<span class=\"ContSS\"><br /><span class\
=\"nocss\"> </span><a href=\"chap4.html#X7D2686ED854BEF95\">4.2-2 I\
O_ReadBlock</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap4.html#X8738708E7B9DF8DB\">4.2-3 IO_ReadLine</a>\
</span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span\
><a href=\"chap4.html#X81E72756806C0945\">4.2-4 IO_ReadLines</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p4.html#X87E0AC547835F21D\">4.2-5 IO_HasData</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X84F3D8\
62836BF17C\">4.2-6 IO_Read</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap4.html#X84EB06707D1BD3F1\">4.2-7 \
IO_Write</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap4.html#X83A03ACB81F53BB1\">4.2-8 IO_WriteLine</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap4.html#X87CE6EC17C1573AC\">4.2-9 IO_WriteLines</a></span>\n<span \
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap\
4.html#X7873A49F7CC7ECFB\">4.2-10 IO_Flush</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap4.html#X787063427\
8F6C69F\">4.2-11 IO_WriteFlush</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap4.html#X80CF240F78664DF4\">4.\
2-12 IO_ReadyForWrite</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap4.html#X84052F9886ADED0D\">4.2-13 IO_W\
riteNonBlocking</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"\
> </span><a href=\"chap4.html#X7C5786E07813434B\">4.2-14 IO_ReadyFo\
rFlush</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap4.html#X80E977B48771D207\">4.2-15 IO_FlushNonBlocking\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap4.html#X820DA9C97C2E80BA\">4.2-16 IO_Close</a></span>\n</di\
v></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap4.html#X87C3D1B984960984\">4.3 <span class=\"Hea\
ding\">Other functions</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p4.html#X7F893EFC7D0C7BF2\">4.3-1 IO_GetFD</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap4.html#X86666C968\
1EA7297\">4.3-2 IO_GetWBuf</a></span>\n<span class=\"ContSS\"><br /><span clas\
s=\"nocss\"> </span><a href=\"chap4.html#X81CA6EE88062010E\">4.3-3 \
IO_Select</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap4.html#X84B16DB878265F02\">4.3-4 IO_ListDir</a></s\
pan>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a\
href=\"chap4.html#X7D849D987800A0F6\">4.3-5 ChangeCurrentDirectory</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap4.html#X8568CE6684C90CE5\">4.3-6 IO_MakeIPAddressPort</a></span>\n<spa\
n class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"ch\
ap4.html#X7F9AAE018474E1D8\">4.3-7 IO_Environment</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X7C\
F3DB5081A91600\">4.3-8 IO_MakeEnvList</a></span>\n</div></div>\n<div class=\"C\
ontSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\
\"chap4.html#X85BB2BA684485CD6\">4.4 <span class=\"Heading\">Inter process com\
munication</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"Con\
tSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X84E\
91FE27A7860F3\">4.4-1 IO_FindExecutable</a></span>\n<span class=\"ContSS\"><br\
/><span class=\"nocss\"> </span><a href=\"chap4.html#X7C43017E7AC5\
973A\">4.4-2 IO_CloseAllFDs</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap4.html#X7891F56386C008CE\">4.4-3\
IO_Popen</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap4.html#X7E05CF6481CBC0A1\">4.4-4 IO_Popen2</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap4.html#X7975BC6D80BC71E5\">4.4-5 IO_Popen3</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html\
#X813219C17FB54731\">4.4-6 IO_StartPipeline</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X86D61FAE\
871B23E8\">4.4-7 IO_StringFilterFile</a></span>\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap4.html#X83E765D78353184\
5\">4.4-8 IO_FileFilterString</a></span>\n<span class=\"ContSS\"><br /><span c\
lass=\"nocss\"> </span><a href=\"chap4.html#X801CE3708656FB00\">4.4\
-9 IO_FilteredFile</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap4.html#X7D62E9C57F1F96FB\">4.4-10 IO_Send\
StringBackground</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap4.html#X8484B0CD7836A19E\">4.4-11 IO_PipeT\
hrough</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap4.html#X7A9ACA3979635506\">4.4-12 IO_PipeThroughWithE\
rror</a></span>\n</div></div>\n</div>\n<div class=\"ContChap\"><a href=\"chap5\
.html#X81BBA46880EBFC7D\">5 <span class=\"Heading\">Object serialisation (Pick\
ling)</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\
\"nocss\"> </span><a href=\"chap5.html#X7E504814811605B7\">5.1 <span clas\
s=\"Heading\">Result objects</span></a>\n</span>\n<div class=\"ContSSBlock\">\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap5.html#X86E06A128511BA25\">5.1-1 IO_Error</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap5.html#X78\
87BFCF824B439B\">5.1-2 IO_Nothing</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap5.html#X7D4D092B8401EA0F\"\
>5.1-3 IO_OK</a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\"t\
ocline\"><span class=\"nocss\"> </span><a href=\"chap5.html#X7F68A8F47F87\
B243\">5.2 <span class=\"Heading\">Pickling and unpickling</span></a>\n</span>\
\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap5.html#X7E01770481297DF1\">5.2-1 IO_Pickl\
e</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> <\
/span><a href=\"chap5.html#X8228EE63809A6DEF\">5.2-2 IO_Unpickle</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap5.html#X844736FB80F6EE97\">5.2-3 IO_ClearPickleCache</a></span>\n</div><\
/div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\">&\
nbsp;</span><a href=\"chap5.html#X7B1C9A9C7D3C0312\">5.3 <span class=\"Heading\
\">Extending the pickling framework</span></a>\n</span>\n</div>\n</div>\n<div \
class=\"ContChap\"><a href=\"chap6.html#X78A8811F7BD55ABA\">6 <span class=\"He\
ading\">Really random sources</span></a>\n<div class=\"ContSect\"><span class=\
\"tocline\"><span class=\"nocss\"> </span><a href=\"chap6.html#X8173135A7\
D187358\">6.1 <span class=\"Heading\">The functions</span></a>\n</span>\n<div \
class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap6.html#X7CB0B5BC82F8FD8F\">6.1-1 RandomSource</a\
></span>\n</div></div>\n</div>\n<div class=\"ContChap\"><a href=\"chap7.html#X\
79DA05BB7CCC1749\">7 <span class=\"Heading\">A client side implementation of t\
he HTTP protocol</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><\
span class=\"nocss\"> </span><a href=\"chap7.html#X7E8B5F0A87F2C1F7\">7.1\
<span class=\"Heading\">Functions for client side HTTP</span></a>\n</span>\n<\
div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"\
> </span><a href=\"chap7.html#X7B5588D5856BE6DD\">7.1-1 OpenHTTPCon\
nection</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &\
nbsp;</span><a href=\"chap7.html#X80FF9E307BDA0659\">7.1-2 HTTPRequest</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap7.html#X83526BF378B3D8F2\">7.1-3 HTTPTimeoutForSelect</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap7.html#X81702FA07F2AF472\">7.1-4 CloseHTTPConnection</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap7\
.html#X7DBCB0B4801E4D6D\">7.1-5 SingleHTTPRequest</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap7.html#X78\
BAF7A77F6BE631\">7.1-6 CheckForUpdates</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap7.html#X872B174F7FFD3\
45B\">7.1-7 ReadWeb</a></span>\n</div></div>\n</div>\n<div class=\"ContChap\">\
<a href=\"chap8.html#X7E9E9B3F7B585BA7\">8 <span class=\"Heading\">Background \
jobs using fork</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><s\
pan class=\"nocss\"> </span><a href=\"chap8.html#X7CCAF66D7E7E098E\">8.1 \
<span class=\"Heading\">Background jobs</span></a>\n</span>\n<div class=\"Cont\
SSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </s\
pan><a href=\"chap8.html#X7FE0061F8484814B\">8.1-1 BackgroundJobByFork</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap8.html#X7B7D934583257B9A\">8.1-2 IsIdle</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html#X8\
6E1283D7AD05169\">8.1-3 HasTerminated</a></span>\n<span class=\"ContSS\"><br /\
><span class=\"nocss\"> </span><a href=\"chap8.html#X7C139805804E6F\
E1\">8.1-4 WaitUntilIdle</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap8.html#X7F4B8B9078D0E18E\">8.1-5 Pi\
ckup</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap8.html#X864492F37E858197\">8.1-6 Submit</a></span>\n<sp\
an class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"c\
hap8.html#X841B3A1A7967DEA4\">8.1-7 Kill</a></span>\n</div></div>\n<div class=\
\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a hre\
f=\"chap8.html#X7AF7D78B7F6F1212\">8.2 <span class=\"Heading\">Parallel progra\
mming skeletons</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html\
#X78A59A628449960F\">8.2-1 ParTakeFirstResultByFork</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html#X\
7A1F40D1841C36D2\">8.2-2 ParDoByFork</a></span>\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap8.html#X80DA6945873DCC6\
6\">8.2-3 ParListByFork</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap8.html#X7AD5D85283BC41AC\">8.2-4 Pa\
rMapReduceByFork</a></span>\n</div></div>\n<div class=\"ContSect\"><span class\
=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap8.html#X7D18519B\
879047B3\">8.3 <span class=\"Heading\">Worker farms</span></a>\n</span>\n<div \
class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap8.html#X87896E477DCB9C55\">8.3-1 ParWorkerFarmBy\
Fork</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap8.html#X7ED2CE687EA7FC66\">8.3-2 DoQueues</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap8.html#X83289405792FF902\">8.3-3 Kill</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap8.html#X7C4E3D5A\
7FE617FE\">8.3-4 IsIdle</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap8.html#X81773CEC8246EDF3\">8.3-5 Su\
bmit</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap8.html#X7878258F84138DEA\">8.3-6 Pickup</a></span>\n</d\
iv></div>\n</div>\n<div class=\"ContChap\"><a href=\"chap9.html#X7A466B907B882\
CA0\">9 <span class=\"Heading\">I/O multiplexing</span></a>\n<div class=\"Cont\
Sect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"ch\
ap9.html#X7DFB63A97E67C0A1\">9.1 <span class=\"Heading\">Introduction</span></\
a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"><span cla\
ss=\"nocss\"> </span><a href=\"chap9.html#X853D93B47EA82379\">9.2 <span c\
lass=\"Heading\">The operations for <code class=\"code\">IOHub</code> objects<\
/span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /\
><span class=\"nocss\"> </span><a href=\"chap9.html#X83C0523D8538E8\
66\">9.2-1 IOHub</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap9.html#X7D1D9A8D837ECCEB\">9.2-2 NewConnec\
tion</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap9.html#X8553D2E47C05797F\">9.2-3 CloseConnection</a></s\
pan>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a\
href=\"chap9.html#X7F7FD824866CB582\">9.2-4 AttachServingSocket</a></span>\n<\
span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap9.html#X7866F9DA8358968C\">9.2-5 ShutdownServingSocket</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p9.html#X84AFBD658118ABB8\">9.2-6 Shutdown</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap9.html#X7BE1B9FD8\
2C9B8E0\">9.2-7 AcceptNewConnection</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap9.html#X85F634D4826D89F1\
\">9.2-8 SubmitOutput</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap9.html#X837629707DF9B60E\">9.2-9 GetIn\
put</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap9.html#X79031BC687502CB6\">9.2-10 NewTCPConnection</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap9.html#X7F8C7F5782213A71\">9.2-11 OutputQueue</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9\
.html#X7972FF1C7B59D0A4\">9.2-12 InputQueue</a></span>\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap9.html#X810D418A\
802D09D1\">9.2-13 DoIO</a></span>\n</div></div>\n<div class=\"ContSect\"><span\
class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap9.html#X7A\
489A5D79DA9E5C\">9.3 <span class=\"Heading\"> Examples </span></a>\n</span>\n<\
/div>\n</div>\n<div class=\"ContChap\"><a href=\"chap10.html#X7EADF566874177D8\
\">10 <span class=\"Heading\">Examples of usage</span></a>\n<div class=\"ContS\
ect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"cha\
p10.html#X7EC25CA68794860A\">10.1 <span class=\"Heading\">Writing and reading \
a file</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"tocl\
ine\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7AECE665813D6E\
4D\">10.2 <span class=\"Heading\">Using filtering programs to read and write f\
iles</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"toclin\
e\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7A8A180D7B335151\
\">10.3 <span class=\"Heading\">Using filters when reading or writing files se\
quentially</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"\
tocline\"><span class=\"nocss\"> </span><a href=\"chap10.html#X7BD2BF7F87\
573C69\">10.4 <span class=\"Heading\">Accessing a web page</span></a>\n</span>\
\n</div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap10.html#X81BD8400832EE20B\">10.5 <span class=\"H\
eading\">(Un-)Pickling</span></a>\n</span>\n</div>\n</div>\n<div class=\"ContC\
hap\"><a href=\"chap11.html#X861E5DF986F89AE2\">11 <span class=\"Heading\">Lic\
ense</span></a>\n</div>\n<div class=\"ContChap\"><a href=\"chapInd.html\"><spa\
n class=\"Heading\">Index</span></a></div>\n<div class=\"ContChap\"><a href=\"\
chap1.html#X874E1D45845007FE\">1 <span class=\"Heading\">Preface</span></a>\n<\
/div>\n<div class=\"ContChap\"><a href=\"chap2.html#X87D1C7D0861CBE25\">2 <spa\
n class=\"Heading\">Installation of the <strong class=\"pkg\">IO</strong>-pack\
age</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"\
nocss\"> </span><a href=\"chap2.html#X7FB00ED2787027A3\">2.1 <span class=\
\"Heading\">Recompiling the documentation</span></a>\n</span>\n</div>\n</div>\
\n<div class=\"ContChap\"><a href=\"chap3.html#X85DE7F82801DDA50\">3 <span cla\
ss=\"Heading\">Functions directly available from the C library</span></a>\n<di\
v class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </spa\
n><a href=\"chap3.html#X85D3551379BA32FC\">3.1 <span class=\"Heading\">Differe\
nces in arguments - an overview</span></a>\n</span>\n</div>\n<div class=\"Cont\
Sect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"ch\
ap3.html#X800F9F3E810A7228\">3.2 <span class=\"Heading\">The low-level functio\
ns in detail</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7\
E474E9787012FE4\">3.2-1 IO_accept</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap3.html#X791A6341852001F8\"\
>3.2-2 IO_bind</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap3.html#X790139B37E87FA61\">3.2-3 IO_chdir</a>\
</span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span\
><a href=\"chap3.html#X83D4CB2681674FA4\">3.2-4 IO_chmod</a></span>\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.h\
tml#X85C0617479E4D952\">3.2-5 IO_chown</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap3.html#X820DA9C97C2E8\
0BA\">3.2-6 IO_close</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap3.html#X8078699B84F082A4\">3.2-7 IO_clo\
sedir</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nb\
sp;</span><a href=\"chap3.html#X7DE9D8B387D3A3D5\">3.2-8 IO_connect</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X78FCF69C7FCF3BD7\">3.2-9 IO_creat</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7D\
AAD93A80F76681\">3.2-10 IO_dup</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap3.html#X7F7B8FAC7ABA285B\">3.\
2-11 IO_dup2</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&n\
bsp; </span><a href=\"chap3.html#X7B30A7FA84692EC5\">3.2-12 IO_execv</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap3.html#X875D9A9E8201D461\">3.2-13 IO_execve</a></span>\n<span cl\
ass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.\
html#X818044D07C64A412\">3.2-14 IO_execvp</a></span>\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap3.html#X843634347E\
88C357\">3.2-15 IO_exit</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap3.html#X7F08E1187BDB619A\">3.2-16 I\
O_fchmod</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X791C4B4A81059A88\">3.2-17 IO_fchown</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap3.html#X7870647E866D29A4\">3.2-18 IO_fcntl</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html\
#X86C819F37D07ECF7\">3.2-19 IO_fork</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X7E27748983EC7B5C\
\">3.2-20 IO_fstat</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap3.html#X7DD25BDC79EE65AD\">3.2-21 IO_geth\
ostbyname</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
; </span><a href=\"chap3.html#X7B7164EF8307D26B\">3.2-22 IO_gethostname</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap3.html#X7ECF948083E38BD0\">3.2-23 IO_getpid</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p3.html#X7EC6ABAB7AB9F40F\">3.2-24 IO_getppid</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X877A16\
1482FC1769\">3.2-25 IO_getsockname</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap3.html#X790213D885BAB495\
\">3.2-26 IO_getsockopt</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap3.html#X7BC965198011083B\">3.2-27 I\
O_gettimeofday</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap3.html#X7DC156EA86F3F356\">3.2-28 IO_gmtime</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap3.html#X7D0439128512FBF6\">3.2-29 IO_kill</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3\
.html#X8305F97C87FE448E\">3.2-30 IO_lchown</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap3.html#X7E1C65EB8\
4497185\">3.2-31 IO_link</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap3.html#X7957063B807025C7\">3.2-32 I\
O_listen</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X7B7D3D64805F335F\">3.2-33 IO_localtime</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap3.html#X85C475187C824830\">3.2-34 IO_lseek</a></span>\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.h\
tml#X7A8C75038517A55A\">3.2-35 IO_lstat</a></span>\n<span class=\"ContSS\"><br\
/><span class=\"nocss\"> </span><a href=\"chap3.html#X83D968AB84F0\
0ABF\">3.2-36 IO_mkdir</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap3.html#X80BFF17A8099815F\">3.2-37 IO_\
mkfifo</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &n\
bsp;</span><a href=\"chap3.html#X7928F1DB8379F850\">3.2-38 IO_mknod</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X8731A44E8032D9D2\">3.2-39 IO_open</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X78\
E234797EB01883\">3.2-40 IO_opendir</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap3.html#X7C8F0A44837BBE8C\
\">3.2-41 IO_pipe</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X84F3D862836BF17C\">3.2-42 IO_read<\
/a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </s\
pan><a href=\"chap3.html#X8410C6F17DE9302D\">3.2-43 IO_readdir</a></span>\n<sp\
an class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"c\
hap3.html#X7943F25E7EBA9A6B\">3.2-44 IO_readlink</a></span>\n<span class=\"Con\
tSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X78E\
B295E78B363B2\">3.2-45 IO_recv</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap3.html#X84C617887EE02EB4\">3.\
2-46 IO_recvfrom</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X78EC95007A92AB69\">3.2-47 IO_renam\
e</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> <\
/span><a href=\"chap3.html#X7F86DBEB7876FBA5\">3.2-48 IO_rewinddir</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap3.html#X7FA4DD537C83A199\">3.2-49 IO_rmdir</a></span>\n<span class=\"C\
ontSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X8\
4A98D2380BF6574\">3.2-50 IO_seekdir</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X81CA6EE88062010E\
\">3.2-51 IO_select</a></span>\n<span class=\"ContSS\"><br /><span class=\"noc\
ss\"> </span><a href=\"chap3.html#X87019FD887F55C27\">3.2-52 IO_sen\
d</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> <\
/span><a href=\"chap3.html#X8388B0147B5745EC\">3.2-53 IO_sendto</a></span>\n<s\
pan class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"\
chap3.html#X7BE641C1784D0899\">3.2-54 IO_setsockopt</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X\
852B16CF82B96C84\">3.2-55 IO_socket</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap3.html#X7F7D23867B45D525\
\">3.2-56 IO_stat</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap3.html#X7B0D9CEF7A3CD431\">3.2-57 IO_symli\
nk</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X81FF8B678748900B\">3.2-58 IO_telldir</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap3.html#X78C93B6587B478C2\">3.2-59 IO_unlink</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap3.html#X80\
737A008450184F\">3.2-60 IO_WaitPid</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap3.html#X84EB06707D1BD3F1\
\">3.2-61 IO_write</a></span>\n</div></div>\n<div class=\"ContSect\"><span cla\
ss=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap3.html#X85065A\
D381BD8E0F\">3.3 <span class=\"Heading\">Further C level functions</span></a>\
\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap3.html#X878007A67E806CEF\">3.3-1\
IO_make_sockaddr_in</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap3.html#X7F3E88AD7EFD52F4\">3.3-2 IO_env\
iron</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap3.html#X8383E62D86BE30C6\">3.3-3 IO_InstallSIGCHLDHandl\
er</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap3.html#X7EEB7471816B64DF\">3.3-4 IO_RestoreSIGCHLDHandler\
</a></span>\n</div></div>\n</div>\n<div class=\"ContChap\"><a href=\"chap4.htm\
l#X7D6A3F7178CB6169\">4 <span class=\"Heading\">High level functions for buffe\
red I/O</span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span clas\
s=\"nocss\"> </span><a href=\"chap4.html#X7F697A8884B57F27\">4.1 <span cl\
ass=\"Heading\">Types and the creation of <code class=\"code\">File</code> obj\
ects</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap4.html#X80C9B80A8\
0E3A555\">4.1-1 IsFile</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap4.html#X7DDB0BA6836DA208\">4.1-2 IO_W\
rapFD</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nb\
sp;</span><a href=\"chap4.html#X7EC160D07E815DBB\">4.1-3 IO_File</a></span>\n<\
/div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"noc\
ss\"> </span><a href=\"chap4.html#X818FA8A37C8BBB95\">4.2 <span class=\"H\
eading\">Reading and writing</span></a>\n</span>\n<div class=\"ContSSBlock\">\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap4.html#X865A873E78C822B7\">4.2-1 IO_ReadUntilEOF</a></span>\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.h\
tml#X7D2686ED854BEF95\">4.2-2 IO_ReadBlock</a></span>\n<span class=\"ContSS\">\
<br /><span class=\"nocss\"> </span><a href=\"chap4.html#X8738708E7\
B9DF8DB\">4.2-3 IO_ReadLine</a></span>\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap4.html#X81E72756806C0945\">4.2-4\
IO_ReadLines</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&\
nbsp; </span><a href=\"chap4.html#X87E0AC547835F21D\">4.2-5 IO_HasData</a\
></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </spa\
n><a href=\"chap4.html#X84F3D862836BF17C\">4.2-6 IO_Read</a></span>\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.h\
tml#X84EB06707D1BD3F1\">4.2-7 IO_Write</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap4.html#X83A03ACB81F53\
BB1\">4.2-8 IO_WriteLine</a></span>\n<span class=\"ContSS\"><br /><span class=\
\"nocss\"> </span><a href=\"chap4.html#X87CE6EC17C1573AC\">4.2-9 IO\
_WriteLines</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap4.html#X7873A49F7CC7ECFB\">4.2-10 IO_Flush</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap4.html#X7870634278F6C69F\">4.2-11 IO_WriteFlush</a></span>\n<span\
class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"cha\
p4.html#X80CF240F78664DF4\">4.2-12 IO_ReadyForWrite</a></span>\n<span class=\"\
ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X\
84052F9886ADED0D\">4.2-13 IO_WriteNonBlocking</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X7C5786\
E07813434B\">4.2-14 IO_ReadyForFlush</a></span>\n<span class=\"ContSS\"><br />\
<span class=\"nocss\"> </span><a href=\"chap4.html#X80E977B48771D20\
7\">4.2-15 IO_FlushNonBlocking</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap4.html#X820DA9C97C2E80BA\">4.\
2-16 IO_Close</a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\"\
tocline\"><span class=\"nocss\"> </span><a href=\"chap4.html#X87C3D1B9849\
60984\">4.3 <span class=\"Heading\">Other functions</span></a>\n</span>\n<div \
class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nb\
sp; </span><a href=\"chap4.html#X7F893EFC7D0C7BF2\">4.3-1 IO_GetFD</a></s\
pan>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a\
href=\"chap4.html#X86666C9681EA7297\">4.3-2 IO_GetWBuf</a></span>\n<span clas\
s=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.ht\
ml#X81CA6EE88062010E\">4.3-3 IO_Select</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap4.html#X84B16DB878265\
F02\">4.3-4 IO_ListDir</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap4.html#X7D849D987800A0F6\">4.3-5 Chan\
geCurrentDirectory</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap4.html#X8568CE6684C90CE5\">4.3-6 IO_MakeI\
PAddressPort</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&n\
bsp; </span><a href=\"chap4.html#X7F9AAE018474E1D8\">4.3-7 IO_Environment\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap4.html#X7CF3DB5081A91600\">4.3-8 IO_MakeEnvList</a></span>\
\n</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"\
nocss\"> </span><a href=\"chap4.html#X85BB2BA684485CD6\">4.4 <span class=\
\"Heading\">Inter process communication</span></a>\n</span>\n<div class=\"Cont\
SSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </s\
pan><a href=\"chap4.html#X84E91FE27A7860F3\">4.4-1 IO_FindExecutable</a></span\
>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hr\
ef=\"chap4.html#X7C43017E7AC5973A\">4.4-2 IO_CloseAllFDs</a></span>\n<span cla\
ss=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.h\
tml#X7891F56386C008CE\">4.4-3 IO_Popen</a></span>\n<span class=\"ContSS\"><br \
/><span class=\"nocss\"> </span><a href=\"chap4.html#X7E05CF6481CBC\
0A1\">4.4-4 IO_Popen2</a></span>\n<span class=\"ContSS\"><br /><span class=\"n\
ocss\"> </span><a href=\"chap4.html#X7975BC6D80BC71E5\">4.4-5 IO_Po\
pen3</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nbs\
p;</span><a href=\"chap4.html#X813219C17FB54731\">4.4-6 IO_StartPipeline</a></\
span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><\
a href=\"chap4.html#X86D61FAE871B23E8\">4.4-7 IO_StringFilterFile</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap4.html#X83E765D783531845\">4.4-8 IO_FileFilterString</a></span>\n<span c\
lass=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap4\
.html#X801CE3708656FB00\">4.4-9 IO_FilteredFile</a></span>\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X7D62\
E9C57F1F96FB\">4.4-10 IO_SendStringBackground</a></span>\n<span class=\"ContSS\
\"><br /><span class=\"nocss\"> </span><a href=\"chap4.html#X8484B0\
CD7836A19E\">4.4-11 IO_PipeThrough</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap4.html#X7A9ACA3979635506\
\">4.4-12 IO_PipeThroughWithError</a></span>\n</div></div>\n</div>\n<div class\
=\"ContChap\"><a href=\"chap5.html#X81BBA46880EBFC7D\">5 <span class=\"Heading\
\">Object serialisation (Pickling)</span></a>\n<div class=\"ContSect\"><span c\
lass=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap5.html#X7E50\
4814811605B7\">5.1 <span class=\"Heading\">Result objects</span></a>\n</span>\
\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocs\
s\"> </span><a href=\"chap5.html#X86E06A128511BA25\">5.1-1 IO_Error\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap5.html#X7887BFCF824B439B\">5.1-2 IO_Nothing</a></span>\n<sp\
an class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"c\
hap5.html#X7D4D092B8401EA0F\">5.1-3 IO_OK</a></span>\n</div></div>\n<div class\
=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a hr\
ef=\"chap5.html#X7F68A8F47F87B243\">5.2 <span class=\"Heading\">Pickling and u\
npickling</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"Cont\
SS\"><br /><span class=\"nocss\"> </span><a href=\"chap5.html#X7E01\
770481297DF1\">5.2-1 IO_Pickle</a></span>\n<span class=\"ContSS\"><br /><span \
class=\"nocss\"> </span><a href=\"chap5.html#X8228EE63809A6DEF\">5.\
2-2 IO_Unpickle</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"\
> </span><a href=\"chap5.html#X844736FB80F6EE97\">5.2-3 IO_ClearPic\
kleCache</a></span>\n</div></div>\n<div class=\"ContSect\"><span class=\"tocli\
ne\"><span class=\"nocss\"> </span><a href=\"chap5.html#X7B1C9A9C7D3C0312\
\">5.3 <span class=\"Heading\">Extending the pickling framework</span></a>\n</\
span>\n</div>\n</div>\n<div class=\"ContChap\"><a href=\"chap6.html#X78A8811F7\
BD55ABA\">6 <span class=\"Heading\">Really random sources</span></a>\n<div cla\
ss=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a \
href=\"chap6.html#X8173135A7D187358\">6.1 <span class=\"Heading\">The function\
s</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br\
/><span class=\"nocss\"> </span><a href=\"chap6.html#X7CB0B5BC82F8\
FD8F\">6.1-1 RandomSource</a></span>\n</div></div>\n</div>\n<div class=\"ContC\
hap\"><a href=\"chap7.html#X79DA05BB7CCC1749\">7 <span class=\"Heading\">A cli\
ent side implementation of the HTTP protocol</span></a>\n<div class=\"ContSect\
\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap7.\
html#X7E8B5F0A87F2C1F7\">7.1 <span class=\"Heading\">Functions for client side\
HTTP</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"\
><br /><span class=\"nocss\"> </span><a href=\"chap7.html#X7B5588D5\
856BE6DD\">7.1-1 OpenHTTPConnection</a></span>\n<span class=\"ContSS\"><br /><\
span class=\"nocss\"> </span><a href=\"chap7.html#X80FF9E307BDA0659\
\">7.1-2 HTTPRequest</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap7.html#X83526BF378B3D8F2\">7.1-3 HTTPTi\
meoutForSelect</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">\
</span><a href=\"chap7.html#X81702FA07F2AF472\">7.1-4 CloseHTTPCon\
nection</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &\
nbsp;</span><a href=\"chap7.html#X7DBCB0B4801E4D6D\">7.1-5 SingleHTTPRequest</\
a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </sp\
an><a href=\"chap7.html#X78BAF7A77F6BE631\">7.1-6 CheckForUpdates</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap7.html#X872B174F7FFD345B\">7.1-7 ReadWeb</a></span>\n</div></div>\n</div\
>\n<div class=\"ContChap\"><a href=\"chap8.html#X7E9E9B3F7B585BA7\">8 <span cl\
ass=\"Heading\">Background jobs using fork</span></a>\n<div class=\"ContSect\"\
><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap8.ht\
ml#X7CCAF66D7E7E098E\">8.1 <span class=\"Heading\">Background jobs</span></a>\
\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span cla\
ss=\"nocss\"> </span><a href=\"chap8.html#X7FE0061F8484814B\">8.1-1\
BackgroundJobByFork</a></span>\n<span class=\"ContSS\"><br /><span class=\"no\
css\"> </span><a href=\"chap8.html#X7B7D934583257B9A\">8.1-2 IsIdle\
</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </\
span><a href=\"chap8.html#X86E1283D7AD05169\">8.1-3 HasTerminated</a></span>\n\
<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\
\"chap8.html#X7C139805804E6FE1\">8.1-4 WaitUntilIdle</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html\
#X7F4B8B9078D0E18E\">8.1-5 Pickup</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap8.html#X864492F37E858197\"\
>8.1-6 Submit</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&\
nbsp; </span><a href=\"chap8.html#X841B3A1A7967DEA4\">8.1-7 Kill</a></spa\
n>\n</div></div>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\
\"nocss\"> </span><a href=\"chap8.html#X7AF7D78B7F6F1212\">8.2 <span clas\
s=\"Heading\">Parallel programming skeletons</span></a>\n</span>\n<div class=\
\"ContSSBlock\">\n<span class=\"ContSS\"><br /><span class=\"nocss\"> &nb\
sp;</span><a href=\"chap8.html#X78A59A628449960F\">8.2-1 ParTakeFirstResultByF\
ork</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">  \
;</span><a href=\"chap8.html#X7A1F40D1841C36D2\">8.2-2 ParDoByFork</a></span>\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap8.html#X80DA6945873DCC66\">8.2-3 ParListByFork</a></span>\n<span class\
=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.htm\
l#X7AD5D85283BC41AC\">8.2-4 ParMapReduceByFork</a></span>\n</div></div>\n<div \
class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span>\
<a href=\"chap8.html#X7D18519B879047B3\">8.3 <span class=\"Heading\">Worker fa\
rms</span></a>\n</span>\n<div class=\"ContSSBlock\">\n<span class=\"ContSS\"><\
br /><span class=\"nocss\"> </span><a href=\"chap8.html#X87896E477D\
CB9C55\">8.3-1 ParWorkerFarmByFork</a></span>\n<span class=\"ContSS\"><br /><s\
pan class=\"nocss\"> </span><a href=\"chap8.html#X7ED2CE687EA7FC66\
\">8.3-2 DoQueues</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\
\"> </span><a href=\"chap8.html#X83289405792FF902\">8.3-3 Kill</a><\
/span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span>\
<a href=\"chap8.html#X7C4E3D5A7FE617FE\">8.3-4 IsIdle</a></span>\n<span class=\
\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"chap8.html\
#X81773CEC8246EDF3\">8.3-5 Submit</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap8.html#X7878258F84138DEA\"\
>8.3-6 Pickup</a></span>\n</div></div>\n</div>\n<div class=\"ContChap\"><a hre\
f=\"chap9.html#X7A466B907B882CA0\">9 <span class=\"Heading\">I/O multiplexing<\
/span></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocs\
s\"> </span><a href=\"chap9.html#X7DFB63A97E67C0A1\">9.1 <span class=\"He\
ading\">Introduction</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><spa\
n class=\"tocline\"><span class=\"nocss\"> </span><a href=\"chap9.html#X8\
53D93B47EA82379\">9.2 <span class=\"Heading\">The operations for <code class=\
\"code\">IOHub</code> objects</span></a>\n</span>\n<div class=\"ContSSBlock\">\
\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a hre\
f=\"chap9.html#X83C0523D8538E866\">9.2-1 IOHub</a></span>\n<span class=\"ContS\
S\"><br /><span class=\"nocss\"> </span><a href=\"chap9.html#X7D1D9\
A8D837ECCEB\">9.2-2 NewConnection</a></span>\n<span class=\"ContSS\"><br /><sp\
an class=\"nocss\"> </span><a href=\"chap9.html#X8553D2E47C05797F\"\
>9.2-3 CloseConnection</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap9.html#X7F7FD824866CB582\">9.2-4 Atta\
chServingSocket</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"\
> </span><a href=\"chap9.html#X7866F9DA8358968C\">9.2-5 ShutdownSer\
vingSocket</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\">&nbs\
p; </span><a href=\"chap9.html#X84AFBD658118ABB8\">9.2-6 Shutdown</a></sp\
an>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a \
href=\"chap9.html#X7BE1B9FD82C9B8E0\">9.2-7 AcceptNewConnection</a></span>\n<s\
pan class=\"ContSS\"><br /><span class=\"nocss\"> </span><a href=\"\
chap9.html#X85F634D4826D89F1\">9.2-8 SubmitOutput</a></span>\n<span class=\"Co\
ntSS\"><br /><span class=\"nocss\"> </span><a href=\"chap9.html#X83\
7629707DF9B60E\">9.2-9 GetInput</a></span>\n<span class=\"ContSS\"><br /><span\
class=\"nocss\"> </span><a href=\"chap9.html#X79031BC687502CB6\">9\
.2-10 NewTCPConnection</a></span>\n<span class=\"ContSS\"><br /><span class=\"\
nocss\"> </span><a href=\"chap9.html#X7F8C7F5782213A71\">9.2-11 Out\
putQueue</a></span>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> \
</span><a href=\"chap9.html#X7972FF1C7B59D0A4\">9.2-12 InputQueue</a></s\
pan>\n<span class=\"ContSS\"><br /><span class=\"nocss\"> </span><a\
href=\"chap9.html#X810D418A802D09D1\">9.2-13 DoIO</a></span>\n</div></div>\n<\
div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </s\
pan><a href=\"chap9.html#X7A489A5D79DA9E5C\">9.3 <span class=\"Heading\"> Exam\
ples </span></a>\n</span>\n</div>\n</div>\n<div class=\"ContChap\"><a href=\"c\
hap10.html#X7EADF566874177D8\">10 <span class=\"Heading\">Examples of usage</s\
pan></a>\n<div class=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\
\"> </span><a href=\"chap10.html#X7EC25CA68794860A\">10.1 <span class=\"H\
eading\">Writing and reading a file</span></a>\n</span>\n</div>\n<div class=\"\
ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\
\"chap10.html#X7AECE665813D6E4D\">10.2 <span class=\"Heading\">Using filtering\
programs to read and write files</span></a>\n</span>\n</div>\n<div class=\"Co\
ntSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a href=\"\
chap10.html#X7A8A180D7B335151\">10.3 <span class=\"Heading\">Using filters whe\
n reading or writing files sequentially</span></a>\n</span>\n</div>\n<div clas\
s=\"ContSect\"><span class=\"tocline\"><span class=\"nocss\"> </span><a h\
ref=\"chap10.html#X7BD2BF7F87573C69\">10.4 <span class=\"Heading\">Accessing a\
web page</span></a>\n</span>\n</div>\n<div class=\"ContSect\"><span class=\"t\
ocline\"><span class=\"nocss\"> </span><a href=\"chap10.html#X81BD8400832\
EE20B\">10.5 <span class=\"Heading\">(Un-)Pickling</span></a>\n</span>\n</div>\
\n</div>\n<div class=\"ContChap\"><a href=\"chap11.html#X861E5DF986F89AE2\">11\
<span class=\"Heading\">License</span></a>\n</div>\n<div class=\"ContChap\"><\
a href=\"chapInd.html\"><span class=\"Heading\">Index</span></a></div>\n" )
#I File: ./doc/manual.lab written.
make[1]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_auto_test -a
fakeroot debian/rules binary-arch
dh binary-arch --with autoreconf
dh_testroot -a
dh_prep -a
dh_installdirs -a
debian/rules override_dh_auto_install
make[1]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_auto_install --destdir debian/tmp/
make[2]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
make[3]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
make[3]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/«BUILDDIR»/gap-io-4.3.1+ds/debian/tmp/usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c io.la '/«BUILDDIR»/gap-io-4.3.1+ds/debian/tmp/usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin'
libtool: install: /usr/bin/install -c .libs/io.so /«BUILDDIR»/gap-io-4.3.1+ds/debian/tmp/usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin/io.so
libtool: install: /usr/bin/install -c .libs/io.lai /«BUILDDIR»/gap-io-4.3.1+ds/debian/tmp/usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin/io.la
libtool: install: warning: remember to run `libtool --finish /usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin'
make[3]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
make[2]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
make[1]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_install -a
dh_installdocs -a
debian/rules override_dh_installchangelogs
make[1]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_installchangelogs --keep CHANGES
make[1]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_perl -a
debian/rules override_dh_link
make[1]: Entering directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_link -p gap-io \
/usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin /usr/lib/gap/pkg/io/bin/arm-unknown-linux-gnueabihf-gcc-default32 \
/usr/lib/gap/pkg/io/bin /usr/share/gap/pkg/io/bin \
/usr/share/gap/pkg/io/doc /usr/share/doc/gap-io/doc \
/usr/share/gap/pkg/io/example /usr/share/doc/gap-io/example
make[1]: Leaving directory '/«BUILDDIR»/gap-io-4.3.1+ds'
dh_compress -a
dh_fixperms -a
dh_strip -a
dh_makeshlibs -a
dh_shlibdeps -a
dpkg-shlibdeps: warning: debian/gap-io/usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin/io.so contains an unresolvable reference to symbol MakeReadWriteGVar: it's probably a plugin
dpkg-shlibdeps: warning: 27 other similar warnings have been skipped (use -v to see them all)
dh_installdeb -a
dh_gencontrol -a
dpkg-gencontrol: warning: File::FcntlLock not available; using flock which is not NFS-safe
dpkg-gencontrol: warning: package gap-io: unused substitution variable ${misc:Pre-Depends}
dh_md5sums -a
dh_builddeb -a
dpkg-deb: building package `gap-io' in `../gap-io_4.3.1+ds-1_armhf.deb'.
dpkg-genchanges -B -mRaspbian wandboard test autobuilder <root@raspbian.org> >../gap-io_4.3.1+ds-1_armhf.changes
dpkg-genchanges: arch-specific upload - not including arch-independent packages
dpkg-genchanges: binary-only upload - not including any source code
dpkg-source --after-build gap-io-4.3.1+ds
dpkg-source: info: using options from gap-io-4.3.1+ds/debian/source/options: --compression=xz --compression-level=9
dpkg-buildpackage: binary-only upload (no source included)
────────────────────────────────────────────────────────────────────────────────
Build finished at 20140714-1209
Finished
────────
I: Built successfully
┌──────────────────────────────────────────────────────────────────────────────┐
│ Changes │
└──────────────────────────────────────────────────────────────────────────────┘
gap-io_4.3.1+ds-1_armhf.changes:
────────────────────────────────
Format: 1.8
Date: Sat, 05 Jul 2014 22:16:35 +0000
Source: gap-io
Binary: gap-io
Architecture: armhf
Version: 4.3.1+ds-1
Distribution: jessie-staging
Urgency: medium
Maintainer: Raspbian wandboard test autobuilder <root@raspbian.org>
Changed-By: Jerome Benoit <calculus@rezozer.net>
Description:
gap-io - low level C library IO bindings for GAP
Changes:
gap-io (4.3.1+ds-1) unstable; urgency=medium
.
* New upstream version.
* Debianization:
- debian/{copyright,control,repack,gap-io.docs}, refresh;
- debian/watch, path refresh to upstream maintainer github repository;
- debian/patches/:
- upstream-autotools-machinery.patch, remove as allowed by GAP 4r7p5-1;
- debianization.patch, refresh and improve;
- debian/gap-io.install, install io.so module within debian architecture
hierarchy wrt GAP 4r7p5-1 new policy;
- debian/gap-io.links, incorporate into debian/rules in order to
to create GAP architecture links wrt GAP 4r7p5-1 new policy;
- debian/rules, see above;
- debian/gap-io.dirs, reintroduce;
- debian/{makedoc,check}.g, remove.
Checksums-Sha1:
fae3cc6f2051be170aacb5f4216645f274ae5f12 370580 gap-io_4.3.1+ds-1_armhf.deb
Checksums-Sha256:
c58f2f1ba7f11496238662edef871a3aba8f8d01b82d1d18a5a7c5f1b685259e 370580 gap-io_4.3.1+ds-1_armhf.deb
Files:
6929718f97f77c7720956672e10bccd0 370580 math optional gap-io_4.3.1+ds-1_armhf.deb
┌──────────────────────────────────────────────────────────────────────────────┐
│ Package contents │
└──────────────────────────────────────────────────────────────────────────────┘
gap-io_4.3.1+ds-1_armhf.deb
───────────────────────────
new debian package, version 2.0.
size 370580 bytes: control archive=2796 bytes.
604 bytes, 16 lines control
5345 bytes, 76 lines md5sums
Package: gap-io
Version: 4.3.1+ds-1
Architecture: armhf
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Installed-Size: 989
Depends: libc6 (>= 2.15), gap (>= 4r7p5)
Provides: gap-pkg-io
Section: math
Priority: optional
Homepage: http://www.gap-system.org/Packages/io.html
Description: low level C library IO bindings for GAP
GAP is a system for computational discrete algebra with particular
emphasis on computational group theory, but which has already proved
useful also in other areas.
.
This package allows GAP to access UNIX I/O C-library functions.
drwxr-xr-x root/root 0 2014-07-14 12:09 ./
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/gap/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/gap/pkg/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/gap/pkg/io/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/gap/pkg/io/bin/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/arm-linux-gnueabihf/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/arm-linux-gnueabihf/gap/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/arm-linux-gnueabihf/gap/pkg/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/arm-linux-gnueabihf/gap/pkg/io/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin/
-rw-r--r-- root/root 51824 2014-07-14 12:09 ./usr/lib/arm-linux-gnueabihf/gap/pkg/io/bin/io.so
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/io/
-rw-r--r-- root/root 3957 2014-04-04 15:23 ./usr/share/gap/pkg/io/PackageInfo.g
-rw-r--r-- root/root 1678 2014-04-04 15:23 ./usr/share/gap/pkg/io/init.g
-rw-r--r-- root/root 1074 2014-04-04 15:23 ./usr/share/gap/pkg/io/makedoc.g
-rw-r--r-- root/root 1461 2014-04-04 15:23 ./usr/share/gap/pkg/io/read.g
-rw-r--r-- root/root 5 2014-07-14 12:07 ./usr/share/gap/pkg/io/VERSION
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/io/gap/
-rw-r--r-- root/root 4659 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/background.gd
-rw-r--r-- root/root 20174 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/background.gi
-rw-r--r-- root/root 2499 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/forkparallel.g
-rw-r--r-- root/root 570 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/forkparalleldream.g
-rw-r--r-- root/root 4290 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/graveyard.g
-rw-r--r-- root/root 1452 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/http.gd
-rw-r--r-- root/root 14195 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/http.gi
-rw-r--r-- root/root 3344 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/io.gd
-rw-r--r-- root/root 50970 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/io.gi
-rw-r--r-- root/root 2412 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/iohub.gd
-rw-r--r-- root/root 12991 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/iohub.gi
-rw-r--r-- root/root 3753 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/pickle.gd
-rw-r--r-- root/root 32406 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/pickle.gi
-rw-r--r-- root/root 1174 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/realrandom.gd
-rw-r--r-- root/root 3954 2014-04-04 15:23 ./usr/share/gap/pkg/io/gap/realrandom.gi
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/io/tst/
-rw-r--r-- root/root 3410 2014-04-04 15:23 ./usr/share/gap/pkg/io/tst/buffered.g
-rw-r--r-- root/root 624 2014-04-04 15:23 ./usr/share/gap/pkg/io/tst/http.g
-rw-r--r-- root/root 5186 2014-04-04 15:23 ./usr/share/gap/pkg/io/tst/pickle.g
-rw-r--r-- root/root 6475 2014-04-04 15:23 ./usr/share/gap/pkg/io/tst/platform.g
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/io/doc/
-rw-r--r-- root/root 6530 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap0.txt
-rw-r--r-- root/root 1103 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap1.txt
-rw-r--r-- root/root 9261 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap10.txt
-rw-r--r-- root/root 754 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap11.txt
-rw-r--r-- root/root 3207 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap2.txt
-rw-r--r-- root/root 34348 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap3.txt
-rw-r--r-- root/root 41444 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap4.txt
-rw-r--r-- root/root 9104 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap5.txt
-rw-r--r-- root/root 1535 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap6.txt
-rw-r--r-- root/root 8988 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap7.txt
-rw-r--r-- root/root 19560 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap8.txt
-rw-r--r-- root/root 11994 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap9.txt
-rw-r--r-- root/root 4973 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chapInd.txt
-rw-r--r-- root/root 29817 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap0.html
-rw-r--r-- root/root 3482 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap1.html
-rw-r--r-- root/root 13441 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap10.html
-rw-r--r-- root/root 3021 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap11.html
-rw-r--r-- root/root 6143 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap2.html
-rw-r--r-- root/root 63587 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap3.html
-rw-r--r-- root/root 65170 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap4.html
-rw-r--r-- root/root 15065 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap5.html
-rw-r--r-- root/root 4588 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap6.html
-rw-r--r-- root/root 15178 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap7.html
-rw-r--r-- root/root 30318 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap8.html
-rw-r--r-- root/root 23020 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chap9.html
-rw-r--r-- root/root 16542 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/chapInd.html
-rw-r--r-- root/root 3886 2014-07-14 12:09 ./usr/share/gap/pkg/io/doc/chooser.html
-rw-r--r-- root/root 23834 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/manual.six
-rw-r--r-- root/root 275041 2014-07-14 12:08 ./usr/share/gap/pkg/io/doc/manual.pdf
-rw-r--r-- root/root 7148 2014-07-14 12:09 ./usr/share/gap/pkg/io/doc/manual.css
-rw-r--r-- root/root 4124 2014-07-14 12:09 ./usr/share/gap/pkg/io/doc/manual.js
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/io/example/
-rw-r--r-- root/root 886 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/clientTCP.g
-rw-r--r-- root/root 309 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/clientUDP.g
-rw-r--r-- root/root 1220 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/fork.g
-rw-r--r-- root/root 1539 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/hashserver.g
-rw-r--r-- root/root 340 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/parlist1.g
-rw-r--r-- root/root 482 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/parlist2.g
-rw-r--r-- root/root 429 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/parmapreduce1.g
-rw-r--r-- root/root 509 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/partakefirst1.g
-rw-r--r-- root/root 1342 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/partakefirst2.g
-rw-r--r-- root/root 316 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/parworkerfarm1.g
-rw-r--r-- root/root 490 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/popen2.g
-rw-r--r-- root/root 883 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/serverTCP.g
-rw-r--r-- root/root 334 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/serverUDP.g
-rw-r--r-- root/root 626 2014-04-04 15:23 ./usr/share/gap/pkg/io/example/stringIO.g
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/doc/
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/doc/gap-io/
-rw-r--r-- root/root 2510 2014-04-04 15:23 ./usr/share/doc/gap-io/README
-rw-r--r-- root/root 1236 2014-04-04 15:23 ./usr/share/doc/gap-io/TODO
-rw-r--r-- root/root 1544 2014-07-05 22:37 ./usr/share/doc/gap-io/copyright
-rw-r--r-- root/root 970 2014-07-05 22:37 ./usr/share/doc/gap-io/changelog.Debian.gz
-rw-r--r-- root/root 2686 2014-04-04 15:23 ./usr/share/doc/gap-io/changelog.gz
drwxr-xr-x root/root 0 2014-07-14 12:09 ./usr/share/doc-base/
-rw-r--r-- root/root 768 2014-07-05 22:37 ./usr/share/doc-base/gap-io
lrwxrwxrwx root/root 0 2014-07-14 12:09 ./usr/lib/gap/pkg/io/bin/arm-unknown-linux-gnueabihf-gcc-default32 -> ../../../../arm-linux-gnueabihf/gap/pkg/io/bin
lrwxrwxrwx root/root 0 2014-07-14 12:09 ./usr/share/gap/pkg/io/bin -> ../../../../lib/gap/pkg/io/bin
lrwxrwxrwx root/root 0 2014-07-14 12:09 ./usr/share/doc/gap-io/example -> ../../gap/pkg/io/example
lrwxrwxrwx root/root 0 2014-07-14 12:09 ./usr/share/doc/gap-io/doc -> ../../gap/pkg/io/doc
lrwxrwxrwx root/root 0 2014-07-14 12:09 ./usr/share/doc/gap-io/CHANGES.gz -> changelog.gz
┌──────────────────────────────────────────────────────────────────────────────┐
│ Post Build │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ Cleanup │
└──────────────────────────────────────────────────────────────────────────────┘
Purging /«BUILDDIR»
Not cleaning session: cloned chroot in use
┌──────────────────────────────────────────────────────────────────────────────┐
│ Summary │
└──────────────────────────────────────────────────────────────────────────────┘
Build Architecture: armhf
Build-Space: 7496
Build-Time: 314
Distribution: jessie-staging
Host Architecture: armhf
Install-Time: 738
Job: gap-io_4.3.1+ds-1
Machine Architecture: armhf
Package: gap-io
Package-Time: 1103
Source-Version: 4.3.1+ds-1
Space: 7496
Status: successful
Version: 4.3.1+ds-1
────────────────────────────────────────────────────────────────────────────────
Finished at 20140714-1209
Build needed 00:18:23, 7496k disc space