msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-05-28 07:16+0900\n"
+"POT-Creation-Date: 2013-03-22 01:05+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#. type: TH
-#: build/C/man2/alloc_hugepages.2:25 build/C/man2/cacheflush.2:24 build/C/man2/fallocate.2:8 build/C/man2/madvise.2:35 build/C/man3/mallinfo.3:24 build/C/man3/malloc_stats.3:24 build/C/man3/malloc_trim.3:24 build/C/man3/mallopt.3:24 build/C/man2/mlock.2:27 build/C/man2/mmap.2:40 build/C/man2/mmap2.2:29 build/C/man2/mprotect.2:32 build/C/man2/mremap.2:31 build/C/man2/msync.2:25 build/C/man2/posix_fadvise.2:27 build/C/man2/readahead.2:28 build/C/man2/remap_file_pages.2:26 build/C/man3/shm_open.3:26 build/C/man7/shm_overview.7:27 build/C/man2/shmctl.2:43 build/C/man2/shmget.2:36 build/C/man2/shmop.2:39 build/C/man2/subpage_prot.2:28 build/C/man2/sync_file_range.2:30
+#: build/C/man2/alloc_hugepages.2:25 build/C/man2/cacheflush.2:25 build/C/man2/fallocate.2:11 build/C/man2/madvise.2:35 build/C/man3/mallinfo.3:26 build/C/man3/malloc_stats.3:26 build/C/man3/malloc_trim.3:26 build/C/man3/mallopt.3:26 build/C/man2/mlock.2:26 build/C/man2/mmap.2:40 build/C/man2/mmap2.2:29 build/C/man2/mprotect.2:38 build/C/man2/mremap.2:30 build/C/man2/msync.2:25 build/C/man2/posix_fadvise.2:28 build/C/man2/readahead.2:28 build/C/man2/remap_file_pages.2:28 build/C/man3/shm_open.3:26 build/C/man7/shm_overview.7:27 build/C/man2/shmctl.2:45 build/C/man2/shmget.2:38 build/C/man2/shmop.2:41 build/C/man2/subpage_prot.2:30 build/C/man2/sync_file_range.2:30
#, no-wrap
msgid "Linux"
msgstr ""
#. type: TH
-#: build/C/man2/alloc_hugepages.2:25 build/C/man3/alloca.3:41 build/C/man2/cacheflush.2:24 build/C/man2/fallocate.2:8 build/C/man2/madvise.2:35 build/C/man3/mallinfo.3:24 build/C/man3/malloc_get_state.3:23 build/C/man3/malloc_hook.3:6 build/C/man3/malloc_info.3:23 build/C/man3/malloc_stats.3:24 build/C/man3/malloc_trim.3:24 build/C/man3/malloc_usable_size.3:23 build/C/man3/mallopt.3:24 build/C/man3/mcheck.3:23 build/C/man2/mlock.2:27 build/C/man2/mmap.2:40 build/C/man2/mmap2.2:29 build/C/man2/mprotect.2:32 build/C/man2/mremap.2:31 build/C/man2/msync.2:25 build/C/man3/mtrace.3:23 build/C/man2/posix_fadvise.2:27 build/C/man3/posix_fallocate.3:23 build/C/man3/posix_memalign.3:28 build/C/man2/readahead.2:28 build/C/man2/remap_file_pages.2:26 build/C/man3/shm_open.3:26 build/C/man7/shm_overview.7:27 build/C/man2/shmctl.2:43 build/C/man2/shmget.2:36 build/C/man2/shmop.2:39 build/C/man2/subpage_prot.2:28 build/C/man2/sync_file_range.2:30
+#: build/C/man2/alloc_hugepages.2:25 build/C/man3/alloca.3:43 build/C/man2/cacheflush.2:25 build/C/man2/fallocate.2:11 build/C/man2/madvise.2:35 build/C/man3/mallinfo.3:26 build/C/man3/malloc_get_state.3:25 build/C/man3/malloc_hook.3:10 build/C/man3/malloc_info.3:25 build/C/man3/malloc_stats.3:26 build/C/man3/malloc_trim.3:26 build/C/man3/malloc_usable_size.3:25 build/C/man3/mallopt.3:26 build/C/man3/mcheck.3:25 build/C/man2/mlock.2:26 build/C/man2/mmap.2:40 build/C/man2/mmap2.2:29 build/C/man2/mprotect.2:38 build/C/man2/mremap.2:30 build/C/man2/msync.2:25 build/C/man3/mtrace.3:25 build/C/man2/posix_fadvise.2:28 build/C/man3/posix_fallocate.3:25 build/C/man3/posix_memalign.3:29 build/C/man2/readahead.2:28 build/C/man2/remap_file_pages.2:28 build/C/man3/shm_open.3:26 build/C/man7/shm_overview.7:27 build/C/man2/shmctl.2:45 build/C/man2/shmget.2:38 build/C/man2/shmop.2:41 build/C/man2/subpage_prot.2:30 build/C/man2/sync_file_range.2:30
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:26 build/C/man3/alloca.3:42 build/C/man2/cacheflush.2:25 build/C/man2/fallocate.2:9 build/C/man2/madvise.2:36 build/C/man3/mallinfo.3:25 build/C/man3/malloc_get_state.3:24 build/C/man3/malloc_hook.3:7 build/C/man3/malloc_info.3:24 build/C/man3/malloc_stats.3:25 build/C/man3/malloc_trim.3:25 build/C/man3/malloc_usable_size.3:24 build/C/man3/mallopt.3:25 build/C/man3/mcheck.3:24 build/C/man2/mlock.2:28 build/C/man2/mmap.2:41 build/C/man2/mmap2.2:30 build/C/man2/mprotect.2:33 build/C/man2/mremap.2:32 build/C/man2/msync.2:26 build/C/man3/mtrace.3:24 build/C/man2/posix_fadvise.2:28 build/C/man3/posix_fallocate.3:24 build/C/man3/posix_memalign.3:29 build/C/man2/readahead.2:29 build/C/man2/remap_file_pages.2:27 build/C/man3/shm_open.3:27 build/C/man7/shm_overview.7:28 build/C/man2/shmctl.2:44 build/C/man2/shmget.2:37 build/C/man2/shmop.2:40 build/C/man2/subpage_prot.2:29 build/C/man2/sync_file_range.2:31
+#: build/C/man2/alloc_hugepages.2:26 build/C/man3/alloca.3:44 build/C/man2/cacheflush.2:26 build/C/man2/fallocate.2:12 build/C/man2/madvise.2:36 build/C/man3/mallinfo.3:27 build/C/man3/malloc_get_state.3:26 build/C/man3/malloc_hook.3:11 build/C/man3/malloc_info.3:26 build/C/man3/malloc_stats.3:27 build/C/man3/malloc_trim.3:27 build/C/man3/malloc_usable_size.3:26 build/C/man3/mallopt.3:27 build/C/man3/mcheck.3:26 build/C/man2/mlock.2:27 build/C/man2/mmap.2:41 build/C/man2/mmap2.2:30 build/C/man2/mprotect.2:39 build/C/man2/mremap.2:31 build/C/man2/msync.2:26 build/C/man3/mtrace.3:26 build/C/man2/posix_fadvise.2:29 build/C/man3/posix_fallocate.3:26 build/C/man3/posix_memalign.3:30 build/C/man2/readahead.2:29 build/C/man2/remap_file_pages.2:29 build/C/man3/shm_open.3:27 build/C/man7/shm_overview.7:28 build/C/man2/shmctl.2:46 build/C/man2/shmget.2:39 build/C/man2/shmop.2:42 build/C/man2/subpage_prot.2:31 build/C/man2/sync_file_range.2:31
#, no-wrap
msgid "NAME"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:28 build/C/man3/alloca.3:44 build/C/man2/cacheflush.2:27 build/C/man2/fallocate.2:11 build/C/man2/madvise.2:38 build/C/man3/mallinfo.3:27 build/C/man3/malloc_get_state.3:26 build/C/man3/malloc_hook.3:11 build/C/man3/malloc_info.3:26 build/C/man3/malloc_stats.3:27 build/C/man3/malloc_trim.3:27 build/C/man3/malloc_usable_size.3:26 build/C/man3/mallopt.3:27 build/C/man3/mcheck.3:26 build/C/man2/mlock.2:30 build/C/man2/mmap.2:43 build/C/man2/mmap2.2:32 build/C/man2/mprotect.2:35 build/C/man2/mremap.2:34 build/C/man2/msync.2:28 build/C/man3/mtrace.3:26 build/C/man2/posix_fadvise.2:30 build/C/man3/posix_fallocate.3:26 build/C/man3/posix_memalign.3:31 build/C/man2/readahead.2:31 build/C/man2/remap_file_pages.2:29 build/C/man3/shm_open.3:29 build/C/man2/shmctl.2:46 build/C/man2/shmget.2:39 build/C/man2/shmop.2:42 build/C/man2/subpage_prot.2:31 build/C/man2/sync_file_range.2:33
+#: build/C/man2/alloc_hugepages.2:28 build/C/man3/alloca.3:46 build/C/man2/cacheflush.2:28 build/C/man2/fallocate.2:14 build/C/man2/madvise.2:38 build/C/man3/mallinfo.3:29 build/C/man3/malloc_get_state.3:28 build/C/man3/malloc_hook.3:15 build/C/man3/malloc_info.3:28 build/C/man3/malloc_stats.3:29 build/C/man3/malloc_trim.3:29 build/C/man3/malloc_usable_size.3:28 build/C/man3/mallopt.3:29 build/C/man3/mcheck.3:28 build/C/man2/mlock.2:29 build/C/man2/mmap.2:43 build/C/man2/mmap2.2:32 build/C/man2/mprotect.2:41 build/C/man2/mremap.2:33 build/C/man2/msync.2:28 build/C/man3/mtrace.3:28 build/C/man2/posix_fadvise.2:31 build/C/man3/posix_fallocate.3:28 build/C/man3/posix_memalign.3:32 build/C/man2/readahead.2:31 build/C/man2/remap_file_pages.2:31 build/C/man3/shm_open.3:29 build/C/man2/shmctl.2:48 build/C/man2/shmget.2:41 build/C/man2/shmop.2:44 build/C/man2/subpage_prot.2:33 build/C/man2/sync_file_range.2:33
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:38 build/C/man3/alloca.3:48 build/C/man2/cacheflush.2:33 build/C/man2/fallocate.2:19 build/C/man2/madvise.2:50 build/C/man3/mallinfo.3:31 build/C/man3/malloc_get_state.3:34 build/C/man3/malloc_hook.3:29 build/C/man3/malloc_info.3:32 build/C/man3/malloc_stats.3:31 build/C/man3/malloc_trim.3:31 build/C/man3/malloc_usable_size.3:30 build/C/man3/mallopt.3:31 build/C/man3/mcheck.3:39 build/C/man2/mlock.2:40 build/C/man2/mmap.2:52 build/C/man2/mmap2.2:39 build/C/man2/mprotect.2:41 build/C/man2/mremap.2:43 build/C/man2/msync.2:32 build/C/man3/mtrace.3:32 build/C/man2/posix_fadvise.2:49 build/C/man3/posix_fallocate.3:44 build/C/man3/posix_memalign.3:83 build/C/man2/readahead.2:38 build/C/man2/remap_file_pages.2:37 build/C/man3/shm_open.3:41 build/C/man7/shm_overview.7:30 build/C/man2/shmctl.2:54 build/C/man2/shmget.2:47 build/C/man2/shmop.2:51 build/C/man2/subpage_prot.2:36 build/C/man2/sync_file_range.2:41
+#: build/C/man2/alloc_hugepages.2:38 build/C/man3/alloca.3:50 build/C/man2/cacheflush.2:34 build/C/man2/fallocate.2:22 build/C/man2/madvise.2:50 build/C/man3/mallinfo.3:33 build/C/man3/malloc_get_state.3:36 build/C/man3/malloc_hook.3:33 build/C/man3/malloc_info.3:34 build/C/man3/malloc_stats.3:33 build/C/man3/malloc_trim.3:33 build/C/man3/malloc_usable_size.3:32 build/C/man3/mallopt.3:33 build/C/man3/mcheck.3:40 build/C/man2/mlock.2:39 build/C/man2/mmap.2:54 build/C/man2/mmap2.2:39 build/C/man2/mprotect.2:47 build/C/man2/mremap.2:42 build/C/man2/msync.2:32 build/C/man3/mtrace.3:34 build/C/man2/posix_fadvise.2:50 build/C/man3/posix_fallocate.3:46 build/C/man3/posix_memalign.3:84 build/C/man2/readahead.2:38 build/C/man2/remap_file_pages.2:39 build/C/man3/shm_open.3:41 build/C/man7/shm_overview.7:30 build/C/man2/shmctl.2:56 build/C/man2/shmget.2:49 build/C/man2/shmop.2:53 build/C/man2/subpage_prot.2:41 build/C/man2/sync_file_range.2:41
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:109 build/C/man3/alloca.3:58 build/C/man2/cacheflush.2:52 build/C/man2/fallocate.2:109 build/C/man2/madvise.2:268 build/C/man3/malloc_get_state.3:59 build/C/man3/malloc_info.3:46 build/C/man3/malloc_trim.3:49 build/C/man3/malloc_usable_size.3:38 build/C/man3/mallopt.3:377 build/C/man3/mcheck.3:128 build/C/man2/mlock.2:117 build/C/man2/mmap.2:373 build/C/man2/mmap2.2:54 build/C/man2/mprotect.2:72 build/C/man2/mremap.2:128 build/C/man2/msync.2:68 build/C/man2/posix_fadvise.2:86 build/C/man3/posix_fallocate.3:64 build/C/man3/posix_memalign.3:141 build/C/man2/readahead.2:65 build/C/man2/remap_file_pages.2:122 build/C/man3/shm_open.3:169 build/C/man2/shmctl.2:272 build/C/man2/shmget.2:178 build/C/man2/shmop.2:169 build/C/man2/subpage_prot.2:61 build/C/man2/sync_file_range.2:141
+#: build/C/man2/alloc_hugepages.2:109 build/C/man3/alloca.3:60 build/C/man2/cacheflush.2:53 build/C/man2/fallocate.2:112 build/C/man2/madvise.2:268 build/C/man3/malloc_get_state.3:61 build/C/man3/malloc_info.3:48 build/C/man3/malloc_trim.3:51 build/C/man3/malloc_usable_size.3:40 build/C/man3/mallopt.3:379 build/C/man3/mcheck.3:129 build/C/man2/mlock.2:116 build/C/man2/mmap.2:375 build/C/man2/mmap2.2:54 build/C/man2/mprotect.2:78 build/C/man2/mremap.2:127 build/C/man2/msync.2:68 build/C/man2/posix_fadvise.2:87 build/C/man3/posix_fallocate.3:66 build/C/man3/posix_memalign.3:141 build/C/man2/readahead.2:65 build/C/man2/remap_file_pages.2:124 build/C/man3/shm_open.3:169 build/C/man2/shmctl.2:274 build/C/man2/shmget.2:180 build/C/man2/shmop.2:171 build/C/man2/subpage_prot.2:66 build/C/man2/sync_file_range.2:141
#, no-wrap
msgid "RETURN VALUE"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:118 build/C/man2/cacheflush.2:58 build/C/man2/fallocate.2:112 build/C/man2/madvise.2:275 build/C/man3/malloc_info.3:51 build/C/man3/malloc_trim.3:54 build/C/man3/mallopt.3:382 build/C/man2/mlock.2:123 build/C/man2/mmap.2:390 build/C/man2/mmap2.2:61 build/C/man2/mprotect.2:79 build/C/man2/mremap.2:136 build/C/man2/msync.2:73 build/C/man2/posix_fadvise.2:89 build/C/man3/posix_fallocate.3:70 build/C/man3/posix_memalign.3:155 build/C/man2/readahead.2:71 build/C/man2/remap_file_pages.2:129 build/C/man3/shm_open.3:178 build/C/man2/shmctl.2:294 build/C/man2/shmget.2:182 build/C/man2/shmop.2:183 build/C/man2/subpage_prot.2:66 build/C/man2/sync_file_range.2:147
+#: build/C/man2/alloc_hugepages.2:118 build/C/man2/cacheflush.2:59 build/C/man2/fallocate.2:115 build/C/man2/madvise.2:275 build/C/man3/malloc_info.3:53 build/C/man3/malloc_trim.3:56 build/C/man3/mallopt.3:384 build/C/man2/mlock.2:122 build/C/man2/mmap.2:392 build/C/man2/mmap2.2:61 build/C/man2/mprotect.2:85 build/C/man2/mremap.2:135 build/C/man2/msync.2:73 build/C/man2/posix_fadvise.2:90 build/C/man3/posix_fallocate.3:72 build/C/man3/posix_memalign.3:155 build/C/man2/readahead.2:71 build/C/man2/remap_file_pages.2:131 build/C/man3/shm_open.3:178 build/C/man2/shmctl.2:296 build/C/man2/shmget.2:184 build/C/man2/shmop.2:185 build/C/man2/subpage_prot.2:71 build/C/man2/sync_file_range.2:147
#, no-wrap
msgid "ERRORS"
msgstr ""
#. type: TP
-#: build/C/man2/alloc_hugepages.2:119 build/C/man2/fallocate.2:151
+#: build/C/man2/alloc_hugepages.2:119 build/C/man2/fallocate.2:154
#, no-wrap
msgid "B<ENOSYS>"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:130 build/C/man3/alloca.3:63 build/C/man2/cacheflush.2:74 build/C/man2/fallocate.2:188 build/C/man2/madvise.2:325 build/C/man3/mallinfo.3:109 build/C/man3/malloc_get_state.3:84 build/C/man3/malloc_hook.3:76 build/C/man3/malloc_info.3:59 build/C/man3/malloc_stats.3:53 build/C/man3/malloc_trim.3:58 build/C/man3/malloc_usable_size.3:46 build/C/man3/mallopt.3:390 build/C/man3/mcheck.3:144 build/C/man2/mlock.2:187 build/C/man2/mmap.2:483 build/C/man2/mmap2.2:77 build/C/man2/mprotect.2:107 build/C/man2/mremap.2:186 build/C/man2/msync.2:96 build/C/man3/mtrace.3:76 build/C/man2/posix_fadvise.2:111 build/C/man3/posix_fallocate.3:101 build/C/man3/posix_memalign.3:180 build/C/man2/readahead.2:87 build/C/man2/remap_file_pages.2:151 build/C/man3/shm_open.3:249 build/C/man7/shm_overview.7:101 build/C/man2/shmctl.2:366 build/C/man2/shmget.2:229 build/C/man2/shmop.2:226 build/C/man2/subpage_prot.2:91 build/C/man2/sync_file_range.2:180
+#: build/C/man2/alloc_hugepages.2:130 build/C/man3/alloca.3:65 build/C/man2/cacheflush.2:75 build/C/man2/fallocate.2:195 build/C/man2/madvise.2:325 build/C/man3/mallinfo.3:110 build/C/man3/malloc_get_state.3:86 build/C/man3/malloc_hook.3:80 build/C/man3/malloc_info.3:61 build/C/man3/malloc_stats.3:55 build/C/man3/malloc_trim.3:60 build/C/man3/malloc_usable_size.3:48 build/C/man3/mallopt.3:392 build/C/man3/mcheck.3:145 build/C/man2/mlock.2:186 build/C/man2/mmap.2:497 build/C/man2/mmap2.2:77 build/C/man2/mprotect.2:113 build/C/man2/mremap.2:185 build/C/man2/msync.2:96 build/C/man3/mtrace.3:78 build/C/man2/posix_fadvise.2:112 build/C/man3/posix_fallocate.3:103 build/C/man3/posix_memalign.3:180 build/C/man2/readahead.2:87 build/C/man2/remap_file_pages.2:153 build/C/man3/shm_open.3:249 build/C/man7/shm_overview.7:101 build/C/man2/shmctl.2:368 build/C/man2/shmget.2:231 build/C/man2/shmop.2:231 build/C/man2/subpage_prot.2:96 build/C/man2/sync_file_range.2:180
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:133 build/C/man3/alloca.3:71 build/C/man2/madvise.2:346 build/C/man3/malloc_get_state.3:86 build/C/man3/malloc_hook.3:78 build/C/man3/malloc_info.3:61 build/C/man3/malloc_stats.3:55 build/C/man3/malloc_trim.3:60 build/C/man3/malloc_trim.3:72 build/C/man3/malloc_usable_size.3:48 build/C/man3/mcheck.3:146 build/C/man2/mlock.2:214 build/C/man2/mmap.2:501 build/C/man2/mmap2.2:79 build/C/man2/mprotect.2:116 build/C/man2/mremap.2:192 build/C/man3/mtrace.3:78 build/C/man2/posix_fadvise.2:120 build/C/man3/posix_memalign.3:219 build/C/man3/shm_open.3:255 build/C/man7/shm_overview.7:103 build/C/man2/shmctl.2:371 build/C/man2/shmget.2:235 build/C/man2/shmop.2:245 build/C/man2/subpage_prot.2:93 build/C/man2/sync_file_range.2:183
+#: build/C/man2/alloc_hugepages.2:133 build/C/man3/alloca.3:73 build/C/man2/madvise.2:346 build/C/man3/malloc_get_state.3:88 build/C/man3/malloc_hook.3:82 build/C/man3/malloc_info.3:63 build/C/man3/malloc_stats.3:57 build/C/man3/malloc_trim.3:62 build/C/man3/malloc_usable_size.3:50 build/C/man3/mcheck.3:147 build/C/man2/mlock.2:213 build/C/man2/mmap.2:515 build/C/man2/mmap2.2:79 build/C/man2/mprotect.2:122 build/C/man2/mremap.2:191 build/C/man3/mtrace.3:80 build/C/man2/posix_fadvise.2:121 build/C/man3/posix_memalign.3:219 build/C/man3/shm_open.3:255 build/C/man7/shm_overview.7:103 build/C/man2/shmctl.2:373 build/C/man2/shmget.2:237 build/C/man2/shmop.2:250 build/C/man2/subpage_prot.2:98 build/C/man2/sync_file_range.2:183
#, no-wrap
msgid "NOTES"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/alloc_hugepages.2:150 build/C/man3/alloca.3:153 build/C/man2/cacheflush.2:88 build/C/man2/fallocate.2:195 build/C/man2/madvise.2:379 build/C/man3/mallinfo.3:278 build/C/man3/malloc_get_state.3:112 build/C/man3/malloc_hook.3:138 build/C/man3/malloc_info.3:258 build/C/man3/malloc_stats.3:65 build/C/man3/malloc_trim.3:80 build/C/man3/malloc_usable_size.3:62 build/C/man3/mallopt.3:578 build/C/man3/mcheck.3:211 build/C/man2/mlock.2:337 build/C/man2/mmap.2:671 build/C/man2/mmap2.2:98 build/C/man2/mprotect.2:223 build/C/man2/mremap.2:214 build/C/man2/msync.2:122 build/C/man3/mtrace.3:170 build/C/man2/posix_fadvise.2:188 build/C/man3/posix_fallocate.3:130 build/C/man3/posix_memalign.3:275 build/C/man2/readahead.2:98 build/C/man2/remap_file_pages.2:162 build/C/man3/shm_open.3:280 build/C/man7/shm_overview.7:127 build/C/man2/shmctl.2:410 build/C/man2/shmget.2:298 build/C/man2/shmop.2:290 build/C/man2/subpage_prot.2:126 build/C/man2/sync_file_range.2:222
+#: build/C/man2/alloc_hugepages.2:150 build/C/man3/alloca.3:155 build/C/man2/cacheflush.2:89 build/C/man2/fallocate.2:203 build/C/man2/madvise.2:379 build/C/man3/mallinfo.3:279 build/C/man3/malloc_get_state.3:114 build/C/man3/malloc_hook.3:142 build/C/man3/malloc_info.3:260 build/C/man3/malloc_stats.3:67 build/C/man3/malloc_trim.3:82 build/C/man3/malloc_usable_size.3:64 build/C/man3/mallopt.3:580 build/C/man3/mcheck.3:208 build/C/man2/mlock.2:336 build/C/man2/mmap.2:730 build/C/man2/mmap2.2:98 build/C/man2/mprotect.2:229 build/C/man2/mremap.2:214 build/C/man2/msync.2:122 build/C/man3/mtrace.3:172 build/C/man2/posix_fadvise.2:189 build/C/man3/posix_fallocate.3:133 build/C/man3/posix_memalign.3:275 build/C/man2/readahead.2:98 build/C/man2/remap_file_pages.2:164 build/C/man3/shm_open.3:280 build/C/man7/shm_overview.7:127 build/C/man2/shmctl.2:425 build/C/man2/shmget.2:313 build/C/man2/shmop.2:295 build/C/man2/subpage_prot.2:134 build/C/man2/sync_file_range.2:222
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man2/alloc_hugepages.2:157 build/C/man3/alloca.3:160 build/C/man2/cacheflush.2:95 build/C/man2/fallocate.2:202 build/C/man2/madvise.2:386 build/C/man3/mallinfo.3:285 build/C/man3/malloc_get_state.3:119 build/C/man3/malloc_hook.3:145 build/C/man3/malloc_info.3:265 build/C/man3/malloc_stats.3:72 build/C/man3/malloc_trim.3:87 build/C/man3/malloc_usable_size.3:69 build/C/man3/mallopt.3:585 build/C/man3/mcheck.3:218 build/C/man2/mlock.2:344 build/C/man2/mmap.2:678 build/C/man2/mmap2.2:105 build/C/man2/mprotect.2:230 build/C/man2/mremap.2:221 build/C/man2/msync.2:129 build/C/man3/mtrace.3:177 build/C/man2/posix_fadvise.2:195 build/C/man3/posix_fallocate.3:137 build/C/man3/posix_memalign.3:282 build/C/man2/readahead.2:105 build/C/man2/remap_file_pages.2:169 build/C/man3/shm_open.3:287 build/C/man7/shm_overview.7:134 build/C/man2/shmctl.2:417 build/C/man2/shmget.2:305 build/C/man2/shmop.2:297 build/C/man2/subpage_prot.2:133 build/C/man2/sync_file_range.2:229
+#: build/C/man2/alloc_hugepages.2:157 build/C/man3/alloca.3:162 build/C/man2/cacheflush.2:96 build/C/man2/fallocate.2:210 build/C/man2/madvise.2:386 build/C/man3/mallinfo.3:286 build/C/man3/malloc_get_state.3:121 build/C/man3/malloc_hook.3:149 build/C/man3/malloc_info.3:267 build/C/man3/malloc_stats.3:74 build/C/man3/malloc_trim.3:89 build/C/man3/malloc_usable_size.3:71 build/C/man3/mallopt.3:587 build/C/man3/mcheck.3:215 build/C/man2/mlock.2:343 build/C/man2/mmap.2:737 build/C/man2/mmap2.2:105 build/C/man2/mprotect.2:236 build/C/man2/mremap.2:221 build/C/man2/msync.2:129 build/C/man3/mtrace.3:179 build/C/man2/posix_fadvise.2:196 build/C/man3/posix_fallocate.3:140 build/C/man3/posix_memalign.3:282 build/C/man2/readahead.2:105 build/C/man2/remap_file_pages.2:171 build/C/man3/shm_open.3:287 build/C/man7/shm_overview.7:134 build/C/man2/shmctl.2:432 build/C/man2/shmget.2:320 build/C/man2/shmop.2:302 build/C/man2/subpage_prot.2:141 build/C/man2/sync_file_range.2:229
msgid ""
-"This page is part of release 3.41 of the Linux I<man-pages> project. A "
+"This page is part of release 3.50 of the Linux I<man-pages> project. A "
"description of the project, and information about reporting bugs, can be "
"found at http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
-#: build/C/man3/alloca.3:41
+#: build/C/man3/alloca.3:43
#, no-wrap
msgid "ALLOCA"
msgstr ""
#. type: TH
-#: build/C/man3/alloca.3:41
+#: build/C/man3/alloca.3:43
#, no-wrap
msgid "2008-01-24"
msgstr ""
#. type: TH
-#: build/C/man3/alloca.3:41 build/C/man3/malloc_get_state.3:23 build/C/man3/malloc_hook.3:6 build/C/man3/malloc_info.3:23 build/C/man3/malloc_usable_size.3:23 build/C/man3/mcheck.3:23 build/C/man3/mtrace.3:23 build/C/man3/posix_fallocate.3:23 build/C/man3/posix_memalign.3:28
+#: build/C/man3/alloca.3:43 build/C/man3/malloc_get_state.3:25 build/C/man3/malloc_hook.3:10 build/C/man3/malloc_info.3:25 build/C/man3/malloc_usable_size.3:25 build/C/man3/mcheck.3:25 build/C/man3/mtrace.3:25 build/C/man3/posix_fallocate.3:25 build/C/man3/posix_memalign.3:29
#, no-wrap
msgid "GNU"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:44
+#: build/C/man3/alloca.3:46
msgid "alloca - allocate memory that is automatically freed"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:46
+#: build/C/man3/alloca.3:48
msgid "B<#include E<lt>alloca.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:48
+#: build/C/man3/alloca.3:50
msgid "B<void *alloca(size_t >I<size>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:58
+#: build/C/man3/alloca.3:60
msgid ""
"The B<alloca>() function allocates I<size> bytes of space in the stack "
"frame of the caller. This temporary space is automatically freed when the "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:63
+#: build/C/man3/alloca.3:65
msgid ""
"The B<alloca>() function returns a pointer to the beginning of the "
"allocated space. If the allocation causes stack overflow, program behavior "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:65
+#: build/C/man3/alloca.3:67
msgid "This function is not in POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:71
+#: build/C/man3/alloca.3:73
msgid ""
"There is evidence that the B<alloca>() function appeared in 32V, PWB, "
"PWB.2, 3BSD, and 4BSD. There is a man page for it in 4.3BSD. Linux uses "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:86
+#: build/C/man3/alloca.3:88
msgid ""
"The B<alloca>() function is machine- and compiler-dependent. For certain "
"applications, its use can improve efficiency compared to the use of "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:95
+#: build/C/man3/alloca.3:97
msgid ""
"Because the space allocated by B<alloca>() is allocated within the stack "
"frame, that space is automatically freed if the function return is jumped "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:100
+#: build/C/man3/alloca.3:102
msgid "Do not attempt to B<free>(3) space allocated by B<alloca>()!"
msgstr ""
#. type: SS
-#: build/C/man3/alloca.3:100
+#: build/C/man3/alloca.3:102
#, no-wrap
-msgid "Notes on the GNU Version"
+msgid "Notes on the GNU version"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:122
+#: build/C/man3/alloca.3:124
msgid ""
"Normally, B<gcc>(1) translates calls to B<alloca>() with inlined code. "
"This is not done when either the I<-ansi>, I<-std=c89>, I<-std=c99>, or the "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:125
+#: build/C/man3/alloca.3:127
#, no-wrap
msgid " #define alloca(size) __builtin_alloca (size)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:128
+#: build/C/man3/alloca.3:130
msgid "with messy consequences if one has a private version of this function."
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:132
+#: build/C/man3/alloca.3:134
msgid ""
"The fact that the code is inlined means that it is impossible to take the "
"address of this function, or to change its behavior by linking with a "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:136
+#: build/C/man3/alloca.3:138
msgid ""
"The inlined code often consists of a single instruction adjusting the stack "
"pointer, and does not check for stack overflow. Thus, there is no NULL "
msgstr ""
#. type: SH
-#: build/C/man3/alloca.3:136 build/C/man2/cacheflush.2:81 build/C/man3/mallinfo.3:113 build/C/man3/mallopt.3:404 build/C/man2/mlock.2:305 build/C/man2/mmap.2:544 build/C/man3/mtrace.3:100 build/C/man2/posix_fadvise.2:177 build/C/man2/shmget.2:284
+#: build/C/man3/alloca.3:138 build/C/man2/cacheflush.2:82 build/C/man3/mallinfo.3:114 build/C/man3/mallopt.3:406 build/C/man2/mlock.2:304 build/C/man2/mmap.2:587 build/C/man3/mtrace.3:102 build/C/man2/posix_fadvise.2:178 build/C/man2/shmget.2:299
#, no-wrap
msgid "BUGS"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:141
+#: build/C/man3/alloca.3:143
msgid ""
"There is no error indication if the stack frame cannot be extended. "
"(However, after a failed allocation, the program is likely to receive a "
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:149
+#: build/C/man3/alloca.3:151
msgid ""
"On many systems B<alloca>() cannot be used inside the list of arguments of "
"a function call, because the stack space reserved by B<alloca>() would "
msgstr ""
#. type: SH
-#: build/C/man3/alloca.3:149 build/C/man2/fallocate.2:191 build/C/man2/madvise.2:371 build/C/man3/mallinfo.3:269 build/C/man3/malloc_get_state.3:109 build/C/man3/malloc_hook.3:133 build/C/man3/malloc_info.3:252 build/C/man3/malloc_stats.3:59 build/C/man3/malloc_trim.3:76 build/C/man3/malloc_usable_size.3:60 build/C/man3/mallopt.3:564 build/C/man3/mcheck.3:204 build/C/man2/mlock.2:330 build/C/man2/mmap.2:653 build/C/man2/mmap2.2:92 build/C/man2/mprotect.2:220 build/C/man2/mremap.2:200 build/C/man2/msync.2:118 build/C/man3/mtrace.3:165 build/C/man2/posix_fadvise.2:182 build/C/man3/posix_fallocate.3:126 build/C/man3/posix_memalign.3:270 build/C/man2/readahead.2:92 build/C/man2/remap_file_pages.2:155 build/C/man3/shm_open.3:269 build/C/man7/shm_overview.7:114 build/C/man2/shmctl.2:403 build/C/man2/shmget.2:290 build/C/man2/shmop.2:282 build/C/man2/subpage_prot.2:120 build/C/man2/sync_file_range.2:217
+#: build/C/man3/alloca.3:151 build/C/man2/fallocate.2:198 build/C/man2/madvise.2:371 build/C/man3/mallinfo.3:270 build/C/man3/malloc_get_state.3:111 build/C/man3/malloc_hook.3:137 build/C/man3/malloc_info.3:254 build/C/man3/malloc_stats.3:61 build/C/man3/malloc_trim.3:78 build/C/man3/malloc_usable_size.3:62 build/C/man3/mallopt.3:566 build/C/man3/mcheck.3:204 build/C/man2/mlock.2:329 build/C/man2/mmap.2:712 build/C/man2/mmap2.2:92 build/C/man2/mprotect.2:226 build/C/man2/mremap.2:199 build/C/man2/msync.2:118 build/C/man3/mtrace.3:167 build/C/man2/posix_fadvise.2:183 build/C/man3/posix_fallocate.3:128 build/C/man3/posix_memalign.3:270 build/C/man2/readahead.2:92 build/C/man2/remap_file_pages.2:157 build/C/man3/shm_open.3:269 build/C/man7/shm_overview.7:114 build/C/man2/shmctl.2:418 build/C/man2/shmget.2:305 build/C/man2/shmop.2:287 build/C/man2/subpage_prot.2:128 build/C/man2/sync_file_range.2:217
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: Plain text
-#: build/C/man3/alloca.3:153
+#: build/C/man3/alloca.3:155
msgid "B<brk>(2), B<longjmp>(3), B<malloc>(3)"
msgstr ""
#. type: TH
-#: build/C/man2/cacheflush.2:24
+#: build/C/man2/cacheflush.2:25
#, no-wrap
msgid "CACHEFLUSH"
msgstr ""
#. type: TH
-#: build/C/man2/cacheflush.2:24
+#: build/C/man2/cacheflush.2:25
#, no-wrap
msgid "2007-05-26"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:27
+#: build/C/man2/cacheflush.2:28
msgid "cacheflush - flush contents of instruction and/or data cache"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:30
+#: build/C/man2/cacheflush.2:31
#, no-wrap
msgid "B<#include E<lt>asm/cachectl.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:32
+#: build/C/man2/cacheflush.2:33
#, no-wrap
msgid "B<int cacheflush(char *>I<addr>B<, int >I<nbytes>B<, int >I<cache>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:42
+#: build/C/man2/cacheflush.2:43
msgid ""
"B<cacheflush>() flushes the contents of the indicated cache(s) for the user "
"addresses in the range I<addr> to I<(addr+nbytes-1)>. I<cache> may be one "
msgstr ""
#. type: TP
-#: build/C/man2/cacheflush.2:42
+#: build/C/man2/cacheflush.2:43
#, no-wrap
msgid "B<ICACHE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:45
+#: build/C/man2/cacheflush.2:46
msgid "Flush the instruction cache."
msgstr ""
#. type: TP
-#: build/C/man2/cacheflush.2:45
+#: build/C/man2/cacheflush.2:46
#, no-wrap
msgid "B<DCACHE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:48
+#: build/C/man2/cacheflush.2:49
msgid "Write back to memory and invalidate the affected valid cache lines."
msgstr ""
#. type: TP
-#: build/C/man2/cacheflush.2:48
+#: build/C/man2/cacheflush.2:49
#, no-wrap
msgid "B<BCACHE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:52
+#: build/C/man2/cacheflush.2:53
msgid "Same as B<(ICACHE|DCACHE)>."
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:58
+#: build/C/man2/cacheflush.2:59
msgid ""
"B<cacheflush>() returns 0 on success or -1 on error. If errors are "
"detected, I<errno> will indicate the error."
msgstr ""
#. type: TP
-#: build/C/man2/cacheflush.2:59 build/C/man2/mmap2.2:62 build/C/man2/mremap.2:143 build/C/man2/shmctl.2:303 build/C/man2/subpage_prot.2:67
+#: build/C/man2/cacheflush.2:60 build/C/man2/mmap2.2:62 build/C/man2/mremap.2:142 build/C/man2/shmctl.2:305 build/C/man2/subpage_prot.2:72
#, no-wrap
msgid "B<EFAULT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:66
+#: build/C/man2/cacheflush.2:67
msgid ""
"Some or all of the address range I<addr> to I<(addr+nbytes-1)> is not "
"accessible."
msgstr ""
#. type: TP
-#: build/C/man2/cacheflush.2:66 build/C/man2/fallocate.2:124 build/C/man2/madvise.2:282 build/C/man3/malloc_info.3:52 build/C/man2/mlock.2:158 build/C/man2/mlock.2:165 build/C/man2/mlock.2:177 build/C/man2/mmap.2:421 build/C/man2/mmap.2:429 build/C/man2/mmap.2:434 build/C/man2/mmap2.2:65 build/C/man2/mprotect.2:89 build/C/man2/mremap.2:152 build/C/man2/msync.2:80 build/C/man2/posix_fadvise.2:93 build/C/man3/posix_fallocate.3:79 build/C/man3/posix_memalign.3:156 build/C/man2/readahead.2:76 build/C/man2/remap_file_pages.2:130 build/C/man2/remap_file_pages.2:137 build/C/man3/shm_open.3:211 build/C/man2/shmctl.2:317 build/C/man2/shmget.2:196 build/C/man2/shmop.2:195 build/C/man2/shmop.2:218 build/C/man2/subpage_prot.2:72 build/C/man2/sync_file_range.2:152
+#: build/C/man2/cacheflush.2:67 build/C/man2/fallocate.2:127 build/C/man2/madvise.2:282 build/C/man3/malloc_info.3:54 build/C/man2/mlock.2:157 build/C/man2/mlock.2:164 build/C/man2/mlock.2:176 build/C/man2/mmap.2:423 build/C/man2/mmap.2:431 build/C/man2/mmap.2:436 build/C/man2/mmap2.2:65 build/C/man2/mprotect.2:95 build/C/man2/mremap.2:151 build/C/man2/msync.2:80 build/C/man2/posix_fadvise.2:94 build/C/man3/posix_fallocate.3:81 build/C/man3/posix_memalign.3:156 build/C/man2/readahead.2:76 build/C/man2/remap_file_pages.2:132 build/C/man2/remap_file_pages.2:139 build/C/man3/shm_open.3:211 build/C/man2/shmctl.2:319 build/C/man2/shmget.2:198 build/C/man2/shmop.2:200 build/C/man2/shmop.2:223 build/C/man2/subpage_prot.2:77 build/C/man2/sync_file_range.2:152
#, no-wrap
msgid "B<EINVAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:74
+#: build/C/man2/cacheflush.2:75
msgid "I<cache> is not one of B<ICACHE>, B<DCACHE>, or B<BCACHE>."
msgstr ""
#. Investigate the details and update this page.
#. Irix 6.5 appears to have a cacheflush() syscall -- mtk
#. type: Plain text
-#: build/C/man2/cacheflush.2:81
+#: build/C/man2/cacheflush.2:82
msgid ""
"This Linux-specific system call is only available on MIPS-based systems. It "
"should not be used in programs intended to be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/cacheflush.2:88
+#: build/C/man2/cacheflush.2:89
msgid ""
"The current implementation ignores the I<addr> and I<nbytes> arguments. "
"Therefore, the whole cache is always flushed."
msgstr ""
#. type: TH
-#: build/C/man2/fallocate.2:8
+#: build/C/man2/fallocate.2:11
#, no-wrap
msgid "FALLOCATE"
msgstr ""
#. type: TH
-#: build/C/man2/fallocate.2:8
+#: build/C/man2/fallocate.2:11 build/C/man3/posix_fallocate.3:25 build/C/man2/shmop.2:41
#, no-wrap
-msgid "2012-04-23"
+msgid "2013-02-12"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:11
+#: build/C/man2/fallocate.2:14
msgid "fallocate - manipulate file space"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:15 build/C/man2/readahead.2:35
+#: build/C/man2/fallocate.2:18 build/C/man2/readahead.2:35
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:18
+#: build/C/man2/fallocate.2:21
#, no-wrap
msgid ""
"B<int fallocate(int >I<fd>B<, int >I<mode>B<, off_t >I<offset>B<, off_t "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:24
+#: build/C/man2/fallocate.2:27
msgid ""
"This is a nonportable, Linux-specific system call. For the portable, "
"POSIX.1-specified method of ensuring that space is allocated for a file, see "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:34
+#: build/C/man2/fallocate.2:37
msgid ""
"B<fallocate>() allows the caller to directly manipulate the allocated disk "
"space for the file referred to by I<fd> for the byte range starting at "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:39
+#: build/C/man2/fallocate.2:42
msgid ""
"The I<mode> argument determines the operation to be performed on the given "
"range. Details of the supported operations are given in the subsections "
msgstr ""
#. type: SS
-#: build/C/man2/fallocate.2:39
+#: build/C/man2/fallocate.2:42
#, no-wrap
msgid "Allocating disk space"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:58
+#: build/C/man2/fallocate.2:61
msgid ""
"The default operation (i.e., I<mode> is zero) of B<fallocate>() allocates "
"and initializes to zero the disk space within the range specified by "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:64
+#: build/C/man2/fallocate.2:67
msgid ""
"After a successful call, subsequent writes into the range specified by "
"I<offset> and I<len> are guaranteed not to fail because of lack of disk "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:75
+#: build/C/man2/fallocate.2:78
msgid ""
"If the B<FALLOC_FL_KEEP_SIZE> flag is specified in I<mode>, the behavior of "
"the call is similar, but the file size will not be changed even if "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:79
+#: build/C/man2/fallocate.2:82
msgid ""
"Because allocation is done in block size chunks, B<fallocate>() may "
"allocate a larger range of disk space than was specified."
msgstr ""
#. type: SS
-#: build/C/man2/fallocate.2:79
+#: build/C/man2/fallocate.2:82
#, no-wrap
msgid "Deallocating file space"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:94
+#: build/C/man2/fallocate.2:97
msgid ""
"Specifying the B<FALLOC_FL_PUNCH_HOLE> flag (available since Linux 2.6.38) "
"in I<mode> deallocates space (i.e., creates a hole) in the byte range "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:105
+#: build/C/man2/fallocate.2:108
msgid ""
"The B<FALLOC_FL_PUNCH_HOLE> flag must be ORed with B<FALLOC_FL_KEEP_SIZE> in "
"I<mode>; in other words, even when punching off the end of the file, the "
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:109
+#: build/C/man2/fallocate.2:112
msgid ""
"Not all file systems support B<FALLOC_FL_PUNCH_HOLE>; if a file system "
"doesn't support the operation, an error is returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:112
+#: build/C/man2/fallocate.2:115
msgid "B<fallocate>() returns zero on success, and -1 on failure."
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:113 build/C/man2/madvise.2:279 build/C/man2/mmap.2:415 build/C/man2/posix_fadvise.2:90 build/C/man3/posix_fallocate.3:71 build/C/man2/readahead.2:72 build/C/man2/sync_file_range.2:148
+#: build/C/man2/fallocate.2:116 build/C/man2/madvise.2:279 build/C/man2/mmap.2:417 build/C/man2/posix_fadvise.2:91 build/C/man3/posix_fallocate.3:73 build/C/man2/readahead.2:72 build/C/man2/sync_file_range.2:148
#, no-wrap
msgid "B<EBADF>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:117 build/C/man3/posix_fallocate.3:75
+#: build/C/man2/fallocate.2:120 build/C/man3/posix_fallocate.3:77
msgid "I<fd> is not a valid file descriptor, or is not opened for writing."
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:117 build/C/man3/posix_fallocate.3:75
+#: build/C/man2/fallocate.2:120 build/C/man3/posix_fallocate.3:77
#, no-wrap
msgid "B<EFBIG>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:121
+#: build/C/man2/fallocate.2:124
msgid "I<offset>+I<len> exceeds the maximum file size."
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:121
+#: build/C/man2/fallocate.2:124
#, no-wrap
msgid "B<EINTR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:124
+#: build/C/man2/fallocate.2:127
msgid "A signal was caught during execution."
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:136 build/C/man3/posix_fallocate.3:85
+#: build/C/man2/fallocate.2:139 build/C/man3/posix_fallocate.3:87
msgid "I<offset> was less than 0, or I<len> was less than or equal to 0."
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:136 build/C/man2/madvise.2:310 build/C/man2/sync_file_range.2:160
+#: build/C/man2/fallocate.2:139 build/C/man2/madvise.2:310 build/C/man2/sync_file_range.2:160
#, no-wrap
msgid "B<EIO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:139
+#: build/C/man2/fallocate.2:142
msgid "An I/O error occurred while reading from or writing to a file system."
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:139 build/C/man2/mmap.2:450 build/C/man3/posix_fallocate.3:85
+#: build/C/man2/fallocate.2:142 build/C/man2/mmap.2:452 build/C/man3/posix_fallocate.3:87
#, no-wrap
msgid "B<ENODEV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:146
+#: build/C/man2/fallocate.2:149
msgid ""
"I<fd> does not refer to a regular file or a directory. (If I<fd> is a pipe "
"or FIFO, a different error results.)"
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:146 build/C/man3/posix_fallocate.3:89 build/C/man2/shmget.2:214 build/C/man2/sync_file_range.2:166
+#: build/C/man2/fallocate.2:149 build/C/man3/posix_fallocate.3:91 build/C/man2/shmget.2:216 build/C/man2/sync_file_range.2:166
#, no-wrap
msgid "B<ENOSPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:151 build/C/man3/posix_fallocate.3:94
+#: build/C/man2/fallocate.2:154 build/C/man3/posix_fallocate.3:96
msgid ""
"There is not enough space left on the device containing the file referred to "
"by I<fd>."
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:155
+#: build/C/man2/fallocate.2:158
msgid "This kernel does not implement B<fallocate>()."
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:155
+#: build/C/man2/fallocate.2:158
#, no-wrap
msgid "B<EOPNOTSUPP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:164
+#: build/C/man2/fallocate.2:167
msgid ""
"The file system containing the file referred to by I<fd> does not support "
"this operation; or the I<mode> is not supported by the file system "
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:164 build/C/man2/mlock.2:144 build/C/man2/mlock.2:183 build/C/man2/mmap.2:458 build/C/man2/shmctl.2:342 build/C/man2/shmget.2:222
+#: build/C/man2/fallocate.2:167 build/C/man2/mlock.2:143 build/C/man2/mlock.2:182 build/C/man2/mmap.2:460 build/C/man2/shmctl.2:344 build/C/man2/shmget.2:224
#, no-wrap
msgid "B<EPERM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:180
+#: build/C/man2/fallocate.2:183
msgid ""
"The file referred to by I<fd> is marked immutable (see B<chattr>(1)). Or: "
"I<mode> specifies B<FALLOC_FL_PUNCH_HOLE> and the file referred to by I<fd> "
msgstr ""
#. type: TP
-#: build/C/man2/fallocate.2:180 build/C/man2/posix_fadvise.2:96 build/C/man3/posix_fallocate.3:94 build/C/man2/sync_file_range.2:169
+#: build/C/man2/fallocate.2:183 build/C/man2/posix_fadvise.2:97 build/C/man3/posix_fallocate.3:96 build/C/man2/sync_file_range.2:169
#, no-wrap
msgid "B<ESPIPE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:184
+#: build/C/man2/fallocate.2:187
msgid "I<fd> refers to a pipe or FIFO."
msgstr ""
#. type: SH
-#: build/C/man2/fallocate.2:184 build/C/man3/malloc_info.3:56 build/C/man3/mcheck.3:133 build/C/man2/mmap2.2:74 build/C/man2/posix_fadvise.2:103 build/C/man3/posix_fallocate.3:98 build/C/man3/posix_memalign.3:165 build/C/man2/readahead.2:82 build/C/man2/remap_file_pages.2:146 build/C/man3/shm_open.3:247 build/C/man2/subpage_prot.2:85 build/C/man2/sync_file_range.2:177
+#: build/C/man2/fallocate.2:187 build/C/man3/malloc_info.3:58 build/C/man3/mcheck.3:134 build/C/man2/mmap2.2:74 build/C/man2/posix_fadvise.2:104 build/C/man3/posix_fallocate.3:100 build/C/man3/posix_memalign.3:165 build/C/man2/readahead.2:82 build/C/man2/remap_file_pages.2:148 build/C/man3/shm_open.3:247 build/C/man2/subpage_prot.2:90 build/C/man2/sync_file_range.2:177
#, no-wrap
msgid "VERSIONS"
msgstr ""
+#. See http://sourceware.org/bugzilla/show_bug.cgi?id=14964
#. type: Plain text
-#: build/C/man2/fallocate.2:188
+#: build/C/man2/fallocate.2:195
msgid ""
"B<fallocate>() is available on Linux since kernel 2.6.23. Support is "
-"provided by glibc since version 2.10."
+"provided by glibc since version 2.10. The B<FALLOC_FL_*> flags are defined "
+"in glibc headers only since version 2.18."
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:191
+#: build/C/man2/fallocate.2:198
msgid "B<fallocate>() is Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/fallocate.2:195
-msgid "B<ftruncate>(2), B<posix_fadvise>(3), B<posix_fallocate>(3)"
+#: build/C/man2/fallocate.2:203
+msgid "B<fallocate>(1), B<ftruncate>(2), B<posix_fadvise>(3), B<posix_fallocate>(3)"
msgstr ""
#. type: TH
msgstr ""
#. type: TH
-#: build/C/man2/madvise.2:35 build/C/man3/malloc_info.3:23
+#: build/C/man2/madvise.2:35 build/C/man3/malloc_info.3:25
#, no-wrap
msgid "2012-04-28"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/madvise.2:46 build/C/man2/posix_fadvise.2:42 build/C/man3/posix_fallocate.3:37 build/C/man3/posix_memalign.3:48
+#: build/C/man2/madvise.2:46 build/C/man2/posix_fadvise.2:43 build/C/man3/posix_fallocate.3:39 build/C/man3/posix_memalign.3:49
msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr ""
"page). KSM only merges private anonymous pages (see B<mmap>(2)). The KSM "
"feature is intended for applications that generate many instances of the "
"same data (e.g., virtualization systems such as KVM). It can consume a lot "
-"of processing power; use with care. See the kernel source file "
+"of processing power; use with care. See the Linux kernel source file "
"I<Documentation/vm/ksm.txt> for more details. The B<MADV_MERGEABLE> and "
"B<MADV_UNMERGEABLE> operations are only available if the kernel was "
"configured with B<CONFIG_KSM>."
"and access large regions of that memory at a time (e.g., virtualization "
"systems such as QEMU). It can very easily waste memory (e.g., a 2MB mapping "
"that only ever accesses 1 byte will result in 2MB of wired memory instead of "
-"one 4KB page). See the kernel source file I<Documentation/vm/transhuge.txt> "
-"for more details. The B<MADV_HUGEPAGE> and B<MADV_NOHUGEPAGE> operations "
-"are only available if the kernel was configured with "
-"B<CONFIG_TRANSPARENT_HUGEPAGE>."
+"one 4KB page). See the Linux kernel source file "
+"I<Documentation/vm/transhuge.txt> for more details. The B<MADV_HUGEPAGE> "
+"and B<MADV_NOHUGEPAGE> operations are only available if the kernel was "
+"configured with B<CONFIG_TRANSPARENT_HUGEPAGE>."
msgstr ""
#. type: TP
msgstr ""
#. type: TP
-#: build/C/man2/madvise.2:276 build/C/man2/mlock.2:155 build/C/man2/mmap.2:411 build/C/man2/mremap.2:137
+#: build/C/man2/madvise.2:276 build/C/man2/mlock.2:154 build/C/man2/mmap.2:413 build/C/man2/mremap.2:136
#, no-wrap
msgid "B<EAGAIN>"
msgstr ""
msgstr ""
#. type: IP
-#: build/C/man2/madvise.2:286 build/C/man2/madvise.2:292 build/C/man2/madvise.2:295 build/C/man2/madvise.2:298 build/C/man2/madvise.2:301 build/C/man3/mallopt.3:233 build/C/man3/mallopt.3:239
+#: build/C/man2/madvise.2:286 build/C/man2/madvise.2:292 build/C/man2/madvise.2:295 build/C/man2/madvise.2:298 build/C/man2/madvise.2:301 build/C/man3/mallopt.3:235 build/C/man3/mallopt.3:241
#, no-wrap
msgid "*"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/madvise.2:316 build/C/man2/madvise.2:321 build/C/man2/mlock.2:124 build/C/man2/mlock.2:132 build/C/man2/mlock.2:170 build/C/man2/mmap.2:454 build/C/man2/mprotect.2:94 build/C/man2/mprotect.2:97 build/C/man2/mremap.2:180 build/C/man2/msync.2:93 build/C/man3/posix_memalign.3:162 build/C/man2/shmctl.2:326 build/C/man2/shmget.2:211 build/C/man2/shmop.2:209 build/C/man2/subpage_prot.2:82 build/C/man2/sync_file_range.2:163
+#: build/C/man2/madvise.2:316 build/C/man2/madvise.2:321 build/C/man2/mlock.2:123 build/C/man2/mlock.2:131 build/C/man2/mlock.2:169 build/C/man2/mmap.2:456 build/C/man2/mprotect.2:100 build/C/man2/mprotect.2:103 build/C/man2/mremap.2:179 build/C/man2/msync.2:93 build/C/man3/posix_memalign.3:162 build/C/man2/shmctl.2:328 build/C/man2/shmget.2:213 build/C/man2/shmop.2:214 build/C/man2/subpage_prot.2:87 build/C/man2/sync_file_range.2:163
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man2/madvise.2:347 build/C/man2/mlock.2:268 build/C/man2/shmget.2:278
+#: build/C/man2/madvise.2:347 build/C/man2/mlock.2:267 build/C/man2/shmget.2:293
#, no-wrap
-msgid "Linux Notes"
+msgid "Linux notes"
msgstr ""
#. type: Plain text
msgstr ""
#. type: TH
-#: build/C/man3/mallinfo.3:24
+#: build/C/man3/mallinfo.3:26
#, no-wrap
msgid "MALLINFO"
msgstr ""
#. type: TH
-#: build/C/man3/mallinfo.3:24 build/C/man3/malloc_stats.3:24
+#: build/C/man3/mallinfo.3:26 build/C/man3/malloc_stats.3:26
#, no-wrap
msgid "2012-05-06"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:27
+#: build/C/man3/mallinfo.3:29
msgid "mallinfo - obtain memory allocation information"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:29 build/C/man3/malloc_stats.3:29 build/C/man3/malloc_trim.3:29 build/C/man3/malloc_usable_size.3:28 build/C/man3/mallopt.3:29
+#: build/C/man3/mallinfo.3:31 build/C/man3/malloc_stats.3:31 build/C/man3/malloc_trim.3:31 build/C/man3/malloc_usable_size.3:30 build/C/man3/mallopt.3:31
msgid "B<#include E<lt>malloc.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:31
+#: build/C/man3/mallinfo.3:33
msgid "B<struct mallinfo mallinfo(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:39
+#: build/C/man3/mallinfo.3:41
msgid ""
"The B<mallinfo>() function returns a copy of a structure containing "
"information about memory allocations performed by B<malloc>(3) and related "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:54
+#: build/C/man3/mallinfo.3:56
#, no-wrap
msgid ""
"struct mallinfo {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:60
+#: build/C/man3/mallinfo.3:62
msgid "The fields of the I<mallinfo> structure contain the following information:"
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:61
+#: build/C/man3/mallinfo.3:62
#, no-wrap
msgid "I<arena>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:67
+#: build/C/man3/mallinfo.3:68
msgid ""
"The total amount of memory allocated by means other than B<mmap>(2) (i.e., "
"memory allocated on the heap). This figure includes both in-use blocks and "
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:67
+#: build/C/man3/mallinfo.3:68
#, no-wrap
msgid "I<ordblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:70
+#: build/C/man3/mallinfo.3:71
msgid "The number of ordinary (i.e., non-fastbin) free blocks."
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:70
+#: build/C/man3/mallinfo.3:71
#, no-wrap
msgid "I<smblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:74
+#: build/C/man3/mallinfo.3:75
msgid "The number of fastbin free blocks (see B<mallopt>(3))."
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:74
+#: build/C/man3/mallinfo.3:75
#, no-wrap
msgid "I<hblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:82
+#: build/C/man3/mallinfo.3:83
msgid ""
"The number of blocks currently allocated using B<mmap>(2). (See the "
"discussion of B<M_MMAP_THRESHOLD> in B<mallopt>(3).)"
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:82
+#: build/C/man3/mallinfo.3:83
#, no-wrap
msgid "I<hblkhd>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:86
+#: build/C/man3/mallinfo.3:87
msgid "The number of bytes in blocks currently allocated using B<mmap>(2)."
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:86
+#: build/C/man3/mallinfo.3:87
#, no-wrap
msgid "I<usmblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:91
+#: build/C/man3/mallinfo.3:92
msgid ""
"The \"highwater mark\" for allocated space\\(emthat is, the maximum amount "
"of space that was ever allocated. This field is maintained only in "
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:91
+#: build/C/man3/mallinfo.3:92
#, no-wrap
msgid "I<fsmblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:94
+#: build/C/man3/mallinfo.3:95
msgid "The total number of bytes in fastbin free blocks."
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:94
+#: build/C/man3/mallinfo.3:95
#, no-wrap
msgid "I<uordblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:97
+#: build/C/man3/mallinfo.3:98
msgid "The total number of bytes used by in-use allocations."
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:97
+#: build/C/man3/mallinfo.3:98
#, no-wrap
msgid "I<fordblks>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:100
+#: build/C/man3/mallinfo.3:101
msgid "The total number of bytes in free blocks."
msgstr ""
#. type: TP
-#: build/C/man3/mallinfo.3:100
+#: build/C/man3/mallinfo.3:101
#, no-wrap
msgid "I<keepcost>"
msgstr ""
#. .SH VERSIONS
#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/mallinfo.3:109
+#: build/C/man3/mallinfo.3:110
msgid ""
"The total amount of releasable free space at the top of the heap. This is "
"the maximum number of bytes that could ideally (i.e., ignoring page "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:113
+#: build/C/man3/mallinfo.3:114
msgid ""
"This function is not specified by POSIX or the C standards. A similar "
"function exists on many System V derivatives, and was specified in the SVID."
#. "[patch] Fix mallinfo() to accumulate results for all arenas"
#. on libc-alpha@sourceware.org
#. type: Plain text
-#: build/C/man3/mallinfo.3:125
+#: build/C/man3/mallinfo.3:126
msgid ""
"B<Information is returned for only the main memory allocation area.> "
"Allocations in other arenas are excluded. See B<malloc_stats>(3) and "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:133
+#: build/C/man3/mallinfo.3:134
msgid ""
"The fields of the I<mallinfo> structure are typed as I<int>. However, "
"because some internal bookkeeping values may be of type I<long>, the "
msgstr ""
#. type: SH
-#: build/C/man3/mallinfo.3:133 build/C/man3/malloc_hook.3:85 build/C/man3/malloc_info.3:80 build/C/man3/mallopt.3:464 build/C/man3/mcheck.3:159 build/C/man2/mmap.2:571 build/C/man2/mprotect.2:142 build/C/man3/mtrace.3:106
+#: build/C/man3/mallinfo.3:134 build/C/man3/malloc_hook.3:89 build/C/man3/malloc_info.3:82 build/C/man3/mallopt.3:466 build/C/man3/mcheck.3:159 build/C/man2/mmap.2:630 build/C/man2/mprotect.2:148 build/C/man3/mtrace.3:108
#, no-wrap
msgid "EXAMPLE"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:139
+#: build/C/man3/mallinfo.3:140
msgid ""
"The program below employs B<mallinfo>() to retrieve memory allocation "
"statistics before and after allocating and freeing some blocks of memory. "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:143
+#: build/C/man3/mallinfo.3:144
msgid ""
"The first two command-line arguments specify the number and size of blocks "
"to be allocated with B<malloc>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:157
+#: build/C/man3/mallinfo.3:158
msgid ""
"The remaining three arguments specify which of the allocated blocks should "
"be freed with B<free>(3). These three arguments are optional, and specify "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:161
+#: build/C/man3/mallinfo.3:162
msgid ""
"In the following example run of the program, 1000 allocations of 100 bytes "
"are performed, and then every second allocated block is freed:"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:176
+#: build/C/man3/mallinfo.3:177
#, no-wrap
msgid ""
"$ B<./a.out 1000 100 2>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:188
+#: build/C/man3/mallinfo.3:189
#, no-wrap
msgid ""
"============== After allocating blocks ==============\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:200
+#: build/C/man3/mallinfo.3:201
#, no-wrap
msgid ""
"============== After freeing blocks ==============\n"
msgstr ""
#. type: SS
-#: build/C/man3/mallinfo.3:202 build/C/man3/malloc_info.3:163 build/C/man3/mallopt.3:530 build/C/man3/mcheck.3:176 build/C/man2/mprotect.2:159
+#: build/C/man3/mallinfo.3:203 build/C/man3/malloc_info.3:165 build/C/man3/mallopt.3:532 build/C/man3/mcheck.3:176 build/C/man2/mprotect.2:165
#, no-wrap
msgid "Program source"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:207
+#: build/C/man3/mallinfo.3:208
#, no-wrap
msgid ""
"#include E<lt>malloc.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:212
+#: build/C/man3/mallinfo.3:213
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:214
+#: build/C/man3/mallinfo.3:215
#, no-wrap
msgid " mi = mallinfo();\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:226
+#: build/C/man3/mallinfo.3:227
#, no-wrap
msgid ""
" printf(\"Total non-mmapped bytes (arena): %d\\en\", mi.arena);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:234
+#: build/C/man3/mallinfo.3:235
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:238
+#: build/C/man3/mallinfo.3:239
#, no-wrap
msgid ""
" if (argc E<lt> 3 || strcmp(argv[1], \"--help\") == 0)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:244
+#: build/C/man3/mallinfo.3:245
#, no-wrap
msgid ""
" numBlocks = atoi(argv[1]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:247
+#: build/C/man3/mallinfo.3:248
#, no-wrap
msgid ""
" printf(\"============== Before allocating blocks "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:251
+#: build/C/man3/mallinfo.3:252
#, no-wrap
msgid ""
" for (j = 0; j E<lt> numBlocks; j++) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:256
+#: build/C/man3/mallinfo.3:257
#, no-wrap
msgid ""
" alloc[j] = malloc(blockSize);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:259
+#: build/C/man3/mallinfo.3:260
#, no-wrap
msgid ""
" printf(\"\\en============== After allocating blocks "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:262
+#: build/C/man3/mallinfo.3:263
#, no-wrap
msgid ""
" for (j = freeBegin; j E<lt> freeEnd; j += freeStep)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:265
+#: build/C/man3/mallinfo.3:266
#, no-wrap
msgid ""
" printf(\"\\en============== After freeing blocks "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:268 build/C/man3/malloc_info.3:251 build/C/man3/mallopt.3:563 build/C/man3/mcheck.3:203 build/C/man2/mmap.2:652
+#: build/C/man3/mallinfo.3:269 build/C/man3/malloc_info.3:253 build/C/man3/mallopt.3:565 build/C/man3/mcheck.3:203 build/C/man2/mmap.2:711
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallinfo.3:278
+#: build/C/man3/mallinfo.3:279
msgid ""
"B<mmap>(2), B<malloc>(3), B<malloc_info>(3), B<malloc_stats>(3), "
"B<malloc_trim>(3), B<mallopt>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_get_state.3:23
+#: build/C/man3/malloc_get_state.3:25
#, no-wrap
msgid "MALLOC_GET_STATE"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_get_state.3:23
+#: build/C/man3/malloc_get_state.3:25
#, no-wrap
msgid "2012-05-04"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:26
+#: build/C/man3/malloc_get_state.3:28
msgid ""
"malloc_get_state, malloc_set_state - record and restore state of malloc "
"implementation"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:29 build/C/man3/posix_memalign.3:34
+#: build/C/man3/malloc_get_state.3:31 build/C/man3/posix_memalign.3:35
#, no-wrap
msgid "B<#include E<lt>stdlib.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:31
+#: build/C/man3/malloc_get_state.3:33
#, no-wrap
msgid "B<void* malloc_get_state(void);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:33
+#: build/C/man3/malloc_get_state.3:35
#, no-wrap
msgid "B<int malloc_set_state(void *>I<state>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:51
+#: build/C/man3/malloc_get_state.3:53
msgid ""
"The B<malloc_get_state>() function records the current state of all "
"B<malloc>(3) internal bookkeeping variables (but not the actual contents of "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:59
+#: build/C/man3/malloc_get_state.3:61
msgid ""
"The B<malloc_set_state>() function restores the state of all B<malloc>(3) "
"internal bookkeeping variables to the values recorded in the opaque data "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:66
+#: build/C/man3/malloc_get_state.3:68
msgid ""
"On success, B<malloc_get_state>() returns a pointer to a newly allocated "
"opaque data structure. On error (for example, memory could not be allocated "
#. /* Must fail if the major version is too high. */
#. if((ms->version & ~0xffl) > (MALLOC_STATE_VERSION & ~0xffl)) return -2;
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:84
+#: build/C/man3/malloc_get_state.3:86
msgid ""
"On success, B<malloc_set_state>() returns 0. If the implementation detects "
"that I<state> does not point to a correctly formed data structure, "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:86 build/C/man3/malloc_hook.3:78 build/C/man3/mcheck.3:146 build/C/man3/mtrace.3:78
+#: build/C/man3/malloc_get_state.3:88 build/C/man3/malloc_hook.3:82 build/C/man3/mcheck.3:147 build/C/man3/mtrace.3:80
msgid "These functions are GNU extensions."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:92
+#: build/C/man3/malloc_get_state.3:94
msgid ""
"These functions are especially useful when using this B<malloc>(3) "
"implementation as part of a shared library, and the heap contents are "
#. i.e., malloc checking is not already in use
#. and the caller requested malloc checking
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:109
+#: build/C/man3/malloc_get_state.3:111
msgid ""
"Hook function pointers are never saved or restored by these functions, with "
"two exceptions: if malloc checking (see B<mallopt>(3)) was in use when "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:112
+#: build/C/man3/malloc_get_state.3:114
msgid "B<malloc>(3), B<mallopt>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_hook.3:6
+#: build/C/man3/malloc_hook.3:10
#, no-wrap
msgid "MALLOC_HOOK"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_hook.3:6
+#: build/C/man3/malloc_hook.3:10
#, no-wrap
msgid "2010-10-13"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:11
+#: build/C/man3/malloc_hook.3:15
msgid ""
"__malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, "
"__realloc_hook, __after_morecore_hook - malloc debugging variables"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:14 build/C/man3/malloc_info.3:29 build/C/man3/posix_memalign.3:40
+#: build/C/man3/malloc_hook.3:18 build/C/man3/malloc_info.3:31 build/C/man3/posix_memalign.3:41
#, no-wrap
msgid "B<#include E<lt>malloc.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:16
+#: build/C/man3/malloc_hook.3:20
#, no-wrap
msgid "B<void *(*__malloc_hook)(size_t >I<size>B<, const void *>I<caller>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:19
+#: build/C/man3/malloc_hook.3:23
#, no-wrap
msgid ""
"B<void *(*__realloc_hook)(void *>I<ptr>B<, size_t >I<size>B<, const void "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:22
+#: build/C/man3/malloc_hook.3:26
#, no-wrap
msgid ""
"B<void *(*__memalign_hook)(size_t >I<alignment>B<, size_t >I<size>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:24
+#: build/C/man3/malloc_hook.3:28
#, no-wrap
msgid "B<void (*__free_hook)(void *>I<ptr>B<, const void *>I<caller>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:26
+#: build/C/man3/malloc_hook.3:30
#, no-wrap
msgid "B<void (*__malloc_initialize_hook)(void);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:28
+#: build/C/man3/malloc_hook.3:32
#, no-wrap
msgid "B<void (*__after_morecore_hook)(void);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:39
+#: build/C/man3/malloc_hook.3:43
msgid ""
"The GNU C library lets you modify the behavior of B<malloc>(3), "
"B<realloc>(3), and B<free>(3) by specifying appropriate hook functions. "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:46
+#: build/C/man3/malloc_hook.3:50
msgid ""
"The variable B<__malloc_initialize_hook> points at a function that is called "
"once when the malloc implementation is initialized. This is a weak "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:49
+#: build/C/man3/malloc_hook.3:53
#, no-wrap
msgid " void (*__malloc_initialize_hook)(void) = my_init_hook;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:54
+#: build/C/man3/malloc_hook.3:58
msgid "Now the function I<my_init_hook>() can do the initialization of all hooks."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:70
+#: build/C/man3/malloc_hook.3:74
msgid ""
"The four functions pointed to by B<__malloc_hook>, B<__realloc_hook>, "
"B<__memalign_hook>, B<__free_hook> have a prototype like the functions "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:76
+#: build/C/man3/malloc_hook.3:80
msgid ""
"The variable B<__after_morecore_hook> points at a function that is called "
"each time after B<sbrk>(2) was asked for more memory."
#. https://bugzilla.redhat.com/show_bug.cgi?id=450187
#. http://sourceware.org/bugzilla/show_bug.cgi?id=9957
#. type: Plain text
-#: build/C/man3/malloc_hook.3:85
+#: build/C/man3/malloc_hook.3:89
msgid ""
"The use of these hook functions is not safe in multithreaded programs, and "
"they are now deprecated. Programmers should instead preempt calls to the "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:87
+#: build/C/man3/malloc_hook.3:91
msgid "Here is a short example of how to use these variables."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:91
+#: build/C/man3/malloc_hook.3:95
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:95
+#: build/C/man3/malloc_hook.3:99
#, no-wrap
msgid ""
"/* Prototypes for our hooks. */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:98
+#: build/C/man3/malloc_hook.3:102
#, no-wrap
msgid ""
"/* Variables to save original hooks. */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:101
+#: build/C/man3/malloc_hook.3:105
#, no-wrap
msgid ""
"/* Override initializing hook from the C library. */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:108
+#: build/C/man3/malloc_hook.3:112
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:113
+#: build/C/man3/malloc_hook.3:117
#, no-wrap
msgid ""
"static void *\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:116
+#: build/C/man3/malloc_hook.3:120
#, no-wrap
msgid ""
" /* Restore all old hooks */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:119
+#: build/C/man3/malloc_hook.3:123
#, no-wrap
msgid ""
" /* Call recursively */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:122
+#: build/C/man3/malloc_hook.3:126
#, no-wrap
msgid ""
" /* Save underlying hooks */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:126
+#: build/C/man3/malloc_hook.3:130
#, no-wrap
msgid ""
" /* printf() might call malloc(), so protect it too. */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:129
+#: build/C/man3/malloc_hook.3:133
#, no-wrap
msgid ""
" /* Restore our own hooks */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:132
+#: build/C/man3/malloc_hook.3:136
#, no-wrap
msgid ""
" return result;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_hook.3:138
+#: build/C/man3/malloc_hook.3:142
msgid "B<mallinfo>(3), B<malloc>(3), B<mcheck>(3), B<mtrace>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_info.3:23
+#: build/C/man3/malloc_info.3:25
#, no-wrap
msgid "MALLOC_INFO"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:26
+#: build/C/man3/malloc_info.3:28
msgid "malloc_info - export malloc state to a stream"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:31
+#: build/C/man3/malloc_info.3:33
#, no-wrap
msgid "B<int malloc_info(int >I<options>B<, FILE *>I<fp>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:42
+#: build/C/man3/malloc_info.3:44
msgid ""
"The B<malloc_info>() function exports an XML string that describes the "
"current state of the memory-allocation implementation in the caller. The "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:46
+#: build/C/man3/malloc_info.3:48
msgid "As currently implemented, I<options> must be zero."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:51
+#: build/C/man3/malloc_info.3:53
msgid "On success, B<malloc_info>() returns 0; on error, it returns -1."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:56
+#: build/C/man3/malloc_info.3:58
msgid "I<options> was nonzero."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:59
-msgid "B<malloc_info>(3) was added to glibc in version 2.10."
+#: build/C/man3/malloc_info.3:61
+msgid "B<malloc_info>() was added to glibc in version 2.10."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:61 build/C/man3/malloc_stats.3:55 build/C/man3/malloc_trim.3:60 build/C/man3/malloc_usable_size.3:48
+#: build/C/man3/malloc_info.3:63 build/C/man3/malloc_stats.3:57 build/C/man3/malloc_trim.3:62 build/C/man3/malloc_usable_size.3:50
msgid "This function is a GNU extension."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:67
+#: build/C/man3/malloc_info.3:69
msgid ""
"The memory-allocation information is provided as an XML string (rather than "
"a C structure) because the information may change over time (according to "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:73
+#: build/C/man3/malloc_info.3:75
msgid ""
"The B<open_memstream>(3) function can be used to send the output of "
"B<malloc_info>() directly into a buffer in memory, rather than to a file."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:80
+#: build/C/man3/malloc_info.3:82
msgid ""
"The B<malloc_info>() function is designed to address deficiencies in "
"B<malloc_stats>(3) and B<mallinfo>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:91
+#: build/C/man3/malloc_info.3:93
msgid ""
"The program below takes up to four command-line arguments, of which the "
"first three are mandatory. The first argument specifies the number of "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:98
+#: build/C/man3/malloc_info.3:100
msgid ""
"The program calls B<malloc_info>() twice to display the memory-allocation "
"state. The first call takes place before any threads are created or memory "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:106
+#: build/C/man3/malloc_info.3:108
msgid ""
"In the following example, the command-line arguments specify the creation of "
"one additional thread, and both the main thread and the additional thread "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:131
+#: build/C/man3/malloc_info.3:133
#, no-wrap
msgid ""
"$ B<getconf GNU_LIBC_VERSION>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:161
+#: build/C/man3/malloc_info.3:163
#, no-wrap
msgid ""
"============ After allocating blocks ============\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:171
+#: build/C/man3/malloc_info.3:173
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:174
+#: build/C/man3/malloc_info.3:176
#, no-wrap
msgid ""
"static size_t blockSize;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:177
+#: build/C/man3/malloc_info.3:179
#, no-wrap
msgid ""
"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:183
+#: build/C/man3/malloc_info.3:185
#, no-wrap
msgid ""
"static void *\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:186
+#: build/C/man3/malloc_info.3:188
#, no-wrap
msgid ""
" /* The multiplier \\(aq(2 + tn)\\(aq ensures that each thread "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:190
+#: build/C/man3/malloc_info.3:192
#, no-wrap
msgid ""
" for (j = 0; j E<lt> numBlocks; j++)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:194
+#: build/C/man3/malloc_info.3:196
#, no-wrap
msgid ""
" sleep(100); /* Sleep until main thread terminates */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:200
+#: build/C/man3/malloc_info.3:202
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:207
+#: build/C/man3/malloc_info.3:209
#, no-wrap
msgid ""
" if (argc E<lt> 4) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:212
+#: build/C/man3/malloc_info.3:214
#, no-wrap
msgid ""
" numThreads = atoi(argv[1]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:216
+#: build/C/man3/malloc_info.3:218
#, no-wrap
msgid ""
" thr = calloc(numThreads, sizeof(pthread_t));\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:219
+#: build/C/man3/malloc_info.3:221
#, no-wrap
msgid ""
" printf(\"============ Before allocating blocks ============\\en\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:221
+#: build/C/man3/malloc_info.3:223
#, no-wrap
msgid " /* Create threads that allocate different amounts of memory */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:227
+#: build/C/man3/malloc_info.3:229
#, no-wrap
msgid ""
" for (tn = 0; tn E<lt> numThreads; tn++) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:232
+#: build/C/man3/malloc_info.3:234
#, no-wrap
msgid ""
" /* If we add a sleep interval after the start-up of each\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:236
+#: build/C/man3/malloc_info.3:238
#, no-wrap
msgid ""
" if (sleepTime E<gt> 0)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:238
+#: build/C/man3/malloc_info.3:240
#, no-wrap
msgid " /* The main thread also allocates some memory */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:242
+#: build/C/man3/malloc_info.3:244
#, no-wrap
msgid ""
" for (j = 0; j E<lt> numBlocks; j++)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:245
+#: build/C/man3/malloc_info.3:247
#, no-wrap
msgid ""
" sleep(2); /* Give all threads a chance to\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:248
+#: build/C/man3/malloc_info.3:250
#, no-wrap
msgid ""
" printf(\"\\en============ After allocating blocks ============\\en\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_info.3:258
+#: build/C/man3/malloc_info.3:260
msgid ""
"B<mallinfo>(3), B<malloc>(3), B<malloc_stats>(3), B<mallopt>(3), "
"B<open_memstream>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_stats.3:24
+#: build/C/man3/malloc_stats.3:26
#, no-wrap
msgid "MALLOC_STATS"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_stats.3:27
+#: build/C/man3/malloc_stats.3:29
msgid "malloc_stats - print memory allocation statistics"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_stats.3:31
+#: build/C/man3/malloc_stats.3:33
msgid "B<void malloc_stats(void);>"
msgstr ""
#. .SH VERSIONS
#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/malloc_stats.3:53
+#: build/C/man3/malloc_stats.3:55
msgid ""
"The B<malloc_stats>() function prints (on standard error) statistics about "
"memory allocated by B<malloc>(3) and related functions. For each arena "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_stats.3:59
+#: build/C/man3/malloc_stats.3:61
msgid ""
"More detailed information about memory allocations in the main arena can be "
"obtained using B<mallinfo>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_stats.3:65
+#: build/C/man3/malloc_stats.3:67
msgid "B<mmap>(2), B<mallinfo>(3), B<malloc>(3), B<malloc_info>(3), B<mallopt>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_trim.3:24
+#: build/C/man3/malloc_trim.3:26
#, no-wrap
msgid "MALLOC_TRIM"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_trim.3:24 build/C/man3/malloc_usable_size.3:23
+#: build/C/man3/malloc_trim.3:26 build/C/man3/malloc_usable_size.3:25
#, no-wrap
msgid "2012-03-29"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:27
+#: build/C/man3/malloc_trim.3:29
msgid "malloc_trim - release free memory from the top of the heap"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:31
+#: build/C/man3/malloc_trim.3:33
msgid "B<void malloc_trim(size_t >I<pad>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:38
+#: build/C/man3/malloc_trim.3:40
msgid ""
"The B<malloc_trim>() function attempts to release free memory at the top of "
"the heap (by calling B<sbrk>(2) with a suitable argument)."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:49
+#: build/C/man3/malloc_trim.3:51
msgid ""
"The I<pad> argument specifies the amount of free space to leave untrimmed at "
"the top of the heap. If this argument is 0, only the minimum amount of "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:54
+#: build/C/man3/malloc_trim.3:56
msgid ""
"The B<malloc_trim>() function returns 1 if memory was actually released "
"back to the system, or 0 if it was not possible to release any memory."
#. .SH VERSIONS
#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/malloc_trim.3:58
+#: build/C/man3/malloc_trim.3:60
msgid "No errors are defined."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:69
+#: build/C/man3/malloc_trim.3:71
msgid ""
"This function is automatically called by B<free>(3) in certain "
"circumstances; see the discussion of B<M_TOP_PAD> and B<M_TRIM_THRESHOLD> in "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:72
+#: build/C/man3/malloc_trim.3:74
msgid ""
"This function cannot release free memory located at places other than the "
"top of the heap."
#. malloc/malloc.c::mTRIm():
#. return result | (av == &main_arena ? sYSTRIm (pad, av) : 0);
#. type: Plain text
-#: build/C/man3/malloc_trim.3:76
-msgid "This function only releases memory in the main arena."
+#: build/C/man3/malloc_trim.3:78
+msgid "This function releases only memory in the main arena."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_trim.3:80
+#: build/C/man3/malloc_trim.3:82
msgid "B<sbrk>(2), B<malloc>(3), B<mallopt>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/malloc_usable_size.3:23
+#: build/C/man3/malloc_usable_size.3:25
#, no-wrap
msgid "MALLOC_USABLE_SIZE"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:26
+#: build/C/man3/malloc_usable_size.3:28
msgid "malloc_usable_size - obtain size of block of memory allocated from heap"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:30
+#: build/C/man3/malloc_usable_size.3:32
msgid "B<size_t malloc_usable_size (void *>I<ptr>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:38
+#: build/C/man3/malloc_usable_size.3:40
msgid ""
"The B<malloc_usable_size>() function returns the number of usable bytes in "
"the block pointed to by I<ptr>, a pointer to a block of memory allocated by "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:46
+#: build/C/man3/malloc_usable_size.3:48
msgid ""
"B<malloc_usable_size>() returns the number of usable bytes in the block of "
"allocated memory pointed to by I<ptr>. If I<ptr> is NULL, 0 is returned."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:58
+#: build/C/man3/malloc_usable_size.3:60
msgid ""
"The value returned by B<malloc_usable_size>() may be greater than the "
"requested size of the allocation because of alignment and minimum size "
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:60
+#: build/C/man3/malloc_usable_size.3:62
msgid "The main use of this function is for debugging and introspection."
msgstr ""
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:62
+#: build/C/man3/malloc_usable_size.3:64
msgid "B<malloc>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/mallopt.3:24
+#: build/C/man3/mallopt.3:26
#, no-wrap
msgid "MALLOPT"
msgstr ""
#. type: TH
-#: build/C/man3/mallopt.3:24
+#: build/C/man3/mallopt.3:26
#, no-wrap
msgid "2012-04-30"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:27
+#: build/C/man3/mallopt.3:29
msgid "mallopt - set memory allocation parameters"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:31
+#: build/C/man3/mallopt.3:33
msgid "B<int mallopt(int >I<param>B<, int >I<value>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:42
+#: build/C/man3/mallopt.3:44
msgid ""
"The B<mallopt>() function adjusts parameters that control the behavior of "
"the memory-allocation functions (see B<malloc>(3)). The I<param> argument "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:45
+#: build/C/man3/mallopt.3:47
msgid "The following values can be specified for I<param>:"
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:45
+#: build/C/man3/mallopt.3:47
#, no-wrap
msgid "B<M_CHECK_ACTION>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:51
+#: build/C/man3/mallopt.3:53
msgid ""
"Setting this parameter controls how glibc responds when various kinds of "
"programming errors are detected (e.g., freeing the same pointer twice). The "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:52
+#: build/C/man3/mallopt.3:54
#, no-wrap
msgid "Bit 0"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:62
+#: build/C/man3/mallopt.3:64
msgid ""
"If this bit is set, then print a one-line message on I<stderr> that provides "
"details about the error. The message starts with the string \"***\\ glibc "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:62
+#: build/C/man3/mallopt.3:64
#, no-wrap
msgid "Bit 1"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:77
+#: build/C/man3/mallopt.3:79
msgid ""
"If this bit is set, then, after printing any error message specified by bit "
"0, the program is terminated by calling B<abort>(3). In glibc versions "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:77
+#: build/C/man3/mallopt.3:79
#, no-wrap
msgid "Bit 2 (since glibc 2.4)"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:84
+#: build/C/man3/mallopt.3:86
msgid ""
"This bit has an effect only if bit 0 is also set. If this bit is set, then "
"the one-line message describing the error is simplified to contain just the "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:89
+#: build/C/man3/mallopt.3:91
msgid "The remaining bits in I<value> are ignored."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:93
+#: build/C/man3/mallopt.3:95
msgid ""
"Combining the above details, the following numeric values are meaningful for "
"B<M_CHECK_ACTION>:"
msgstr ""
#. type: IP
-#: build/C/man3/mallopt.3:94
+#: build/C/man3/mallopt.3:96
#, no-wrap
msgid "0"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:96
+#: build/C/man3/mallopt.3:98
msgid "Ignore error conditions; continue execution (with undefined results)."
msgstr ""
#. type: IP
-#: build/C/man3/mallopt.3:96
+#: build/C/man3/mallopt.3:98
#, no-wrap
msgid "1"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:98
+#: build/C/man3/mallopt.3:100
msgid "Print a detailed error message and continue execution."
msgstr ""
#. type: IP
-#: build/C/man3/mallopt.3:98
+#: build/C/man3/mallopt.3:100
#, no-wrap
msgid "2"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:100
+#: build/C/man3/mallopt.3:102
msgid "Abort the program."
msgstr ""
#. type: IP
-#: build/C/man3/mallopt.3:100
+#: build/C/man3/mallopt.3:102
#, no-wrap
msgid "3"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:103
+#: build/C/man3/mallopt.3:105
msgid ""
"Print detailed error message, stack trace, and memory mappings, and abort "
"the program."
msgstr ""
#. type: IP
-#: build/C/man3/mallopt.3:103
+#: build/C/man3/mallopt.3:105
#, no-wrap
msgid "5"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:105
+#: build/C/man3/mallopt.3:107
msgid "Print a simple error message and continue execution."
msgstr ""
#. type: IP
-#: build/C/man3/mallopt.3:105
+#: build/C/man3/mallopt.3:107
#, no-wrap
msgid "7"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:108
+#: build/C/man3/mallopt.3:110
msgid ""
"Print simple error message, stack trace, and memory mappings, and abort the "
"program."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:114
+#: build/C/man3/mallopt.3:116
msgid ""
"Since glibc 2.3.4, the default value for the B<M_CHECK_ACTION> parameter is "
"3. In glibc version 2.3.3 and earlier, the default value is 1."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:119
+#: build/C/man3/mallopt.3:121
msgid ""
"Using a nonzero B<M_CHECK_ACTION> value can be useful because otherwise a "
"crash may happen much later, and the true cause of the problem is then very "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:119
+#: build/C/man3/mallopt.3:121
#, no-wrap
msgid "B<M_MMAP_MAX>"
msgstr ""
#. The following text adapted from comments in the glibc source:
#. type: Plain text
-#: build/C/man3/mallopt.3:129
+#: build/C/man3/mallopt.3:131
msgid ""
"This parameter specifies the maximum number of allocation requests that may "
"be simultaneously serviced using B<mmap>(2). This parameter exists because "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:136
+#: build/C/man3/mallopt.3:138
msgid ""
"The default value is 65,536, a value which has no special significance and "
"which servers only as a safeguard. Setting this parameter to 0 disables the "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:136
+#: build/C/man3/mallopt.3:138
#, no-wrap
msgid "B<M_MMAP_THRESHOLD>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:145
+#: build/C/man3/mallopt.3:147
msgid ""
"For allocations greater than or equal to the limit specified (in bytes) by "
"B<M_MMAP_THRESHOLD> that can't be satisfied from the free list, the "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:165
+#: build/C/man3/mallopt.3:167
msgid ""
"Allocating memory using B<mmap>(2) has the significant advantage that the "
"allocated memory blocks can always be independently released back to the "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:172
+#: build/C/man3/mallopt.3:174
msgid ""
"The lower limit for this parameter is 0. The upper limit is "
"B<DEFAULT_MMAP_THRESHOLD_MAX>: 512*1024 on 32-bit systems or "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:190
+#: build/C/man3/mallopt.3:192
msgid ""
"I<Note:> Nowadays, glibc uses a dynamic mmap threshold by default. The "
"initial value of the threshold is 128*1024, but when blocks larger than the "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:190
+#: build/C/man3/mallopt.3:192
#, no-wrap
msgid "B<M_MXFAST> (since glibc 2.3)"
msgstr ""
#. The following text adapted from comments in the glibc sources:
#. type: Plain text
-#: build/C/man3/mallopt.3:210
+#: build/C/man3/mallopt.3:212
msgid ""
"Set the upper limit for memory allocation requests that are satisfied using "
"\"fastbins\". (The measurement unit for this parameter is bytes.) Fastbins "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:210
+#: build/C/man3/mallopt.3:212
#, no-wrap
msgid "B<M_PERTURB> (since glibc 2.4)"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:225
+#: build/C/man3/mallopt.3:227
msgid ""
"If this parameter is set to a nonzero value, then bytes of allocated memory "
"(other than allocations via B<calloc>(3)) are initialized to the complement "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:225
+#: build/C/man3/mallopt.3:227
#, no-wrap
msgid "B<M_TOP_PAD>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:232
+#: build/C/man3/mallopt.3:234
msgid ""
"This parameter defines the amount of padding to employ when calling "
"B<sbrk>(2) to modify the program break. (The measurement unit for this "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:239
+#: build/C/man3/mallopt.3:241
msgid ""
"When the program break is increased, then B<M_TOP_PAD> bytes are added to "
"the B<sbrk>(2) request."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:245
+#: build/C/man3/mallopt.3:247
msgid ""
"When the heap is trimmed as a consequence of calling B<free>(3) (see the "
"discussion of B<M_TRIM_THRESHOLD>) this much free space is preserved at the "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:249
+#: build/C/man3/mallopt.3:251
msgid ""
"In either case, the amount of padding is always rounded to a system page "
"boundary."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:256
+#: build/C/man3/mallopt.3:258
msgid ""
"Modifying B<M_TOP_PAD> is a trade-off between increasing the number of "
"system calls (when the parameter is set low) and wasting unused memory at "
#. DEFAULT_TOP_PAD in glibc source
#. type: Plain text
-#: build/C/man3/mallopt.3:259
+#: build/C/man3/mallopt.3:261
msgid "The default value for this parameter is 128*1024."
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:259
+#: build/C/man3/mallopt.3:261
#, no-wrap
msgid "B<M_TRIM_THRESHOLD>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:275
+#: build/C/man3/mallopt.3:277
msgid ""
"When the amount of contiguous free memory at the top of the heap grows "
"sufficiently large, B<free>(3) employs B<sbrk>(2) to release this memory "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:280
+#: build/C/man3/mallopt.3:282
msgid ""
"The default value for this parameter is 128*1024. Setting "
"B<M_TRIM_THRESHOLD> to -1 disables trimming completely."
#. These macros aren't enabled in production releases until 2.15?
#. (see glibc malloc/Makefile)
#. type: Plain text
-#: build/C/man3/mallopt.3:303
+#: build/C/man3/mallopt.3:305
msgid ""
"Modifying B<M_TRIM_THRESHOLD> is a trade-off between increasing the number "
"of system calls (when the parameter is set low) and wasting unused memory "
msgstr ""
#. type: SS
-#: build/C/man3/mallopt.3:303
+#: build/C/man3/mallopt.3:305
#, no-wrap
-msgid "Environment Variables"
+msgid "Environment variables"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:318
+#: build/C/man3/mallopt.3:320
msgid ""
"A number of environment variables can be defined to modify some of the same "
"parameters as are controlled by B<mallopt>(). Using these variables has the "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:321
+#: build/C/man3/mallopt.3:323
msgid ""
"The environment variables are as follows (note the trailing underscore at "
"the end of the name of each variable):"
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:321
+#: build/C/man3/mallopt.3:323
#, no-wrap
msgid "B<MALLOC_CHECK_>"
msgstr ""
#. On glibc 2.12/x86, a simple malloc()+free() loop is about 70% slower
#. when MALLOC_CHECK_ was set.
#. type: Plain text
-#: build/C/man3/mallopt.3:338
+#: build/C/man3/mallopt.3:340
msgid ""
"This environment variable controls the same parameter as B<mallopt>() "
"B<M_CHECK_ACTION>. If this variable is set to a nonzero value, then a "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:343
+#: build/C/man3/mallopt.3:345
msgid ""
"The value assigned to this environment variable should be a single digit, "
"whose meaning is as described for B<M_CHECK_ACTION>. Any characters beyond "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:352
+#: build/C/man3/mallopt.3:354
msgid ""
"For security reasons, the effect of B<MALLOC_CHECK_> is disabled by default "
"for set-user-ID and set-group-ID programs. However, if the file "
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:352
+#: build/C/man3/mallopt.3:354
#, no-wrap
msgid "B<MALLOC_MMAP_MAX_>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:357
+#: build/C/man3/mallopt.3:359
msgid "Controls the same parameter as B<mallopt>() B<M_MMAP_MAX>."
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:357
+#: build/C/man3/mallopt.3:359
#, no-wrap
msgid "B<MALLOC_MMAP_THRESHOLD_>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:362
+#: build/C/man3/mallopt.3:364
msgid "Controls the same parameter as B<mallopt>() B<M_MMAP_THRESHOLD>."
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:362
+#: build/C/man3/mallopt.3:364
#, no-wrap
msgid "B<MALLOC_PERTURB_>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:367
+#: build/C/man3/mallopt.3:369
msgid "Controls the same parameter as B<mallopt>() B<M_PERTURB>."
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:367
+#: build/C/man3/mallopt.3:369
#, no-wrap
msgid "B<MALLOC_TRIM_THRESHOLD_>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:372
+#: build/C/man3/mallopt.3:374
msgid "Controls the same parameter as B<mallopt>() B<M_TRIM_THRESHOLD>."
msgstr ""
#. type: TP
-#: build/C/man3/mallopt.3:372
+#: build/C/man3/mallopt.3:374
#, no-wrap
msgid "B<MALLOC_TOP_PAD_>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:377
+#: build/C/man3/mallopt.3:379
msgid "Controls the same parameter as B<mallopt>() B<M_TOP_PAD>."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:382
+#: build/C/man3/mallopt.3:384
msgid "On success, B<mallopt>() returns 1. On error, it returns 0."
msgstr ""
#. .SH VERSIONS
#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/mallopt.3:390
+#: build/C/man3/mallopt.3:392
msgid "On error, I<errno> is I<not> set."
msgstr ""
#. .SH NOTES
#. type: Plain text
-#: build/C/man3/mallopt.3:404
+#: build/C/man3/mallopt.3:406
msgid ""
"This function is not specified by POSIX or the C standards. A similar "
"function exists on many System V derivatives, but the range of values for "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:408
+#: build/C/man3/mallopt.3:410
msgid "Specifying an invalid value for I<param> does not generate an error."
msgstr ""
#. (req) + SIZE_SZ + MALLOC_ALIGN_MASK) & ~MALLOC_ALIGN_MASK
#. http://sources.redhat.com/bugzilla/show_bug.cgi?id=12129
#. type: Plain text
-#: build/C/man3/mallopt.3:416
+#: build/C/man3/mallopt.3:418
msgid ""
"A calculation error within the glibc implementation means that a call of the "
"form:"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:419
+#: build/C/man3/mallopt.3:421
#, no-wrap
msgid " mallopt(M_MXFAST, n)\n"
msgstr ""
#. Bins are multiples of 2 * sizeof(size_t) + sizeof(size_t)
#. type: Plain text
-#: build/C/man3/mallopt.3:431
+#: build/C/man3/mallopt.3:433
msgid ""
"does not result in fastbins being employed for all allocations of size up to "
"I<n>. To ensure desired results, I<n> should be rounded up to the next "
#. set-group-ID programs).
#. http://sources.redhat.com/bugzilla/show_bug.cgi?id=12155
#. type: Plain text
-#: build/C/man3/mallopt.3:443
+#: build/C/man3/mallopt.3:445
msgid ""
"The B<MALLOC_MMAP_THRESHOLD_> and B<MALLOC_MMAP_MAX_> variables are I<not> "
"ignored in set-group-ID programs."
#. FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12140
#. type: Plain text
-#: build/C/man3/mallopt.3:464
+#: build/C/man3/mallopt.3:466
msgid ""
"If B<mallopt>() is used to set B<M_PERTURB>, then, as expected, the bytes "
"of allocated memory are initialized to the complement of the byte in "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:473
+#: build/C/man3/mallopt.3:475
msgid ""
"The program below demonstrates the use of B<M_CHECK_ACTION>. If the program "
"is supplied with an (integer) command-line argument, then that argument is "
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:477
+#: build/C/man3/mallopt.3:479
msgid ""
"The following shell session shows what happens when we run this program "
"under glibc, with the default value for B<M_CHECK_ACTION>:"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:497
+#: build/C/man3/mallopt.3:499
#, no-wrap
msgid ""
"$ B<./a.out>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:502
+#: build/C/man3/mallopt.3:504
msgid ""
"The following runs show the results when employing other values for "
"B<M_CHECK_ACTION>:"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:515
+#: build/C/man3/mallopt.3:517
#, no-wrap
msgid ""
"$ B<./a.out 1> # Diagnose error and continue\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:521
+#: build/C/man3/mallopt.3:523
msgid ""
"The next run shows how to set the same parameter using the B<MALLOC_CHECK_> "
"environment variable:"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:528
+#: build/C/man3/mallopt.3:530
#, no-wrap
msgid ""
"$ B<MALLOC_CHECK_=1 ./a.out>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:536
+#: build/C/man3/mallopt.3:538
#, no-wrap
msgid ""
"#include E<lt>malloc.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:541 build/C/man3/mcheck.3:187
+#: build/C/man3/mallopt.3:543 build/C/man3/mcheck.3:187
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:548
+#: build/C/man3/mallopt.3:550
#, no-wrap
msgid ""
" if (argc E<gt> 1) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:554
+#: build/C/man3/mallopt.3:556
#, no-wrap
msgid ""
" p = malloc(1000);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:557
+#: build/C/man3/mallopt.3:559
#, no-wrap
msgid ""
" free(p);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:560
+#: build/C/man3/mallopt.3:562
#, no-wrap
msgid ""
" free(p);\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:578
+#: build/C/man3/mallopt.3:580
msgid ""
-"B<mmap>(2) B<sbrk>(2), B<mallinfo>(3), B<malloc>(3), B<malloc_hook>(3), "
+"B<mmap>(2), B<sbrk>(2), B<mallinfo>(3), B<malloc>(3), B<malloc_hook>(3), "
"B<malloc_info>(3), B<malloc_stats>(3), B<malloc_trim>(3), B<mcheck>(3), "
"B<mtrace>(3), B<posix_memalign>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/mcheck.3:23
+#: build/C/man3/mcheck.3:25
#, no-wrap
msgid "MCHECK"
msgstr ""
#. type: TH
-#: build/C/man3/mcheck.3:23 build/C/man3/mtrace.3:23
+#: build/C/man3/mcheck.3:25 build/C/man3/mtrace.3:25
#, no-wrap
msgid "2012-04-18"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:26
+#: build/C/man3/mcheck.3:28
msgid ""
"mcheck, mcheck_check_all, mcheck_pedantic, mprobe - heap consistency "
"checking"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:29
+#: build/C/man3/mcheck.3:31
#, no-wrap
msgid "B<#include E<lt>mcheck.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:31
+#: build/C/man3/mcheck.3:33
#, no-wrap
msgid "B<int mcheck(void (*>I<abortfunc>B<)(enum mcheck_status >I<mstatus>B<));>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:33
+#: build/C/man3/mcheck.3:35
#, no-wrap
msgid ""
"B<int mcheck_pedantic(void (*>I<abortfunc>B<)(enum mcheck_status "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:35
+#: build/C/man3/mcheck.3:37
#, no-wrap
msgid "B<void mcheck_check_all(void);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:37
+#: build/C/man3/mcheck.3:39
#, no-wrap
msgid "B<enum mcheck_status mprobe(void *>I<ptr>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:50
+#: build/C/man3/mcheck.3:51
msgid ""
"The B<mcheck>() function installs a set of debugging hooks for the "
"B<malloc>(3) family of memory-allocation functions. These hooks cause "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:62
+#: build/C/man3/mcheck.3:63
msgid ""
"To be effective, the B<mcheck>() function must be called before the first "
"call to B<malloc>(3) or a related function. In cases where this is "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:70
+#: build/C/man3/mcheck.3:71
msgid ""
"The B<mcheck_pedantic>() function is similar to B<mcheck>(), but performs "
"checks on all allocated blocks whenever one of the memory-allocation "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:77
+#: build/C/man3/mcheck.3:78
msgid ""
"The B<mcheck_check_all>() function causes an immediate check on all "
"allocated blocks. This call is only effective if B<mcheck>() is called "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:90
+#: build/C/man3/mcheck.3:91
msgid ""
"If the system detects an inconsistency in the heap, the caller-supplied "
"function pointed to by I<abortfunc> is invoked with a single argument "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:102
+#: build/C/man3/mcheck.3:103
msgid ""
"The B<mprobe>() function performs a consistency check on the block of "
"allocated memory pointed to by I<ptr>. The B<mcheck>() function should be "
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:110
+#: build/C/man3/mcheck.3:111
msgid ""
"The following list describes the values returned by B<mprobe>() or passed "
"as the I<mstatus> argument when I<abortfunc> is invoked:"
msgstr ""
#. type: TP
-#: build/C/man3/mcheck.3:110
+#: build/C/man3/mcheck.3:111
#, no-wrap
msgid "B<MCHECK_DISABLED> (B<mprobe>() only)"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:115
+#: build/C/man3/mcheck.3:116
msgid ""
"B<mcheck>() was not called before the first memory allocation function was "
"called. Consistency checking is not possible."
msgstr ""
#. type: TP
-#: build/C/man3/mcheck.3:115
+#: build/C/man3/mcheck.3:116
#, no-wrap
msgid "B<MCHECK_OK> (B<mprobe>() only)"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:118
+#: build/C/man3/mcheck.3:119
msgid "No inconsistency detected."
msgstr ""
#. type: TP
-#: build/C/man3/mcheck.3:118
+#: build/C/man3/mcheck.3:119
#, no-wrap
msgid "B<MCHECK_HEAD>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:121
+#: build/C/man3/mcheck.3:122
msgid "Memory preceding an allocated block was clobbered."
msgstr ""
#. type: TP
-#: build/C/man3/mcheck.3:121
+#: build/C/man3/mcheck.3:122
#, no-wrap
msgid "B<MCHECK_TAIL>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:124
+#: build/C/man3/mcheck.3:125
msgid "Memory following an allocated block was clobbered."
msgstr ""
#. type: TP
-#: build/C/man3/mcheck.3:124
+#: build/C/man3/mcheck.3:125
#, no-wrap
msgid "B<MCHECK_FREE>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:128
+#: build/C/man3/mcheck.3:129
msgid "A block of memory was freed twice."
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:133
+#: build/C/man3/mcheck.3:134
msgid "B<mcheck>() and B<mcheck_pedantic>() return 0 on success, or -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:144
+#: build/C/man3/mcheck.3:145
msgid ""
"The B<mcheck_pedantic>() and B<mcheck_check_all>() functions are available "
-"since glibc 2.2. The B<mcheck()> and B<mprobe()> functions are present "
+"since glibc 2.2. The B<mcheck>() and B<mprobe>() functions are present "
"since at least glibc 2.0"
msgstr ""
#. But is MALLOC_CHECK_ slower?
#. type: Plain text
-#: build/C/man3/mcheck.3:158
+#: build/C/man3/mcheck.3:159
msgid ""
"Linking a program with I<-lmcheck> and using the B<MALLOC_CHECK_> "
"environment variable (described in B<mallopt>(3)) cause the same kinds of "
" free(p);\n"
msgstr ""
-#. FIXME add SEE ALSO pointer from malloc(3) to here
-#. FIXME add SEE ALSO pointer from mallopt(3) to here
-#. FIXME add SEE ALSO pointer from mtrace(3) to here
#. type: Plain text
-#: build/C/man3/mcheck.3:211
+#: build/C/man3/mcheck.3:208
msgid "B<malloc>(3), B<mallopt>(3), B<mtrace>(3)"
msgstr ""
#. type: TH
-#: build/C/man2/mlock.2:27
+#: build/C/man2/mlock.2:26
#, no-wrap
msgid "MLOCK"
msgstr ""
#. type: TH
-#: build/C/man2/mlock.2:27
+#: build/C/man2/mlock.2:26
#, no-wrap
msgid "2011-09-14"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:30
+#: build/C/man2/mlock.2:29
msgid "mlock, munlock, mlockall, munlockall - lock and unlock memory"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:33 build/C/man2/mmap.2:46 build/C/man2/mmap2.2:35 build/C/man2/mprotect.2:38 build/C/man2/mremap.2:39
+#: build/C/man2/mlock.2:32 build/C/man2/mmap.2:46 build/C/man2/mmap2.2:35 build/C/man2/mprotect.2:44 build/C/man2/mremap.2:38
#, no-wrap
msgid "B<#include E<lt>sys/mman.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:36
+#: build/C/man2/mlock.2:35
#, no-wrap
msgid ""
"B<int mlock(const void *>I<addr>B<, size_t >I<len>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:39
+#: build/C/man2/mlock.2:38
#, no-wrap
msgid ""
"B<int mlockall(int >I<flags>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:55
+#: build/C/man2/mlock.2:54
msgid ""
"B<mlock>() and B<mlockall>() respectively lock part or all of the calling "
"process's virtual address space into RAM, preventing that memory from being "
msgstr ""
#. type: SS
-#: build/C/man2/mlock.2:55
+#: build/C/man2/mlock.2:54
#, no-wrap
msgid "mlock() and munlock()"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:65
+#: build/C/man2/mlock.2:64
msgid ""
"B<mlock>() locks pages in the address range starting at I<addr> and "
"continuing for I<len> bytes. All pages that contain a part of the specified "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:74
+#: build/C/man2/mlock.2:73
msgid ""
"B<munlock>() unlocks pages in the address range starting at I<addr> and "
"continuing for I<len> bytes. After this call, all pages that contain a part "
msgstr ""
#. type: SS
-#: build/C/man2/mlock.2:74
+#: build/C/man2/mlock.2:73
#, no-wrap
msgid "mlockall() and munlockall()"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:84
+#: build/C/man2/mlock.2:83
msgid ""
"B<mlockall>() locks all pages mapped into the address space of the calling "
"process. This includes the pages of the code, data and stack segment, as "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:89
+#: build/C/man2/mlock.2:88
msgid ""
"The I<flags> argument is constructed as the bitwise OR of one or more of the "
"following constants:"
msgstr ""
#. type: TP
-#: build/C/man2/mlock.2:89
+#: build/C/man2/mlock.2:88
#, no-wrap
msgid "B<MCL_CURRENT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:93
+#: build/C/man2/mlock.2:92
msgid ""
"Lock all pages which are currently mapped into the address space of the "
"process."
msgstr ""
#. type: TP
-#: build/C/man2/mlock.2:93
+#: build/C/man2/mlock.2:92
#, no-wrap
msgid "B<MCL_FUTURE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:100
+#: build/C/man2/mlock.2:99
msgid ""
"Lock all pages which will become mapped into the address space of the "
"process in the future. These could be for instance new pages required by a "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:113
+#: build/C/man2/mlock.2:112
msgid ""
"If B<MCL_FUTURE> has been specified, then a later system call (e.g., "
"B<mmap>(2), B<sbrk>(2), B<malloc>(3)), may fail if it would cause the number "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:117
+#: build/C/man2/mlock.2:116
msgid ""
"B<munlockall>() unlocks all pages mapped into the address space of the "
"calling process."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:123
+#: build/C/man2/mlock.2:122
msgid ""
"On success these system calls return 0. On error, -1 is returned, I<errno> "
"is set appropriately, and no changes are made to any locks in the address "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:132
+#: build/C/man2/mlock.2:131
msgid ""
"(Linux 2.6.9 and later) the caller had a nonzero B<RLIMIT_MEMLOCK> soft "
"resource limit, but tried to lock more memory than the limit permitted. "
#. calculates that the process is trying to lock (num_physpages / 2 + 2)
#. pages, which of course is not true. (MTK, Nov 04, kernel 2.4.28)
#. type: Plain text
-#: build/C/man2/mlock.2:144
+#: build/C/man2/mlock.2:143
msgid ""
"(Linux 2.4 and earlier) the calling process tried to lock more than half of "
"RAM."
#. SVr4 documents an additional EAGAIN error code.
#. type: Plain text
-#: build/C/man2/mlock.2:150
+#: build/C/man2/mlock.2:149
msgid ""
"The caller is not privileged, but needs privilege (B<CAP_IPC_LOCK>) to "
"perform the requested operation."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:155
+#: build/C/man2/mlock.2:154
msgid "For B<mlock>() and B<munlock>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:158
+#: build/C/man2/mlock.2:157
msgid "Some or all of the specified address range could not be locked."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:165
+#: build/C/man2/mlock.2:164
msgid ""
"The result of the addition I<start>+I<len> was less than I<start> (e.g., the "
"addition may have resulted in an overflow)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:170
+#: build/C/man2/mlock.2:169
msgid "(Not on Linux) I<addr> was not a multiple of the page size."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:174
+#: build/C/man2/mlock.2:173
msgid ""
"Some of the specified address range does not correspond to mapped pages in "
"the address space of the process."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:177
+#: build/C/man2/mlock.2:176
msgid "For B<mlockall>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:180
+#: build/C/man2/mlock.2:179
msgid "Unknown I<flags> were specified."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:183
+#: build/C/man2/mlock.2:182
msgid "For B<munlockall>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:187
+#: build/C/man2/mlock.2:186
msgid "(Linux 2.6.8 and earlier) The caller was not privileged (B<CAP_IPC_LOCK>)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:189
+#: build/C/man2/mlock.2:188
msgid "POSIX.1-2001, SVr4."
msgstr ""
#. type: SH
-#: build/C/man2/mlock.2:189 build/C/man2/mmap.2:487 build/C/man2/msync.2:105
+#: build/C/man2/mlock.2:188 build/C/man2/mmap.2:501 build/C/man2/msync.2:105
#, no-wrap
msgid "AVAILABILITY"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:201
+#: build/C/man2/mlock.2:200
msgid ""
"On POSIX systems on which B<mlock>() and B<munlock>() are available, "
"B<_POSIX_MEMLOCK_RANGE> is defined in I<E<lt>unistd.hE<gt>> and the number "
#. -1: unavailable, 0: ask using sysconf().
#. glibc defines it to 1.
#. type: Plain text
-#: build/C/man2/mlock.2:214
+#: build/C/man2/mlock.2:213
msgid ""
"On POSIX systems on which B<mlockall>() and B<munlockall>() are available, "
"B<_POSIX_MEMLOCK> is defined in I<E<lt>unistd.hE<gt>> to a value greater "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:232
+#: build/C/man2/mlock.2:231
msgid ""
"Memory locking has two main applications: real-time algorithms and "
"high-security data processing. Real-time applications require deterministic "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:245
+#: build/C/man2/mlock.2:244
msgid ""
"Real-time processes that are using B<mlockall>() to prevent delays on page "
"faults should reserve enough locked stack pages before entering the "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:251
+#: build/C/man2/mlock.2:250
msgid ""
"Memory locks are not inherited by a child created via B<fork>(2) and are "
"automatically removed (unlocked) during an B<execve>(2) or when the process "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:255
+#: build/C/man2/mlock.2:254
msgid ""
"The memory lock on an address range is automatically removed if the address "
"range is unmapped via B<munmap>(2)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:268
+#: build/C/man2/mlock.2:267
msgid ""
"Memory locks do not stack, that is, pages which have been locked several "
"times by calls to B<mlock>() or B<mlockall>() will be unlocked by a single "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:279
+#: build/C/man2/mlock.2:278
msgid ""
"Under Linux, B<mlock>() and B<munlock>() automatically round I<addr> down "
"to the nearest page boundary. However, POSIX.1-2001 allows an "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:292
+#: build/C/man2/mlock.2:291
msgid ""
"The I<VmLck> field of the Linux-specific I</proc/PID/status> file shows how "
"many kilobytes of memory the process with ID I<PID> has locked using "
msgstr ""
#. type: SS
-#: build/C/man2/mlock.2:292
+#: build/C/man2/mlock.2:291
#, no-wrap
msgid "Limits and permissions"
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:299
+#: build/C/man2/mlock.2:298
msgid ""
"In Linux 2.6.8 and earlier, a process must be privileged (B<CAP_IPC_LOCK>) "
"in order to lock memory and the B<RLIMIT_MEMLOCK> soft resource limit "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:305
+#: build/C/man2/mlock.2:304
msgid ""
"Since Linux 2.6.9, no limits are placed on the amount of memory that a "
"privileged process can lock and the B<RLIMIT_MEMLOCK> soft resource limit "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:313
+#: build/C/man2/mlock.2:312
msgid ""
"In the 2.4 series Linux kernels up to and including 2.4.17, a bug caused the "
"B<mlockall>() B<MCL_FUTURE> flag to be inherited across a B<fork>(2). This "
#. "Rationale for RLIMIT_MEMLOCK"
#. 23 Jan 2006
#. type: Plain text
-#: build/C/man2/mlock.2:330
+#: build/C/man2/mlock.2:329
msgid ""
"Since kernel 2.6.9, if a privileged process calls I<mlockall(MCL_FUTURE)> "
"and later drops privileges (loses the B<CAP_IPC_LOCK> capability by, for "
msgstr ""
#. type: Plain text
-#: build/C/man2/mlock.2:337
+#: build/C/man2/mlock.2:336
msgid ""
"B<mmap>(2), B<setrlimit>(2), B<shmctl>(2), B<sysconf>(3), B<proc>(5), "
"B<capabilities>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/mmap.2:40 build/C/man2/mmap2.2:29
+#: build/C/man2/mmap.2:40
#, no-wrap
-msgid "2012-04-16"
+msgid "2013-02-25"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:61
+#: build/C/man2/mmap.2:54
+msgid "See NOTES for information on feature test macro requirements."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mmap.2:63
msgid ""
"B<mmap>() creates a new mapping in the virtual address space of the calling "
"process. The starting address for the new mapping is specified in I<addr>. "
#. Before Linux 2.6.24, the address was rounded up to the next page
#. boundary; since 2.6.24, it is rounded down!
#. type: Plain text
-#: build/C/man2/mmap.2:75
+#: build/C/man2/mmap.2:77
msgid ""
"If I<addr> is NULL, then the kernel chooses the address at which to create "
"the mapping; this is the most portable method of creating a new mapping. If "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:87
+#: build/C/man2/mmap.2:89
msgid ""
"The contents of a file mapping (as opposed to an anonymous mapping; see "
"B<MAP_ANONYMOUS> below), are initialized using I<length> bytes starting at "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:95
+#: build/C/man2/mmap.2:97
msgid ""
"The I<prot> argument describes the desired memory protection of the mapping "
"(and must not conflict with the open mode of the file). It is either "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:95 build/C/man2/mprotect.2:67
+#: build/C/man2/mmap.2:97 build/C/man2/mprotect.2:73
#, no-wrap
msgid "B<PROT_EXEC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:98
+#: build/C/man2/mmap.2:100
msgid "Pages may be executed."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:98 build/C/man2/mprotect.2:61
+#: build/C/man2/mmap.2:100 build/C/man2/mprotect.2:67
#, no-wrap
msgid "B<PROT_READ>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:101
+#: build/C/man2/mmap.2:103
msgid "Pages may be read."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:101 build/C/man2/mprotect.2:64
+#: build/C/man2/mmap.2:103 build/C/man2/mprotect.2:70
#, no-wrap
msgid "B<PROT_WRITE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:104
+#: build/C/man2/mmap.2:106
msgid "Pages may be written."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:104 build/C/man2/mprotect.2:58
+#: build/C/man2/mmap.2:106 build/C/man2/mprotect.2:64
#, no-wrap
msgid "B<PROT_NONE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:107
+#: build/C/man2/mmap.2:109
msgid "Pages may not be accessed."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:116
+#: build/C/man2/mmap.2:118
msgid ""
"The I<flags> argument determines whether updates to the mapping are visible "
"to other processes mapping the same region, and whether updates are carried "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:116
+#: build/C/man2/mmap.2:118
#, no-wrap
msgid "B<MAP_SHARED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:126
+#: build/C/man2/mmap.2:128
msgid ""
"Share this mapping. Updates to the mapping are visible to other processes "
"that map this file, and are carried through to the underlying file. The "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:126
+#: build/C/man2/mmap.2:128
#, no-wrap
msgid "B<MAP_PRIVATE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:135
+#: build/C/man2/mmap.2:137
msgid ""
"Create a private copy-on-write mapping. Updates to the mapping are not "
"visible to other processes mapping the same file, and are not carried "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:137
+#: build/C/man2/mmap.2:139
msgid "Both of these flags are described in POSIX.1-2001."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:140
+#: build/C/man2/mmap.2:142
msgid "In addition, zero or more of the following values can be ORed in I<flags>:"
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:140
+#: build/C/man2/mmap.2:142
#, no-wrap
msgid "B<MAP_32BIT> (since Linux 2.4.20, 2.6)"
msgstr ""
#. See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08
#. type: Plain text
-#: build/C/man2/mmap.2:156
+#: build/C/man2/mmap.2:158
msgid ""
"Put the mapping into the first 2 Gigabytes of the process address space. "
"This flag is only supported on x86-64, for 64-bit programs. It was added to "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:156
+#: build/C/man2/mmap.2:158
#, no-wrap
msgid "B<MAP_ANON>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:161
+#: build/C/man2/mmap.2:163
msgid "Synonym for B<MAP_ANONYMOUS>. Deprecated."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:161
+#: build/C/man2/mmap.2:163
#, no-wrap
msgid "B<MAP_ANONYMOUS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:183
+#: build/C/man2/mmap.2:185
msgid ""
"The mapping is not backed by any file; its contents are initialized to "
"zero. The I<fd> and I<offset> arguments are ignored; however, some "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:183
+#: build/C/man2/mmap.2:185
#, no-wrap
msgid "B<MAP_DENYWRITE>"
msgstr ""
#. Introduced in 1.1.36, removed in 1.3.24.
#. type: Plain text
-#: build/C/man2/mmap.2:191
+#: build/C/man2/mmap.2:193
msgid ""
"This flag is ignored. (Long ago, it signaled that attempts to write to the "
"underlying file should fail with B<ETXTBUSY>. But this was a source of "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:191
+#: build/C/man2/mmap.2:193
#, no-wrap
msgid "B<MAP_EXECUTABLE>"
msgstr ""
#. Linus talked about DOS related to MAP_EXECUTABLE, but he was thinking of
#. MAP_DENYWRITE?
#. type: Plain text
-#: build/C/man2/mmap.2:199
+#: build/C/man2/mmap.2:201
msgid "This flag is ignored."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:199
+#: build/C/man2/mmap.2:201
#, no-wrap
msgid "B<MAP_FILE>"
msgstr ""
#. On some systems, this was required as the opposite of
#. MAP_ANONYMOUS -- mtk, 1 May 2007
#. type: Plain text
-#: build/C/man2/mmap.2:205
+#: build/C/man2/mmap.2:207
msgid "Compatibility flag. Ignored."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:205
+#: build/C/man2/mmap.2:207
#, no-wrap
msgid "B<MAP_FIXED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:223
+#: build/C/man2/mmap.2:225
msgid ""
"Don't interpret I<addr> as a hint: place the mapping at exactly that "
"address. I<addr> must be a multiple of the page size. If the memory region "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:223
+#: build/C/man2/mmap.2:225
#, no-wrap
msgid "B<MAP_GROWSDOWN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:228
+#: build/C/man2/mmap.2:230
msgid ""
"Used for stacks. Indicates to the kernel virtual memory system that the "
"mapping should extend downward in memory."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:228
+#: build/C/man2/mmap.2:230
#, no-wrap
msgid "B<MAP_HUGETLB> (since Linux 2.6.32)"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:234
+#: build/C/man2/mmap.2:236
msgid ""
-"Allocate the mapping using \"huge pages.\" See the kernel source file "
+"Allocate the mapping using \"huge pages.\" See the Linux kernel source file "
"I<Documentation/vm/hugetlbpage.txt> for further information."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:234
+#: build/C/man2/mmap.2:236
#, no-wrap
msgid "B<MAP_LOCKED> (since Linux 2.5.37)"
msgstr ""
#. If set, the mapped pages will not be swapped out.
#. type: Plain text
-#: build/C/man2/mmap.2:240
+#: build/C/man2/mmap.2:242
msgid ""
"Lock the pages of the mapped region into memory in the manner of "
"B<mlock>(2). This flag is ignored in older kernels."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:240
+#: build/C/man2/mmap.2:242
#, no-wrap
msgid "B<MAP_NONBLOCK> (since Linux 2.5.46)"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:255
+#: build/C/man2/mmap.2:257
msgid ""
"Only meaningful in conjunction with B<MAP_POPULATE>. Don't perform "
"read-ahead: only create page tables entries for pages that are already "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:255
+#: build/C/man2/mmap.2:257
#, no-wrap
msgid "B<MAP_NORESERVE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:270
+#: build/C/man2/mmap.2:272
msgid ""
"Do not reserve swap space for this mapping. When swap space is reserved, "
"one has the guarantee that it is possible to modify the mapping. When swap "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:270
+#: build/C/man2/mmap.2:272
#, no-wrap
msgid "B<MAP_POPULATE> (since Linux 2.5.46)"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:277
+#: build/C/man2/mmap.2:279
msgid ""
"Populate (prefault) page tables for a mapping. For a file mapping, this "
"causes read-ahead on the file. Later accesses to the mapping will not be "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:277
+#: build/C/man2/mmap.2:279
#, no-wrap
msgid "B<MAP_STACK> (since Linux 2.6.27)"
msgstr ""
#. "pthread_create() slow for many threads; also time to revisit 64b
#. context switch optimization?"
#. type: Plain text
-#: build/C/man2/mmap.2:290
+#: build/C/man2/mmap.2:292
msgid ""
"Allocate the mapping at an address suitable for a process or thread stack. "
"This flag is currently a no-op, but is used in the glibc threading "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:290
+#: build/C/man2/mmap.2:292
#, no-wrap
msgid "B<MAP_UNINITIALIZED> (since Linux 2.6.33)"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:300
+#: build/C/man2/mmap.2:302
msgid ""
"Don't clear anonymous pages. This flag is intended to improve performance "
"on embedded devices. This flag is only honored if the kernel was configured "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:308
+#: build/C/man2/mmap.2:310
msgid ""
"Of the above flags, only B<MAP_FIXED> is specified in POSIX.1-2001. "
"However, most systems also support B<MAP_ANONYMOUS> (or its synonym "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:315
+#: build/C/man2/mmap.2:317
msgid ""
"Some systems document the additional flags B<MAP_AUTOGROW>, "
"B<MAP_AUTORESRV>, B<MAP_COPY>, and B<MAP_LOCAL>."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:321
+#: build/C/man2/mmap.2:323
msgid ""
"Memory mapped by B<mmap>() is preserved across B<fork>(2), with the same "
"attributes."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:329
+#: build/C/man2/mmap.2:331
msgid ""
"A file is mapped in multiples of the page size. For a file that is not a "
"multiple of the page size, the remaining memory is zeroed when mapped, and "
msgstr ""
#. type: SS
-#: build/C/man2/mmap.2:329
+#: build/C/man2/mmap.2:331
#, no-wrap
msgid "munmap()"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:339
+#: build/C/man2/mmap.2:341
msgid ""
"The B<munmap>() system call deletes the mappings for the specified address "
"range, and causes further references to addresses within the range to "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:349
+#: build/C/man2/mmap.2:351
msgid ""
"The address I<addr> must be a multiple of the page size. All pages "
"containing a part of the indicated range are unmapped, and subsequent "
msgstr ""
#. type: SS
-#: build/C/man2/mmap.2:349
+#: build/C/man2/mmap.2:351
#, no-wrap
msgid "Timestamps changes for file-backed mappings"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:356
+#: build/C/man2/mmap.2:358
msgid ""
"For file-backed mappings, the I<st_atime> field for the mapped file may be "
"updated at any time between the B<mmap>() and the corresponding unmapping; "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:373
+#: build/C/man2/mmap.2:375
msgid ""
"The I<st_ctime> and I<st_mtime> field for a file mapped with B<PROT_WRITE> "
"and B<MAP_SHARED> will be updated after a write to the mapped region, and "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:390
+#: build/C/man2/mmap.2:392
msgid ""
"On success, B<mmap>() returns a pointer to the mapped area. On error, the "
"value B<MAP_FAILED> (that is, I<(void\\ *)\\ -1>) is returned, and I<errno> "
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:391 build/C/man2/mprotect.2:80 build/C/man3/shm_open.3:185 build/C/man3/shm_open.3:190 build/C/man2/shmctl.2:295 build/C/man2/shmget.2:186 build/C/man2/shmop.2:189
+#: build/C/man2/mmap.2:393 build/C/man2/mprotect.2:86 build/C/man3/shm_open.3:185 build/C/man3/shm_open.3:190 build/C/man2/shmctl.2:297 build/C/man2/shmget.2:188 build/C/man2/shmop.2:191
#, no-wrap
msgid "B<EACCES>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:411
+#: build/C/man2/mmap.2:413
msgid ""
"A file descriptor refers to a non-regular file. Or B<MAP_PRIVATE> was "
"requested, but I<fd> is not open for reading. Or B<MAP_SHARED> was "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:415
+#: build/C/man2/mmap.2:417
msgid ""
"The file has been locked, or too much memory has been locked (see "
"B<setrlimit>(2))."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:421
+#: build/C/man2/mmap.2:423
msgid "I<fd> is not a valid file descriptor (and B<MAP_ANONYMOUS> was not set)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:429
+#: build/C/man2/mmap.2:431
msgid ""
"We don't like I<addr>, I<length>, or I<offset> (e.g., they are too large, or "
"not aligned on a page boundary)."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:434
+#: build/C/man2/mmap.2:436
msgid "(since Linux 2.6.12) I<length> was 0."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:442
+#: build/C/man2/mmap.2:444
msgid ""
"I<flags> contained neither B<MAP_PRIVATE> or B<MAP_SHARED>, or contained "
"both of these values."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:442 build/C/man3/shm_open.3:227 build/C/man2/shmget.2:202
+#: build/C/man2/mmap.2:444 build/C/man3/shm_open.3:227 build/C/man2/shmget.2:204
#, no-wrap
msgid "B<ENFILE>"
msgstr ""
#. [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp()
#. type: Plain text
-#: build/C/man2/mmap.2:450 build/C/man2/shmget.2:206
+#: build/C/man2/mmap.2:452 build/C/man2/shmget.2:208
msgid "The system limit on the total number of open files has been reached."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:454
+#: build/C/man2/mmap.2:456
msgid ""
"The underlying file system of the specified file does not support memory "
"mapping."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:458
+#: build/C/man2/mmap.2:460
msgid ""
"No memory is available, or the process's maximum number of mappings would "
"have been exceeded."
#. (Since 2.4.25 / 2.6.0.)
#. type: Plain text
-#: build/C/man2/mmap.2:467
+#: build/C/man2/mmap.2:469
msgid ""
"The I<prot> argument asks for B<PROT_EXEC> but the mapped area belongs to a "
"file on a file system that was mounted no-exec."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:467
+#: build/C/man2/mmap.2:469
#, no-wrap
msgid "B<ETXTBSY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:473
+#: build/C/man2/mmap.2:475
msgid ""
"B<MAP_DENYWRITE> was set but the object specified by I<fd> is open for "
"writing."
msgstr ""
+#. type: TP
+#: build/C/man2/mmap.2:475 build/C/man2/shmctl.2:339
+#, no-wrap
+msgid "B<EOVERFLOW>"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/mmap.2:475
+#: build/C/man2/mmap.2:487
+msgid ""
+"On 32-bit architecture together with the large file extension (i.e., using "
+"64-bit I<off_t>): the number of pages used for I<length> plus number of "
+"pages used for I<offset> would overflow I<unsigned long> (32 bits)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mmap.2:489
msgid "Use of a mapped region can result in these signals:"
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:475
+#: build/C/man2/mmap.2:489
#, no-wrap
msgid "B<SIGSEGV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:478
+#: build/C/man2/mmap.2:492
msgid "Attempted write into a region mapped as read-only."
msgstr ""
#. type: TP
-#: build/C/man2/mmap.2:478
+#: build/C/man2/mmap.2:492
#, no-wrap
msgid "B<SIGBUS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:483
+#: build/C/man2/mmap.2:497
msgid ""
"Attempted access to a portion of the buffer that does not correspond to the "
"file (for example, beyond the end of the file, including the case where "
#. SVr4 documents additional error codes ENXIO and ENODEV.
#. SUSv2 documents additional error codes EMFILE and EOVERFLOW.
#. type: Plain text
-#: build/C/man2/mmap.2:487
+#: build/C/man2/mmap.2:501
msgid "SVr4, 4.4BSD, POSIX.1-2001."
msgstr ""
#. -1: unavailable, 0: ask using sysconf().
#. glibc defines it to 1.
#. type: Plain text
-#: build/C/man2/mmap.2:501
+#: build/C/man2/mmap.2:515
msgid ""
"On POSIX systems on which B<mmap>(), B<msync>(2) and B<munmap>() are "
"available, B<_POSIX_MAPPED_FILES> is defined in I<E<lt>unistd.hE<gt>> to a "
#. Since around glibc 2.1/2.2, depending on the platform.
#. type: Plain text
-#: build/C/man2/mmap.2:516
+#: build/C/man2/mmap.2:530
msgid ""
"This page describes the interface provided by the glibc B<mmap>() wrapper "
"function. Originally, this function invoked a system call of the same "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:529
+#: build/C/man2/mmap.2:543
msgid ""
"On some hardware architectures (e.g., i386), B<PROT_WRITE> implies "
"B<PROT_READ>. It is architecture dependent whether B<PROT_READ> implies "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:544
+#: build/C/man2/mmap.2:558
msgid ""
"The portable way to create a mapping is to specify I<addr> as 0 (NULL), and "
"omit B<MAP_FIXED> from I<flags>. In this case, the system chooses the "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:549
+#: build/C/man2/mmap.2:587
+msgid ""
+"Certain I<flags> constants are defined only if either B<_BSD_SOURCE> or "
+"B<_SVID_SOURCE> is defined. (Requiring B<_GNU_SOURCE> also suffices, and "
+"requiring that macro specifically would have been more logical, since these "
+"flags are all Linux specific.) The relevant flags are: B<MAP_32BIT>, "
+"B<MAP_ANONYMOUS> (and the synonym B<MAP_ANON>), B<MAP_DENYWRITE>, "
+"B<MAP_EXECUTABLE>, B<MAP_FILE>, B<MAP_GROWSDOWN>, B<MAP_HUGETLB>, "
+"B<MAP_LOCKED>, B<MAP_NONBLOCK>, B<MAP_NORESERVE>, B<MAP_POPULATE>, and "
+"B<MAP_STACK>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mmap.2:592
msgid ""
"On Linux there are no guarantees like those suggested above under "
"B<MAP_NORESERVE>. By default, any process can be killed at any moment when "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:556
+#: build/C/man2/mmap.2:599
msgid ""
"In kernels before 2.6.7, the B<MAP_POPULATE> flag only has effect if I<prot> "
"is specified as B<PROT_NONE>."
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:571
+#: build/C/man2/mmap.2:614
msgid ""
"SUSv3 specifies that B<mmap>() should fail if I<length> is 0. However, in "
"kernels before 2.6.12, B<mmap>() succeeded in this case: no mapping was "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:583
+#: build/C/man2/mmap.2:630
+msgid ""
+"POSIX specifies that the system shall always zero fill any partial page at "
+"the end of the object and that system will never write any modification of "
+"the object beyond its end. On Linux, when you write data to such partial "
+"page after the end of the object, the data stays in the page cache even "
+"after the file is closed and unmapped and even though the data is never "
+"written to the file itself, subsequent mappings may see the modified "
+"content. In some cases, this could be fixed by calling B<msync>(2) before "
+"the unmap takes place; however, this doesn't work on tmpfs (for example, "
+"when using POSIX shared memory interface documented in B<shm_overview>(7))."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/mmap.2:642
msgid ""
"The following program prints part of the file specified in its first "
"command-line argument to standard output. The range of bytes to be printed "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:591
+#: build/C/man2/mmap.2:650
#, no-wrap
msgid ""
"#include E<lt>sys/mman.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:594 build/C/man2/mprotect.2:172
+#: build/C/man2/mmap.2:653 build/C/man2/mprotect.2:178
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:604
+#: build/C/man2/mmap.2:663
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:609
+#: build/C/man2/mmap.2:668
#, no-wrap
msgid ""
" if (argc E<lt> 3 || argc E<gt> 4) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:613
+#: build/C/man2/mmap.2:672
#, no-wrap
msgid ""
" fd = open(argv[1], O_RDONLY);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:616
+#: build/C/man2/mmap.2:675
#, no-wrap
msgid ""
" if (fstat(fd, &sb) == -1) /* To obtain file size */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:620
+#: build/C/man2/mmap.2:679
#, no-wrap
msgid ""
" offset = atoi(argv[2]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:625
+#: build/C/man2/mmap.2:684
#, no-wrap
msgid ""
" if (offset E<gt>= sb.st_size) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:631
+#: build/C/man2/mmap.2:690
#, no-wrap
msgid ""
" if (argc == 4) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:635
+#: build/C/man2/mmap.2:694
#, no-wrap
msgid ""
" } else { /* No length arg ==E<gt> display to end of file */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:640
+#: build/C/man2/mmap.2:699
#, no-wrap
msgid ""
" addr = mmap(NULL, length + offset - pa_offset, PROT_READ,\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:645
+#: build/C/man2/mmap.2:704
#, no-wrap
msgid ""
" s = write(STDOUT_FILENO, addr + offset - pa_offset, length);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:649
+#: build/C/man2/mmap.2:708
#, no-wrap
msgid ""
" fprintf(stderr, \"partial write\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:666
+#: build/C/man2/mmap.2:725
msgid ""
"B<getpagesize>(2), B<mincore>(2), B<mlock>(2), B<mmap2>(2), B<mprotect>(2), "
"B<mremap>(2), B<msync>(2), B<remap_file_pages>(2), B<setrlimit>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap.2:671 build/C/man2/msync.2:122
+#: build/C/man2/mmap.2:730 build/C/man2/msync.2:122
msgid "B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391."
msgstr ""
msgid "MMAP2"
msgstr ""
+#. type: TH
+#: build/C/man2/mmap2.2:29
+#, no-wrap
+msgid "2012-04-16"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/mmap2.2:32
msgid "mmap2 - map files or devices into memory"
#. type: Plain text
#: build/C/man2/mmap2.2:65
-msgid "Problem with getting the data from userspace."
+msgid "Problem with getting the data from user space."
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/mmap2.2:79 build/C/man2/subpage_prot.2:93
+#: build/C/man2/mmap2.2:79 build/C/man2/subpage_prot.2:98
msgid "This system call is Linux-specific."
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man2/mprotect.2:32
+#: build/C/man2/mprotect.2:38
#, no-wrap
msgid "MPROTECT"
msgstr ""
#. type: TH
-#: build/C/man2/mprotect.2:32
+#: build/C/man2/mprotect.2:38
#, no-wrap
-msgid "2011-09-08"
+msgid "2012-08-14"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:35
+#: build/C/man2/mprotect.2:41
msgid "mprotect - set protection on a region of memory"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:40
+#: build/C/man2/mprotect.2:46
#, no-wrap
-msgid "B<int mprotect(const void *>I<addr>B<, size_t >I<len>B<, int >I<prot>B<);>\n"
+msgid "B<int mprotect(void *>I<addr>B<, size_t >I<len>B<, int >I<prot>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:48
+#: build/C/man2/mprotect.2:54
msgid ""
"B<mprotect>() changes protection for the calling process's memory page(s) "
"containing any part of the address range in the interval [I<addr>,\\ "
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:53
+#: build/C/man2/mprotect.2:59
msgid ""
"If the calling process tries to access memory in a manner that violates the "
"protection, then the kernel generates a B<SIGSEGV> signal for the process."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:58
+#: build/C/man2/mprotect.2:64
msgid ""
"I<prot> is either B<PROT_NONE> or a bitwise-or of the other values in the "
"following list:"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:61
+#: build/C/man2/mprotect.2:67
msgid "The memory cannot be accessed at all."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:64
+#: build/C/man2/mprotect.2:70
msgid "The memory can be read."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:67
+#: build/C/man2/mprotect.2:73
msgid "The memory can be modified."
msgstr ""
#. FIXME
#. Document PROT_GROWSUP and PROT_GROWSDOWN
#. type: Plain text
-#: build/C/man2/mprotect.2:72
+#: build/C/man2/mprotect.2:78
msgid "The memory can be executed."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:79
+#: build/C/man2/mprotect.2:85
msgid ""
"On success, B<mprotect>() returns zero. On error, -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:89
+#: build/C/man2/mprotect.2:95
msgid ""
"The memory cannot be given the specified access. This can happen, for "
"example, if you B<mmap>(2) a file to which you have read-only access, then "
#. Or: both PROT_GROWSUP and PROT_GROWSDOWN were specified in 'prot'.
#. type: Plain text
-#: build/C/man2/mprotect.2:94
+#: build/C/man2/mprotect.2:100
msgid "I<addr> is not a valid pointer, or not a multiple of the system page size."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:97
+#: build/C/man2/mprotect.2:103
msgid "Internal kernel structures could not be allocated."
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:107
+#: build/C/man2/mprotect.2:113
msgid ""
"Addresses in the range [I<addr>, I<addr>+I<len>-1] are invalid for the "
"address space of the process, or specify one or more pages that are not "
#. SVr4 defines an additional error
#. code EAGAIN. The SVr4 error conditions don't map neatly onto Linux's.
#. type: Plain text
-#: build/C/man2/mprotect.2:116
+#: build/C/man2/mprotect.2:122
msgid ""
"SVr4, POSIX.1-2001. POSIX says that the behavior of B<mprotect>() is "
"unspecified if it is applied to a region of memory that was not obtained via "
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:123
+#: build/C/man2/mprotect.2:129
msgid ""
"On Linux it is always permissible to call B<mprotect>() on any address in a "
"process's address space (except for the kernel vsyscall area). In "
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:133
+#: build/C/man2/mprotect.2:139
msgid ""
"Whether B<PROT_EXEC> has any effect different from B<PROT_READ> is "
"architecture- and kernel version-dependent. On some hardware architectures "
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:142
+#: build/C/man2/mprotect.2:148
msgid ""
"POSIX.1-2001 says that an implementation may permit access other than that "
"specified in I<prot>, but at a minimum can only allow write access if "
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:148
+#: build/C/man2/mprotect.2:154
msgid ""
"The program below allocates four pages of memory, makes the third of these "
"pages read-only, and then executes a loop that walks upward through the "
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:151
+#: build/C/man2/mprotect.2:157
msgid "An example of what we might see when running the program is the following:"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:157
+#: build/C/man2/mprotect.2:163
#, no-wrap
msgid ""
"$B< ./a.out>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:169
+#: build/C/man2/mprotect.2:175
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:174
+#: build/C/man2/mprotect.2:180
#, no-wrap
msgid "char *buffer;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:182
+#: build/C/man2/mprotect.2:188
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:189
+#: build/C/man2/mprotect.2:195
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:195
+#: build/C/man2/mprotect.2:201
#, no-wrap
msgid ""
" sa.sa_flags = SA_SIGINFO;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:199
+#: build/C/man2/mprotect.2:205
#, no-wrap
msgid ""
" pagesize = sysconf(_SC_PAGE_SIZE);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:202
+#: build/C/man2/mprotect.2:208
#, no-wrap
msgid ""
" /* Allocate a buffer aligned on a page boundary;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:206
+#: build/C/man2/mprotect.2:212
#, no-wrap
msgid ""
" buffer = memalign(pagesize, 4 * pagesize);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:208
+#: build/C/man2/mprotect.2:214
#, no-wrap
msgid " printf(\"Start of region: 0x%lx\\en\", (long) buffer);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:212
+#: build/C/man2/mprotect.2:218
#, no-wrap
msgid ""
" if (mprotect(buffer + pagesize * 2, pagesize,\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:215
+#: build/C/man2/mprotect.2:221
#, no-wrap
msgid ""
" for (p = buffer ; ; )\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:219
+#: build/C/man2/mprotect.2:225
#, no-wrap
msgid ""
" printf(\"Loop completed\\en\"); /* Should never happen */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mprotect.2:223
+#: build/C/man2/mprotect.2:229
msgid "B<mmap>(2), B<sysconf>(3)"
msgstr ""
#. type: TH
-#: build/C/man2/mremap.2:31
+#: build/C/man2/mremap.2:30
#, no-wrap
msgid "MREMAP"
msgstr ""
#. type: TH
-#: build/C/man2/mremap.2:31
+#: build/C/man2/mremap.2:30
#, no-wrap
msgid "2010-06-10"
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:34
+#: build/C/man2/mremap.2:33
msgid "mremap - remap a virtual memory address"
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:37
+#: build/C/man2/mremap.2:36
#, no-wrap
msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:42
+#: build/C/man2/mremap.2:41
#, no-wrap
msgid ""
"B<void *mremap(void *>I<old_address>B<, size_t >I<old_size>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:48
+#: build/C/man2/mremap.2:47
msgid ""
"B<mremap>() expands (or shrinks) an existing memory mapping, potentially "
"moving it at the same time (controlled by the I<flags> argument and the "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:62
+#: build/C/man2/mremap.2:61
msgid ""
"I<old_address> is the old address of the virtual memory block that you want "
"to expand (or shrink). Note that I<old_address> has to be page aligned. "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:74
+#: build/C/man2/mremap.2:73
msgid ""
"In Linux the memory is divided into pages. A user process has (one or) "
"several linear virtual memory segments. Each virtual memory segment has one "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:82
+#: build/C/man2/mremap.2:81
msgid ""
"B<mremap>() uses the Linux page table scheme. B<mremap>() changes the "
"mapping between virtual addresses and memory pages. This can be used to "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:84
+#: build/C/man2/mremap.2:83
msgid "The I<flags> bit-mask argument may be 0, or include the following flag:"
msgstr ""
#. type: TP
-#: build/C/man2/mremap.2:84
+#: build/C/man2/mremap.2:83
#, no-wrap
msgid "B<MREMAP_MAYMOVE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:96
+#: build/C/man2/mremap.2:95
msgid ""
"By default, if there is not sufficient space to expand a mapping at its "
"current location, then B<mremap>() fails. If this flag is specified, then "
msgstr ""
#. type: TP
-#: build/C/man2/mremap.2:96
+#: build/C/man2/mremap.2:95
#, no-wrap
msgid "B<MREMAP_FIXED> (since Linux 2.3.31)"
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:118
+#: build/C/man2/mremap.2:117
msgid ""
"This flag serves a similar purpose to the B<MAP_FIXED> flag of B<mmap>(2). "
"If this flag is specified, then B<mremap>() accepts a fifth argument, "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:128
+#: build/C/man2/mremap.2:127
msgid ""
"If the memory segment specified by I<old_address> and I<old_size> is locked "
"(using B<mlock>(2) or similar), then this lock is maintained when the "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:136
+#: build/C/man2/mremap.2:135
msgid ""
"On success B<mremap>() returns a pointer to the new virtual memory area. "
"On error, the value B<MAP_FAILED> (that is, I<(void\\ *)\\ -1>) is returned, "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:143
+#: build/C/man2/mremap.2:142
msgid ""
"The caller tried to expand a memory segment that is locked, but this was not "
"possible without exceeding the B<RLIMIT_MEMLOCK> resource limit."
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:152
+#: build/C/man2/mremap.2:151
msgid ""
"\"Segmentation fault.\" Some address in the range I<old_address> to "
"I<old_address>+I<old_size> is an invalid virtual memory address for this "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:180
+#: build/C/man2/mremap.2:179
msgid ""
"An invalid argument was given. Possible causes are: I<old_address> was not "
"page aligned; a value other than B<MREMAP_MAYMOVE> or B<MREMAP_FIXED> was "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:186
+#: build/C/man2/mremap.2:185
msgid ""
"The memory area cannot be expanded at the current virtual address, and the "
"B<MREMAP_MAYMOVE> flag is not set in I<flags>. Or, there is not enough "
#. .BR mremap (2)
#. call with completely different semantics.
#. type: Plain text
-#: build/C/man2/mremap.2:192
+#: build/C/man2/mremap.2:191
msgid ""
"This call is Linux-specific, and should not be used in programs intended to "
"be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:200
+#: build/C/man2/mremap.2:199
msgid ""
"Prior to version 2.4, glibc did not expose the definition of "
"B<MREMAP_FIXED>, and the prototype for B<mremap>() did not allow for the "
msgstr ""
#. type: Plain text
-#: build/C/man2/mremap.2:209
+#: build/C/man2/mremap.2:208
msgid ""
"B<brk>(2), B<getpagesize>(2), B<getrlimit>(2), B<mlock>(2), B<mmap>(2), "
"B<sbrk>(2), B<malloc>(3), B<realloc>(3)"
#. type: Plain text
#: build/C/man2/mremap.2:214
msgid ""
-"Your favorite OS text book for more information on paged memory. (I<Modern "
-"Operating Systems> by Andrew S. Tanenbaum, I<Inside Linux> by Randolf "
-"Bentson, I<The Design of the UNIX Operating System> by Maurice J. Bach.)"
+"Your favorite text book on operating systems for more information on paged "
+"memory (e.g., I<Modern Operating Systems> by Andrew S. Tanenbaum, I<Inside "
+"Linux> by Randolf Bentson, I<The Design of the UNIX Operating System> by "
+"Maurice J. Bach)"
msgstr ""
#. type: TH
msgstr ""
#. type: TH
-#: build/C/man2/msync.2:25 build/C/man2/remap_file_pages.2:26
+#: build/C/man2/msync.2:25 build/C/man2/remap_file_pages.2:28
#, no-wrap
msgid "2008-04-22"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/msync.2:98 build/C/man3/posix_fallocate.3:103 build/C/man3/shm_open.3:251 build/C/man7/shm_overview.7:103
+#: build/C/man2/msync.2:98 build/C/man3/posix_fallocate.3:105 build/C/man3/shm_open.3:251 build/C/man7/shm_overview.7:103
msgid "POSIX.1-2001."
msgstr ""
msgstr ""
#. type: TH
-#: build/C/man3/mtrace.3:23
+#: build/C/man3/mtrace.3:25
#, no-wrap
msgid "MTRACE"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:26
+#: build/C/man3/mtrace.3:28
msgid "mtrace, muntrace - malloc tracing"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:28
+#: build/C/man3/mtrace.3:30
msgid "B<#include E<lt>mcheck.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:30
+#: build/C/man3/mtrace.3:32
msgid "B<void mtrace(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:32
+#: build/C/man3/mtrace.3:34
msgid "B<void muntrace(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:44
+#: build/C/man3/mtrace.3:46
msgid ""
"The B<mtrace>() function installs hook functions for the memory-allocation "
"functions (B<malloc>(3), B<realloc>(3) B<memalign>(3), B<free>(3)). These "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:55
+#: build/C/man3/mtrace.3:57
msgid ""
"The B<muntrace>() function disables the hook functions installed by "
"B<mtrace>(), so that tracing information is no longer recorded for the "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:63
+#: build/C/man3/mtrace.3:65
msgid ""
-"When B<mtrace>(3) is called, it checks the value of the environment "
-"variable B<MALLOC_TRACE>, which should contain the pathname of a file in "
-"which the tracing information is to be recorded. If the pathname is "
-"successfully opened, it is truncated to zero length."
+"When B<mtrace>() is called, it checks the value of the environment variable "
+"B<MALLOC_TRACE>, which should contain the pathname of a file in which the "
+"tracing information is to be recorded. If the pathname is successfully "
+"opened, it is truncated to zero length."
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:76
+#: build/C/man3/mtrace.3:78
msgid ""
"If B<MALLOC_TRACE> is not set, or the pathname it specifies is invalid or "
"not writable, then no hook functions are installed, and B<mtrace>() has no "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:84
+#: build/C/man3/mtrace.3:86
msgid ""
"In normal usage, B<mtrace>() is called once at the start of execution of a "
"program, and B<muntrace>() is never called."
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:94
+#: build/C/man3/mtrace.3:96
msgid ""
"The tracing output produced after a call to B<mtrace>() is textual, but not "
"designed to be human readable. The GNU C library provides a Perl script, "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:100
+#: build/C/man3/mtrace.3:102
msgid ""
"The tracing performed by B<mtrace>() incurs a performance penalty (if "
"B<MALLOC_TRACE> points to a valid, writable pathname)."
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:106
+#: build/C/man3/mtrace.3:108
msgid ""
"The line-number information produced by B<mtrace>(1) is not always precise: "
"the line number references may refer to the previous or following "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:113
+#: build/C/man3/mtrace.3:115
msgid ""
"The shell session below demonstrates the use of the B<mtrace>() function "
"and the B<mtrace>(1) command in a program that has memory leaks at two "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:120
+#: build/C/man3/mtrace.3:122
#, no-wrap
msgid ""
"$ B<cat t_mtrace.c>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:125
+#: build/C/man3/mtrace.3:127
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:127
+#: build/C/man3/mtrace.3:129
#, no-wrap
msgid " mtrace();\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:130
+#: build/C/man3/mtrace.3:132
#, no-wrap
msgid ""
" for (j = 0; j E<lt> 2; j++)\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:134
+#: build/C/man3/mtrace.3:136
#, no-wrap
msgid ""
" calloc(16, 16); /* Never freed--a memory leak */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:140
+#: build/C/man3/mtrace.3:142
msgid ""
"When we run the program as follows, we see that B<mtrace>() diagnosed "
"memory leaks at two different locations in the program:"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:153
+#: build/C/man3/mtrace.3:155
#, no-wrap
msgid ""
"$ B<cc -g t_mtrace.c -o t_mtrace>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:165
+#: build/C/man3/mtrace.3:167
msgid ""
"The first two messages about unfreed memory correspond to the two "
"B<malloc>(3) calls inside the I<for> loop. The final message corresponds "
msgstr ""
#. type: Plain text
-#: build/C/man3/mtrace.3:170
+#: build/C/man3/mtrace.3:172
msgid "B<mtrace>(1), B<malloc>(3), B<malloc_hook>(3), B<mcheck>(3)"
msgstr ""
#. type: TH
-#: build/C/man2/posix_fadvise.2:27
+#: build/C/man2/posix_fadvise.2:28
#, no-wrap
msgid "POSIX_FADVISE"
msgstr ""
#. type: TH
-#: build/C/man2/posix_fadvise.2:27 build/C/man2/sync_file_range.2:30
+#: build/C/man2/posix_fadvise.2:28 build/C/man2/sync_file_range.2:30
#, no-wrap
msgid "2010-10-09"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:30
+#: build/C/man2/posix_fadvise.2:31
msgid "posix_fadvise - predeclare an access pattern for file data"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:33 build/C/man3/posix_fallocate.3:29
+#: build/C/man2/posix_fadvise.2:34 build/C/man3/posix_fallocate.3:31
#, no-wrap
msgid "B<#include E<lt>fcntl.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:36
+#: build/C/man2/posix_fadvise.2:37
#, no-wrap
msgid ""
"B<int posix_fadvise(int >I<fd>B<, off_t >I<offset>B<, off_t >I<len>B<, int "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:45
+#: build/C/man2/posix_fadvise.2:46
msgid "B<posix_fadvise>():"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:47 build/C/man3/posix_fallocate.3:42
+#: build/C/man2/posix_fadvise.2:48 build/C/man3/posix_fallocate.3:44
msgid "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:55
+#: build/C/man2/posix_fadvise.2:56
msgid ""
"Programs can use B<posix_fadvise>() to announce an intention to access file "
"data in a specific pattern in the future, thus allowing the kernel to "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:62
+#: build/C/man2/posix_fadvise.2:63
msgid ""
"The I<advice> applies to a (not necessarily existent) region starting at "
"I<offset> and extending for I<len> bytes (or until the end of the file if "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:64
+#: build/C/man2/posix_fadvise.2:65
msgid "Permissible values for I<advice> include:"
msgstr ""
#. type: TP
-#: build/C/man2/posix_fadvise.2:64
+#: build/C/man2/posix_fadvise.2:65
#, no-wrap
msgid "B<POSIX_FADV_NORMAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:70
+#: build/C/man2/posix_fadvise.2:71
msgid ""
"Indicates that the application has no advice to give about its access "
"pattern for the specified data. If no advice is given for an open file, "
msgstr ""
#. type: TP
-#: build/C/man2/posix_fadvise.2:70
+#: build/C/man2/posix_fadvise.2:71
#, no-wrap
msgid "B<POSIX_FADV_SEQUENTIAL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:74
+#: build/C/man2/posix_fadvise.2:75
msgid ""
"The application expects to access the specified data sequentially (with "
"lower offsets read before higher ones)."
msgstr ""
#. type: TP
-#: build/C/man2/posix_fadvise.2:74
+#: build/C/man2/posix_fadvise.2:75
#, no-wrap
msgid "B<POSIX_FADV_RANDOM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:77
+#: build/C/man2/posix_fadvise.2:78
msgid "The specified data will be accessed in random order."
msgstr ""
#. type: TP
-#: build/C/man2/posix_fadvise.2:77
+#: build/C/man2/posix_fadvise.2:78
#, no-wrap
msgid "B<POSIX_FADV_NOREUSE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:80
+#: build/C/man2/posix_fadvise.2:81
msgid "The specified data will be accessed only once."
msgstr ""
#. type: TP
-#: build/C/man2/posix_fadvise.2:80
+#: build/C/man2/posix_fadvise.2:81
#, no-wrap
msgid "B<POSIX_FADV_WILLNEED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:83
+#: build/C/man2/posix_fadvise.2:84
msgid "The specified data will be accessed in the near future."
msgstr ""
#. type: TP
-#: build/C/man2/posix_fadvise.2:83
+#: build/C/man2/posix_fadvise.2:84
#, no-wrap
msgid "B<POSIX_FADV_DONTNEED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:86
+#: build/C/man2/posix_fadvise.2:87
msgid "The specified data will not be accessed in the near future."
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:89
+#: build/C/man2/posix_fadvise.2:90
msgid "On success, zero is returned. On error, an error number is returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:93
+#: build/C/man2/posix_fadvise.2:94
msgid "The I<fd> argument was not a valid file descriptor."
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:96
+#: build/C/man2/posix_fadvise.2:97
msgid "An invalid value was specified for I<advice>."
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:103
+#: build/C/man2/posix_fadvise.2:104
msgid ""
"The specified file descriptor refers to a pipe or FIFO. (Linux actually "
"returns B<EINVAL> in this case.)"
#. of fadvise64_64()
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:111
+#: build/C/man2/posix_fadvise.2:112
msgid ""
"Kernel support first appeared in Linux 2.5.60; the underlying system call is "
"called B<fadvise64>(). Library support has been provided since glibc "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:120
+#: build/C/man2/posix_fadvise.2:121
msgid ""
"POSIX.1-2001. Note that the type of the I<len> argument was changed from "
"I<size_t> to I<off_t> in POSIX.1-2003 TC1."
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:126
+#: build/C/man2/posix_fadvise.2:127
msgid ""
"Under Linux, B<POSIX_FADV_NORMAL> sets the readahead window to the default "
"size for the backing device; B<POSIX_FADV_SEQUENTIAL> doubles this size, and "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:133
+#: build/C/man2/posix_fadvise.2:134
msgid ""
"B<POSIX_FADV_WILLNEED> initiates a nonblocking read of the specified region "
"into the page cache. The amount of data read may be decreased by the kernel "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:137
+#: build/C/man2/posix_fadvise.2:138
msgid ""
"In kernels before 2.6.18, B<POSIX_FADV_NOREUSE> had the same semantics as "
"B<POSIX_FADV_WILLNEED>. This was probably a bug; since kernel 2.6.18, this "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:145
+#: build/C/man2/posix_fadvise.2:146
msgid ""
"B<POSIX_FADV_DONTNEED> attempts to free cached pages associated with the "
"specified region. This is useful, for example, while streaming large "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:153
+#: build/C/man2/posix_fadvise.2:154
msgid ""
"Pages that have not yet been written out will be unaffected, so if the "
"application wishes to guarantee that pages will be released, it should call "
msgstr ""
#. type: SS
-#: build/C/man2/posix_fadvise.2:153
+#: build/C/man2/posix_fadvise.2:154
#, no-wrap
msgid "arm_fadvise()"
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:165
+#: build/C/man2/posix_fadvise.2:166
msgid ""
"The ARM architecture needs 64-bit arguments to be aligned in a suitable pair "
"of registers. On this architecture, the call signature of "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:170
+#: build/C/man2/posix_fadvise.2:171
#, no-wrap
msgid ""
"B<long arm_fadvise64_64(int >I<fd>B<, int >I<advice>B<,>\n"
#. No ARM support in glibc.
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:177
+#: build/C/man2/posix_fadvise.2:178
msgid ""
"The behavior of this system call is otherwise exactly the same as "
"B<posix_fadvise>(). No library support is provided for this system call in "
msgstr ""
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:182
+#: build/C/man2/posix_fadvise.2:183
msgid ""
"In kernels before 2.6.6, if I<len> was specified as 0, then this was "
"interpreted literally as \"zero bytes\", rather than as meaning \"all bytes "
#. FIXME . Write a posix_fadvise(3) page.
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:188
+#: build/C/man2/posix_fadvise.2:189
msgid ""
"B<readahead>(2), B<sync_file_range>(2), B<posix_fallocate>(3), "
"B<posix_madvise>(3)"
msgstr ""
#. type: TH
-#: build/C/man3/posix_fallocate.3:23
+#: build/C/man3/posix_fallocate.3:25
#, no-wrap
msgid "POSIX_FALLOCATE"
msgstr ""
-#. type: TH
-#: build/C/man3/posix_fallocate.3:23
-#, no-wrap
-msgid "2010-09-20"
-msgstr ""
-
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:26
+#: build/C/man3/posix_fallocate.3:28
msgid "posix_fallocate - allocate file space"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:31
+#: build/C/man3/posix_fallocate.3:33
#, no-wrap
msgid "B<int posix_fallocate(int >I<fd>B<, off_t >I<offset>B<, off_t >I<len>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:40
+#: build/C/man3/posix_fallocate.3:42
msgid "B<posix_fallocate>():"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:59
+#: build/C/man3/posix_fallocate.3:61
msgid ""
"The function B<posix_fallocate>() ensures that disk space is allocated for "
"the file referred to by the descriptor I<fd> for the bytes in the range "
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:64
+#: build/C/man3/posix_fallocate.3:66
msgid ""
"If the size of the file is less than I<offset>+I<len>, then the file is "
"increased to this size; otherwise the file size is left unchanged."
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:70
+#: build/C/man3/posix_fallocate.3:72
msgid ""
"B<posix_fallocate>() returns zero on success, or an error number on "
"failure. Note that I<errno> is not set."
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:79
+#: build/C/man3/posix_fallocate.3:81
msgid "I<offset+len> exceeds the maximum file size."
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:89
+#: build/C/man3/posix_fallocate.3:91
msgid "I<fd> does not refer to a regular file."
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:98
+#: build/C/man3/posix_fallocate.3:100
msgid "I<fd> refers to a pipe."
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:101
+#: build/C/man3/posix_fallocate.3:103
msgid "B<posix_fallocate>() is available since glibc 2.1.94."
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:126
+#: build/C/man3/posix_fallocate.3:128
msgid ""
"POSIX.1-2008 says that an implementation I<shall> give the B<EINVAL> error "
"if I<len> was 0, or I<offset> was less than 0. POSIX.1-2001 says that an "
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:130
-msgid "B<fallocate>(2), B<lseek>(2), B<posix_fadvise>(2)"
+#: build/C/man3/posix_fallocate.3:133
+msgid "B<fallocate>(1), B<fallocate>(2), B<lseek>(2), B<posix_fadvise>(2)"
msgstr ""
#. type: TH
-#: build/C/man3/posix_memalign.3:28
+#: build/C/man3/posix_memalign.3:29
#, no-wrap
msgid "POSIX_MEMALIGN"
msgstr ""
#. type: TH
-#: build/C/man3/posix_memalign.3:28
+#: build/C/man3/posix_memalign.3:29
#, no-wrap
msgid "2012-03-23"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:31
+#: build/C/man3/posix_memalign.3:32
msgid ""
-"posix_memalign, aligned_alloc, memalign, valloc, pvalloc - Allocate aligned "
+"posix_memalign, aligned_alloc, memalign, valloc, pvalloc - allocate aligned "
"memory"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:38
+#: build/C/man3/posix_memalign.3:39
#, no-wrap
msgid ""
"B<int posix_memalign(void **>I<memptr>B<, size_t >I<alignment>B<, size_t "
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:43
+#: build/C/man3/posix_memalign.3:44
#, no-wrap
msgid ""
"B<void *memalign(size_t >I<alignment>B<, size_t >I<size>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:53
+#: build/C/man3/posix_memalign.3:54
msgid ""
"B<posix_memalign>(): _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ "
"E<gt>=\\ 600"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:56
+#: build/C/man3/posix_memalign.3:57
msgid "B<aligned_alloc>(): _ISOC11_SOURCE"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:58
+#: build/C/man3/posix_memalign.3:59
msgid "B<valloc>():"
msgstr ""
#. type: TP
-#: build/C/man3/posix_memalign.3:61
+#: build/C/man3/posix_memalign.3:62
#, no-wrap
msgid "Since glibc 2.12:"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:68
+#: build/C/man3/posix_memalign.3:69
#, no-wrap
msgid ""
"_BSD_SOURCE ||\n"
msgstr ""
#. type: TP
-#: build/C/man3/posix_memalign.3:70
+#: build/C/man3/posix_memalign.3:71
#, no-wrap
msgid "Before glibc 2.12:"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:74
+#: build/C/man3/posix_memalign.3:75
msgid ""
"_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED"
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:81
+#: build/C/man3/posix_memalign.3:82
msgid ""
"(The (nonstandard) header file I<E<lt>malloc.hE<gt>> also exposes the "
"declaration of B<valloc>(); no feature test macros are required.)"
#. glibc does this:
#. type: Plain text
-#: build/C/man3/posix_memalign.3:102
+#: build/C/man3/posix_memalign.3:103
msgid ""
"The function B<posix_memalign>() allocates I<size> bytes and places the "
"address of the allocated memory in I<*memptr>. The address of the allocated "
#. The behavior of memalign() for size==0 is as for posix_memalign()
#. but no standards govern this.
#. type: Plain text
-#: build/C/man3/posix_memalign.3:113
+#: build/C/man3/posix_memalign.3:114
msgid ""
"The obsolete function B<memalign>() allocates I<size> bytes and returns a "
"pointer to the allocated memory. The memory address will be a multiple of "
msgstr ""
#. type: Plain text
-#: build/C/man3/posix_memalign.3:122
+#: build/C/man3/posix_memalign.3:123
msgid ""
"The function B<aligned_alloc>() is the same as B<memalign>(), except for "
"the added restriction that I<size> should be a multiple of I<alignment>."
msgstr ""
#. type: TH
-#: build/C/man2/remap_file_pages.2:26
+#: build/C/man2/remap_file_pages.2:28
#, no-wrap
msgid "REMAP_FILE_PAGES"
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:29
+#: build/C/man2/remap_file_pages.2:31
msgid "remap_file_pages - create a nonlinear file mapping"
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:33
+#: build/C/man2/remap_file_pages.2:35
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:36
+#: build/C/man2/remap_file_pages.2:38
#, no-wrap
msgid ""
"B<int remap_file_pages(void *>I<addr>B<, size_t >I<size>B<, int "
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:49
+#: build/C/man2/remap_file_pages.2:51
msgid ""
"The B<remap_file_pages>() system call is used to create a nonlinear "
"mapping, that is, a mapping in which the pages of the file are mapped into a "
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:51
+#: build/C/man2/remap_file_pages.2:53
msgid "To create a nonlinear mapping we perform the following steps:"
msgstr ""
#. type: TP
-#: build/C/man2/remap_file_pages.2:51
+#: build/C/man2/remap_file_pages.2:53
#, no-wrap
msgid "1."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:59
+#: build/C/man2/remap_file_pages.2:61
msgid ""
"Use B<mmap>(2) to create a mapping (which is initially linear). This "
"mapping must be created with the B<MAP_SHARED> flag."
msgstr ""
#. type: TP
-#: build/C/man2/remap_file_pages.2:59
+#: build/C/man2/remap_file_pages.2:61
#, no-wrap
msgid "2."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:67
+#: build/C/man2/remap_file_pages.2:69
msgid ""
"Use one or more calls to B<remap_file_pages>() to rearrange the "
"correspondence between the pages of the mapping and the pages of the file. "
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:78
+#: build/C/man2/remap_file_pages.2:80
msgid ""
"The I<pgoff> and I<size> arguments specify the region of the file that is to "
"be relocated within the mapping: I<pgoff> is a file offset in units of the "
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:96
+#: build/C/man2/remap_file_pages.2:98
msgid ""
"The I<addr> argument serves two purposes. First, it identifies the mapping "
"whose pages we want to rearrange. Thus, I<addr> must be an address that "
#. the analogous arguments for munmap()/mprotect() and for mlock().
#. MTK, 14 Sep 2005
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:110
+#: build/C/man2/remap_file_pages.2:112
msgid ""
"The values specified in I<addr> and I<size> should be multiples of the "
"system page size. If they are not, then the kernel rounds I<both> values "
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:114
+#: build/C/man2/remap_file_pages.2:116
msgid "The I<prot> argument must be specified as 0."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:122
+#: build/C/man2/remap_file_pages.2:124
msgid ""
"The I<flags> argument has the same meaning as for B<mmap>(2), but all flags "
"other than B<MAP_NONBLOCK> are ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:129
+#: build/C/man2/remap_file_pages.2:131
msgid ""
"On success, B<remap_file_pages>() returns 0. On error, -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:137
+#: build/C/man2/remap_file_pages.2:139
msgid ""
"I<addr> does not refer to a valid mapping created with the B<MAP_SHARED> "
"flag."
#. And possibly others from vma->vm_ops->populate()
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:146
+#: build/C/man2/remap_file_pages.2:148
msgid "I<addr>, I<size>, I<prot>, or I<pgoff> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:151
+#: build/C/man2/remap_file_pages.2:153
msgid ""
"The B<remap_file_pages>() system call appeared in Linux 2.5.46; glibc "
"support was added in version 2.3.3."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:155
+#: build/C/man2/remap_file_pages.2:157
msgid "The B<remap_file_pages>() system call is Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:162
+#: build/C/man2/remap_file_pages.2:164
msgid ""
"B<getpagesize>(2), B<mmap>(2), B<mmap2>(2), B<mprotect>(2), B<mremap>(2), "
"B<msync>(2)"
#. type: Plain text
#: build/C/man3/shm_open.3:29
-msgid "shm_open, shm_unlink - Create/open or unlink POSIX shared memory objects"
+msgid "shm_open, shm_unlink - create/open or unlink POSIX shared memory objects"
msgstr ""
#. type: Plain text
msgstr ""
#. type: TP
-#: build/C/man3/shm_open.3:200 build/C/man2/shmget.2:192
+#: build/C/man3/shm_open.3:200 build/C/man2/shmget.2:194
#, no-wrap
msgid "B<EEXIST>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man3/shm_open.3:231 build/C/man3/shm_open.3:240 build/C/man2/shmget.2:206
+#: build/C/man3/shm_open.3:231 build/C/man3/shm_open.3:240 build/C/man2/shmget.2:208
#, no-wrap
msgid "B<ENOENT>"
msgstr ""
#. type: Plain text
#: build/C/man7/shm_overview.7:30
-msgid "shm_overview - Overview of POSIX shared memory"
+msgid "shm_overview - overview of POSIX shared memory"
msgstr ""
#. type: Plain text
msgstr ""
#. type: TH
-#: build/C/man2/shmctl.2:43
+#: build/C/man2/shmctl.2:45
#, no-wrap
msgid "SHMCTL"
msgstr ""
#. type: TH
-#: build/C/man2/shmctl.2:43
+#: build/C/man2/shmctl.2:45 build/C/man2/shmget.2:38
#, no-wrap
-msgid "2008-08-07"
+msgid "2012-05-31"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:46
+#: build/C/man2/shmctl.2:48
msgid "shmctl - shared memory control"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:49 build/C/man2/shmget.2:42
+#: build/C/man2/shmctl.2:51 build/C/man2/shmget.2:44
msgid "B<#include E<lt>sys/ipc.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:51 build/C/man2/shmget.2:44
+#: build/C/man2/shmctl.2:53 build/C/man2/shmget.2:46
msgid "B<#include E<lt>sys/shm.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:53
+#: build/C/man2/shmctl.2:55
msgid "B<int shmctl(int >I<shmid>B<, int >I<cmd>B<, struct shmid_ds *>I<buf>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:60
+#: build/C/man2/shmctl.2:62
msgid ""
"B<shmctl>() performs the control operation specified by I<cmd> on the "
"shared memory segment whose identifier is given in I<shmid>."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:65
+#: build/C/man2/shmctl.2:67
msgid ""
"The I<buf> argument is a pointer to a I<shmid_ds> structure, defined in "
"I<E<lt>sys/shm.hE<gt>> as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:79
+#: build/C/man2/shmctl.2:81
#, no-wrap
msgid ""
"struct shmid_ds {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:87
+#: build/C/man2/shmctl.2:89
msgid ""
-"The I<ipc_perm> structure is defined in I<E<lt>sys/ipc.hE<gt>> as follows "
-"(the highlighted fields are settable using B<IPC_SET>):"
+"The I<ipc_perm> structure is defined as follows (the highlighted fields are "
+"settable using B<IPC_SET>):"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:100
+#: build/C/man2/shmctl.2:102
#, no-wrap
msgid ""
"struct ipc_perm {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:106
+#: build/C/man2/shmctl.2:108
msgid "Valid values for I<cmd> are:"
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:107
+#: build/C/man2/shmctl.2:109
#, no-wrap
msgid "B<IPC_STAT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:116
+#: build/C/man2/shmctl.2:118
msgid ""
"Copy information from the kernel data structure associated with I<shmid> "
"into the I<shmid_ds> structure pointed to by I<buf>. The caller must have "
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:116
+#: build/C/man2/shmctl.2:118
#, no-wrap
msgid "B<IPC_SET>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:134
+#: build/C/man2/shmctl.2:136
msgid ""
"Write the values of some members of the I<shmid_ds> structure pointed to by "
"I<buf> to the kernel data structure associated with this shared memory "
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:134
+#: build/C/man2/shmctl.2:136
#, no-wrap
msgid "B<IPC_RMID>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:151
+#: build/C/man2/shmctl.2:153
msgid ""
"Mark the segment to be destroyed. The segment will only actually be "
"destroyed after the last process detaches it (i.e., when the I<shm_nattch> "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:154
+#: build/C/man2/shmctl.2:156
msgid ""
"The caller I<must> ensure that a segment is eventually destroyed; otherwise "
"its pages that were faulted in will remain in memory or swap."
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:154
+#: build/C/man2/shmctl.2:156
#, no-wrap
msgid "B<IPC_INFO> (Linux-specific)"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:167
+#: build/C/man2/shmctl.2:169
msgid ""
"Returns information about system-wide shared memory limits and parameters in "
"the structure pointed to by I<buf>. This structure is of type I<shminfo> "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:181
+#: build/C/man2/shmctl.2:183
#, no-wrap
msgid ""
"struct shminfo {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:194
+#: build/C/man2/shmctl.2:196
msgid ""
"The I<shmmni>, I<shmmax>, and I<shmall> settings can be changed via I</proc> "
"files of the same name; see B<proc>(5) for details."
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:194
+#: build/C/man2/shmctl.2:196
#, no-wrap
msgid "B<SHM_INFO> (Linux-specific)"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:205
+#: build/C/man2/shmctl.2:207
msgid ""
"Returns a I<shm_info> structure whose fields contain information about "
"system resources consumed by shared memory. This structure is defined in "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:222
+#: build/C/man2/shmctl.2:224
#, no-wrap
msgid ""
"struct shm_info {\n"
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:224
+#: build/C/man2/shmctl.2:226
#, no-wrap
msgid "B<SHM_STAT> (Linux-specific)"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:235
+#: build/C/man2/shmctl.2:237
msgid ""
"Returns a I<shmid_ds> structure as for B<IPC_STAT>. However, the I<shmid> "
"argument is not a segment identifier, but instead an index into the kernel's "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:238
+#: build/C/man2/shmctl.2:240
msgid ""
"The caller can prevent or allow swapping of a shared memory segment with the "
"following I<cmd> values:"
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:239
+#: build/C/man2/shmctl.2:241
#, no-wrap
msgid "B<SHM_LOCK> (Linux-specific)"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:251
+#: build/C/man2/shmctl.2:253
msgid ""
"Prevent swapping of the shared memory segment. The caller must fault in any "
"pages that are required to be present after locking is enabled. If a "
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:251
+#: build/C/man2/shmctl.2:253
#, no-wrap
msgid "B<SHM_UNLOCK> (Linux-specific)"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:254
+#: build/C/man2/shmctl.2:256
msgid "Unlock the segment, allowing it to be swapped out."
msgstr ""
#. This was a botch-up in the move to RLIMIT_MEMLOCK, and was fixed
#. in 2.6.10. MTK, May 2005
#. type: Plain text
-#: build/C/man2/shmctl.2:272
+#: build/C/man2/shmctl.2:274
msgid ""
"In kernels before 2.6.10, only a privileged process could employ B<SHM_LOCK> "
"and B<SHM_UNLOCK>. Since kernel 2.6.10, an unprivileged process can employ "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:290
+#: build/C/man2/shmctl.2:292
msgid ""
"A successful B<IPC_INFO> or B<SHM_INFO> operation returns the index of the "
"highest used entry in the kernel's internal array recording information "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:294
+#: build/C/man2/shmctl.2:296
msgid "On error, -1 is returned, and I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:303
+#: build/C/man2/shmctl.2:305
msgid ""
"B<IPC_STAT> or B<SHM_STAT> is requested and I<shm_perm.mode> does not allow "
"read access for I<shmid>, and the calling process does not have the "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:314
+#: build/C/man2/shmctl.2:316
msgid ""
"The argument I<cmd> has value B<IPC_SET> or B<IPC_STAT> but the address "
"pointed to by I<buf> isn't accessible."
msgstr ""
#. type: TP
-#: build/C/man2/shmctl.2:314
+#: build/C/man2/shmctl.2:316 build/C/man2/shmop.2:197
#, no-wrap
msgid "B<EIDRM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:317
+#: build/C/man2/shmctl.2:319 build/C/man2/shmop.2:200
msgid "I<shmid> points to a removed identifier."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:326
+#: build/C/man2/shmctl.2:328
msgid ""
"I<shmid> is not a valid identifier, or I<cmd> is not a valid command. Or: "
"for a B<SHM_STAT> operation, the index value specified in I<shmid> referred "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:337
+#: build/C/man2/shmctl.2:339
msgid ""
"(In kernels since 2.6.9), B<SHM_LOCK> was specified and the size of the "
"to-be-locked segment would mean that the total bytes in locked shared memory "
"(see B<setrlimit>(2))."
msgstr ""
-#. type: TP
-#: build/C/man2/shmctl.2:337
-#, no-wrap
-msgid "B<EOVERFLOW>"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/shmctl.2:342
+#: build/C/man2/shmctl.2:344
msgid ""
"B<IPC_STAT> is attempted, and the GID or UID value is too large to be stored "
"in the structure pointed to by I<buf>."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:354
+#: build/C/man2/shmctl.2:356
msgid ""
"B<IPC_SET> or B<IPC_RMID> is attempted, and the effective user ID of the "
"calling process is not that of the creator (found in I<shm_perm.cuid>), or "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:366
+#: build/C/man2/shmctl.2:368
msgid ""
"Or (in kernels before 2.6.9), B<SHM_LOCK> or B<SHM_UNLOCK> was specified, "
"but the process was not privileged (Linux: did not have the B<CAP_IPC_LOCK> "
#. SVr4 documents an additional error condition EMFILE.
#. type: Plain text
-#: build/C/man2/shmctl.2:371 build/C/man2/shmget.2:232 build/C/man2/shmop.2:229
+#: build/C/man2/shmctl.2:373 build/C/man2/shmget.2:234 build/C/man2/shmop.2:234
msgid "SVr4, POSIX.1-2001."
msgstr ""
+#. Like Linux, the FreeBSD man pages still document
+#. the inclusion of these header files.
#. type: Plain text
-#: build/C/man2/shmctl.2:382
+#: build/C/man2/shmctl.2:386 build/C/man2/shmget.2:250
+msgid ""
+"The inclusion of I<E<lt>sys/types.hE<gt>> and I<E<lt>sys/ipc.hE<gt>> isn't "
+"required on Linux or by any version of POSIX. However, some old "
+"implementations required the inclusion of these header files, and the SVID "
+"also documented their inclusion. Applications intended to be portable to "
+"such old systems may need to include these header files."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/shmctl.2:397
msgid ""
"The B<IPC_INFO>, B<SHM_STAT> and B<SHM_INFO> operations are used by the "
"B<ipcs>(1) program to provide information on allocated resources. In the "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:390
+#: build/C/man2/shmctl.2:405
msgid ""
"Linux permits a process to attach (B<shmat>(2)) a shared memory segment "
"that has already been marked for deletion using I<shmctl(IPC_RMID)>. This "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:403
+#: build/C/man2/shmctl.2:418
msgid ""
"Various fields in a I<struct shmid_ds> were typed as I<short> under Linux "
"2.2 and have become I<long> under Linux 2.4. To take advantage of this, a "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmctl.2:410
+#: build/C/man2/shmctl.2:425
msgid ""
"B<mlock>(2), B<setrlimit>(2), B<shmget>(2), B<shmop>(2), B<capabilities>(7), "
"B<svipc>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/shmget.2:36
+#: build/C/man2/shmget.2:38
#, no-wrap
msgid "SHMGET"
msgstr ""
-#. type: TH
-#: build/C/man2/shmget.2:36
-#, no-wrap
-msgid "2006-05-02"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/shmget.2:39
+#: build/C/man2/shmget.2:41
msgid "shmget - allocates a shared memory segment"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:46
+#: build/C/man2/shmget.2:48
msgid "B<int shmget(key_t >I<key>B<, size_t >I<size>B<, int >I<shmflg>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:70
+#: build/C/man2/shmget.2:72
msgid ""
"B<shmget>() returns the identifier of the shared memory segment associated "
"with the value of the argument I<key>. A new shared memory segment, with "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:89
+#: build/C/man2/shmget.2:91
msgid ""
"If I<shmflg> specifies both B<IPC_CREAT> and B<IPC_EXCL> and a shared memory "
"segment already exists for I<key>, then B<shmget>() fails with I<errno> set "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:93
+#: build/C/man2/shmget.2:95
msgid "The value I<shmflg> is composed of:"
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:93
+#: build/C/man2/shmget.2:95
#, no-wrap
msgid "B<IPC_CREAT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:100
+#: build/C/man2/shmget.2:102
msgid ""
"to create a new segment. If this flag is not used, then B<shmget>() will "
"find the segment associated with I<key> and check to see if the user has "
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:100
+#: build/C/man2/shmget.2:102
#, no-wrap
msgid "B<IPC_EXCL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:103
+#: build/C/man2/shmget.2:105
msgid "used with B<IPC_CREAT> to ensure failure if the segment already exists."
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:103
+#: build/C/man2/shmget.2:105
#, no-wrap
msgid "I<mode_flags>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:113
+#: build/C/man2/shmget.2:115
msgid ""
"(least significant 9 bits) specifying the permissions granted to the owner, "
"group, and world. These bits have the same format, and the same meaning, as "
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:113
+#: build/C/man2/shmget.2:115
#, no-wrap
msgid "B<SHM_HUGETLB> (since Linux 2.6)"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:119
+#: build/C/man2/shmget.2:121
msgid ""
-"Allocate the segment using \"huge pages.\" See the kernel source file "
+"Allocate the segment using \"huge pages.\" See the Linux kernel source file "
"I<Documentation/vm/hugetlbpage.txt> for further information."
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:119
+#: build/C/man2/shmget.2:121
#, no-wrap
msgid "B<SHM_NORESERVE> (since Linux 2.6.15)"
msgstr ""
#. As at 2.6.17-rc2, this flag has no effect if SHM_HUGETLB was also
#. specified.
#. type: Plain text
-#: build/C/man2/shmget.2:138
+#: build/C/man2/shmget.2:140
msgid ""
"This flag serves the same purpose as the B<mmap>(2) B<MAP_NORESERVE> flag. "
"Do not reserve swap space for this segment. When swap space is reserved, "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:146
+#: build/C/man2/shmget.2:148
msgid ""
"When a new shared memory segment is created, its contents are initialized to "
"zero values, and its associated data structure, I<shmid_ds> (see "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:151
+#: build/C/man2/shmget.2:153
msgid ""
"I<shm_perm.cuid> and I<shm_perm.uid> are set to the effective user ID of the "
"calling process."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:156
+#: build/C/man2/shmget.2:158
msgid ""
"I<shm_perm.cgid> and I<shm_perm.gid> are set to the effective group ID of "
"the calling process."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:161
+#: build/C/man2/shmget.2:163
msgid ""
"The least significant 9 bits of I<shm_perm.mode> are set to the least "
"significant 9 bit of I<shmflg>."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:165
+#: build/C/man2/shmget.2:167
msgid "I<shm_segsz> is set to the value of I<size>."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:172
+#: build/C/man2/shmget.2:174
msgid "I<shm_lpid>, I<shm_nattch>, I<shm_atime> and I<shm_dtime> are set to 0."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:175
+#: build/C/man2/shmget.2:177
msgid "I<shm_ctime> is set to the current time."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:178
+#: build/C/man2/shmget.2:180
msgid ""
"If the shared memory segment already exists, the permissions are verified, "
"and a check is made to see if it is marked for destruction."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:182
+#: build/C/man2/shmget.2:184
msgid "A valid segment identifier, I<shmid>, is returned on success, -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:186
+#: build/C/man2/shmget.2:188
msgid "On failure, I<errno> is set to one of the following:"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:192
+#: build/C/man2/shmget.2:194
msgid ""
"The user does not have permission to access the shared memory segment, and "
"does not have the B<CAP_IPC_OWNER> capability."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:196
+#: build/C/man2/shmget.2:198
msgid "B<IPC_CREAT | IPC_EXCL> was specified and the segment exists."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:202
+#: build/C/man2/shmget.2:204
msgid ""
"A new segment was to be created and I<size> E<lt> B<SHMMIN> or I<size> E<gt> "
"B<SHMMAX>, or no new segment was to be created, a segment with given key "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:211
+#: build/C/man2/shmget.2:213
msgid "No segment exists for the given I<key>, and B<IPC_CREAT> was not specified."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:214
+#: build/C/man2/shmget.2:216
msgid "No memory could be allocated for segment overhead."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:222
+#: build/C/man2/shmget.2:224
msgid ""
"All possible shared memory IDs have been taken (B<SHMMNI>), or allocating a "
"segment of the requested I<size> would cause the system to exceed the "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:229
+#: build/C/man2/shmget.2:231
msgid ""
"The B<SHM_HUGETLB> flag was specified, but the caller was not privileged "
"(did not have the B<CAP_IPC_LOCK> capability)."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:235
+#: build/C/man2/shmget.2:237
msgid "B<SHM_HUGETLB> is a nonportable Linux extension."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:245
+#: build/C/man2/shmget.2:260
msgid ""
"B<IPC_PRIVATE> isn't a flag field but a I<key_t> type. If this special "
"value is used for I<key>, the system call ignores everything but the least "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:249
+#: build/C/man2/shmget.2:264
msgid ""
"The following limits on shared memory segment resources affect the "
"B<shmget>() call:"
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:249
+#: build/C/man2/shmget.2:264
#, no-wrap
msgid "B<SHMALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:254
+#: build/C/man2/shmget.2:269
msgid ""
"System wide maximum of shared memory pages (on Linux, this limit can be read "
"and modified via I</proc/sys/kernel/shmall>)."
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:254
+#: build/C/man2/shmget.2:269
#, no-wrap
msgid "B<SHMMAX>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:259
+#: build/C/man2/shmget.2:274
msgid ""
"Maximum size in bytes for a shared memory segment: policy dependent (on "
"Linux, this limit can be read and modified via I</proc/sys/kernel/shmmax>)."
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:259
+#: build/C/man2/shmget.2:274
#, no-wrap
msgid "B<SHMMIN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:265
+#: build/C/man2/shmget.2:280
msgid ""
"Minimum size in bytes for a shared memory segment: implementation dependent "
"(currently 1 byte, though B<PAGE_SIZE> is the effective minimum size)."
msgstr ""
#. type: TP
-#: build/C/man2/shmget.2:265
+#: build/C/man2/shmget.2:280
#, no-wrap
msgid "B<SHMMNI>"
msgstr ""
#. that we could create one more segment than SHMMNI -- MTK
#. This /proc file is not available in Linux 2.2 and earlier -- MTK
#. type: Plain text
-#: build/C/man2/shmget.2:274
+#: build/C/man2/shmget.2:289
msgid ""
"System wide maximum number of shared memory segments: implementation "
"dependent (currently 4096, was 128 before Linux 2.3.99; on Linux, this limit "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:278
+#: build/C/man2/shmget.2:293
msgid ""
"The implementation has no specific limits for the per-process maximum number "
"of shared memory segments (B<SHMSEG>)."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:284
+#: build/C/man2/shmget.2:299
msgid ""
"Until version 2.3.30 Linux would return B<EIDRM> for a B<shmget>() on a "
"shared memory segment scheduled for deletion."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:290
+#: build/C/man2/shmget.2:305
msgid ""
"The name choice B<IPC_PRIVATE> was perhaps unfortunate, B<IPC_NEW> would "
"more clearly show its function."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmget.2:298
+#: build/C/man2/shmget.2:313
msgid ""
"B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<ftok>(3), B<capabilities>(7), "
"B<shm_overview>(7), B<svipc>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/shmop.2:39
+#: build/C/man2/shmop.2:41
#, no-wrap
msgid "SHMOP"
msgstr ""
-#. type: TH
-#: build/C/man2/shmop.2:39
-#, no-wrap
-msgid "2008-06-03"
-msgstr ""
-
#. type: Plain text
-#: build/C/man2/shmop.2:42
+#: build/C/man2/shmop.2:44
msgid "shmat, shmdt - shared memory operations"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:46
+#: build/C/man2/shmop.2:48
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:48
+#: build/C/man2/shmop.2:50
#, no-wrap
msgid ""
"B<void *shmat(int >I<shmid>B<, const void *>I<shmaddr>B<, int "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:50
+#: build/C/man2/shmop.2:52
#, no-wrap
msgid "B<int shmdt(const void *>I<shmaddr>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:59
+#: build/C/man2/shmop.2:61
msgid ""
"B<shmat>() attaches the shared memory segment identified by I<shmid> to the "
"address space of the calling process. The attaching address is specified by "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:65
+#: build/C/man2/shmop.2:67
msgid ""
"If I<shmaddr> is NULL, the system chooses a suitable (unused) address at "
"which to attach the segment."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:80
+#: build/C/man2/shmop.2:82
msgid ""
"If I<shmaddr> isn't NULL and B<SHM_RND> is specified in I<shmflg>, the "
"attach occurs at the address equal to I<shmaddr> rounded down to the nearest "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:90
+#: build/C/man2/shmop.2:92
msgid ""
"If B<SHM_RDONLY> is specified in I<shmflg>, the segment is attached for "
"reading and the process must have read permission for the segment. "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:105
+#: build/C/man2/shmop.2:107
msgid ""
"The (Linux-specific) B<SHM_REMAP> flag may be specified in I<shmflg> to "
"indicate that the mapping of the segment should replace any existing mapping "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:112
+#: build/C/man2/shmop.2:114
msgid ""
"The B<brk>(2) value of the calling process is not altered by the attach. "
"The segment will automatically be detached at process exit. The same "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:120
+#: build/C/man2/shmop.2:122
msgid ""
"A successful B<shmat>() call updates the members of the I<shmid_ds> "
"structure (see B<shmctl>(2)) associated with the shared memory segment as "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:123
+#: build/C/man2/shmop.2:125
msgid "I<shm_atime> is set to the current time."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:126 build/C/man2/shmop.2:152
+#: build/C/man2/shmop.2:128 build/C/man2/shmop.2:154
msgid "I<shm_lpid> is set to the process-ID of the calling process."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:129
+#: build/C/man2/shmop.2:131
msgid "I<shm_nattch> is incremented by one."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:140
+#: build/C/man2/shmop.2:142
msgid ""
"B<shmdt>() detaches the shared memory segment located at the address "
"specified by I<shmaddr> from the address space of the calling process. The "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:146
+#: build/C/man2/shmop.2:148
msgid ""
"On a successful B<shmdt>() call the system updates the members of the "
"I<shmid_ds> structure associated with the shared memory segment as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:149
+#: build/C/man2/shmop.2:151
msgid "I<shm_dtime> is set to the current time."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:157
+#: build/C/man2/shmop.2:159
msgid ""
"I<shm_nattch> is decremented by one. If it becomes 0 and the segment is "
"marked for deletion, the segment is deleted."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:161
+#: build/C/man2/shmop.2:163
msgid "After a B<fork>(2) the child inherits the attached shared memory segments."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:165
+#: build/C/man2/shmop.2:167
msgid ""
"After an B<execve>(2) all attached shared memory segments are detached from "
"the process."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:169
+#: build/C/man2/shmop.2:171
msgid ""
"Upon B<_exit>(2) all attached shared memory segments are detached from the "
"process."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:177
+#: build/C/man2/shmop.2:179
msgid ""
"On success B<shmat>() returns the address of the attached shared memory "
"segment; on error I<(void\\ *)\\ -1> is returned, and I<errno> is set to "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:183
+#: build/C/man2/shmop.2:185
msgid ""
"On success B<shmdt>() returns 0; on error -1 is returned, and I<errno> is "
"set to indicate the cause of the error."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:189
+#: build/C/man2/shmop.2:191
msgid "When B<shmat>() fails, I<errno> is set to one of the following:"
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:195
+#: build/C/man2/shmop.2:197
msgid ""
"The calling process does not have the required permissions for the requested "
"attach type, and does not have the B<CAP_IPC_OWNER> capability."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:209
+#: build/C/man2/shmop.2:214
msgid ""
"Invalid I<shmid> value, unaligned (i.e., not page-aligned and B<SHM_RND> was "
"not specified) or invalid I<shmaddr> value, or can't attach segment at "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:212
+#: build/C/man2/shmop.2:217
msgid "Could not allocate memory for the descriptor or for the page tables."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:218
+#: build/C/man2/shmop.2:223
msgid "When B<shmdt>() fails, I<errno> is set as follows:"
msgstr ""
#. The following since 2.6.17-rc1:
#. type: Plain text
-#: build/C/man2/shmop.2:226
+#: build/C/man2/shmop.2:231
msgid ""
"There is no shared memory segment attached at I<shmaddr>; or, I<shmaddr> is "
"not aligned on a page boundary."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:245
+#: build/C/man2/shmop.2:250
msgid ""
"In SVID 3 (or perhaps earlier) the type of the I<shmaddr> argument was "
"changed from I<char *> into I<const void *>, and the returned type of "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:257
+#: build/C/man2/shmop.2:262
msgid ""
"Using B<shmat>() with I<shmaddr> equal to NULL is the preferred, portable "
"way of attaching a shared memory segment. Be aware that the shared memory "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:262
+#: build/C/man2/shmop.2:267
msgid ""
"On Linux, it is possible to attach a shared memory segment even if it is "
"already marked to be deleted. However, POSIX.1-2001 does not specify this "
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:265
+#: build/C/man2/shmop.2:270
msgid "The following system parameter affects B<shmat>():"
msgstr ""
#. FIXME A good explanation of the rationale for the existence
#. of SHMLBA would be useful here
#. type: TP
-#: build/C/man2/shmop.2:265
+#: build/C/man2/shmop.2:270
#, no-wrap
msgid "B<SHMLBA>"
msgstr ""
#. architectures (i.e., SHMLBA != PAGE_SIZE for some architectures)
#. -- MTK, Nov 04
#. type: Plain text
-#: build/C/man2/shmop.2:278
+#: build/C/man2/shmop.2:283
msgid ""
"Segment low boundary address multiple. Must be page aligned. For the "
"current implementation the B<SHMLBA> value is B<PAGE_SIZE>."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:282
+#: build/C/man2/shmop.2:287
msgid ""
"The implementation places no intrinsic limit on the per-process maximum "
"number of shared memory segments (B<SHMSEG>)."
msgstr ""
#. type: Plain text
-#: build/C/man2/shmop.2:290
+#: build/C/man2/shmop.2:295
msgid ""
"B<brk>(2), B<mmap>(2), B<shmctl>(2), B<shmget>(2), B<capabilities>(7), "
"B<shm_overview>(7), B<svipc>(7)"
msgstr ""
#. type: TH
-#: build/C/man2/subpage_prot.2:28
+#: build/C/man2/subpage_prot.2:30
#, no-wrap
msgid "SUBPAGE_PROT"
msgstr ""
#. type: TH
-#: build/C/man2/subpage_prot.2:28
+#: build/C/man2/subpage_prot.2:30
#, no-wrap
-msgid "2010-10-30"
+msgid "2012-07-13"
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:31
+#: build/C/man2/subpage_prot.2:33
msgid "subpage_prot - define a subpage protection for an address range"
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:35
+#: build/C/man2/subpage_prot.2:37
#, no-wrap
msgid ""
"B<long subpage_prot(unsigned long >I<addr>B<, unsigned long >I<len>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:42
+#: build/C/man2/subpage_prot.2:41
+msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/subpage_prot.2:47
msgid ""
"The PowerPC-specific B<subpage_prot>() system call provides the facility to "
"control the access permissions on individual 4kB subpages on systems "
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:49
+#: build/C/man2/subpage_prot.2:54
msgid ""
"The protection map is applied to the memory pages in the region starting at "
"I<addr> and continuing for I<len> bytes. Both of these arguments must be "
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:61
+#: build/C/man2/subpage_prot.2:66
msgid ""
"The protection map is specified in the buffer pointed to by I<map>. The map "
"has 2 bits per 4kB subpage; thus each 32-bit word specifies the protections "
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:66
+#: build/C/man2/subpage_prot.2:71
msgid ""
"On success, B<subpage_prot>() returns 0. Otherwise, one of the error codes "
"specified below is returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:72
+#: build/C/man2/subpage_prot.2:77
msgid "The buffer referred to by I<map> is not accessible."
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:82
+#: build/C/man2/subpage_prot.2:87
msgid ""
"The I<addr> or I<len> arguments are incorrect. Both of these arguments must "
"be aligned to a multiple of the system page size, and they must not refer to "
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:85 build/C/man2/sync_file_range.2:166
+#: build/C/man2/subpage_prot.2:90 build/C/man2/sync_file_range.2:166
msgid "Out of memory."
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:91
+#: build/C/man2/subpage_prot.2:96
msgid ""
"This system call is provided on the PowerPC architecture since Linux "
"2.6.25. The system call is provided only if the kernel is configured with "
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:98
+#: build/C/man2/subpage_prot.2:101
+msgid ""
+"Glibc does not provide a wrapper for this system call; call it using "
+"B<syscall>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/subpage_prot.2:106
msgid ""
"Normal page protections (at the 64-kB page level) also apply; the subpage "
"protection mechanism is an additional constraint, so putting 0 in a 2-bit "
msgstr ""
#. type: SS
-#: build/C/man2/subpage_prot.2:98
+#: build/C/man2/subpage_prot.2:106
#, no-wrap
msgid "Rationale"
msgstr ""
#. But Paul Mackerass says (Oct 2010): I'm pretty sure we now only switch
#. the affected segment, not the whole process.
#. type: Plain text
-#: build/C/man2/subpage_prot.2:120
+#: build/C/man2/subpage_prot.2:128
msgid ""
"This system call is provided to assist writing emulators that operate using "
"64-kB pages on PowerPC systems. When emulating systems such as x86, which "
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:123
-msgid "B<mprotect>(2), B<syscall>(2);"
+#: build/C/man2/subpage_prot.2:131
+msgid "B<mprotect>(2), B<syscall>(2)"
msgstr ""
#. type: Plain text
-#: build/C/man2/subpage_prot.2:126
-msgid "the kernel source file I<Documentation/vm/hugetlbpage.txt>."
+#: build/C/man2/subpage_prot.2:134
+msgid "I<Documentation/vm/hugetlbpage.txt> in the Linux kernel source tree"
msgstr ""
#. type: TH
msgstr ""
#. FIXME . (bug?) Actually, how can 'fd' refer to a symbolic link (S_ISLNK)?
-#. (In userspace at least) it isn't possible to obtain a file descriptor
+#. (In user space at least) it isn't possible to obtain a file descriptor
#. for a symbolic link.
#. type: Plain text
#: build/C/man2/sync_file_range.2:177