msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-05-01 04:21+0900\n"
-"PO-Revision-Date: 2012-05-07 12:17+0900\n"
+"POT-Creation-Date: 2015-02-04 23:30+0900\n"
+"PO-Revision-Date: 2015-02-05 00:03+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
msgstr "2007-05-31"
#. 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/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/man3/malloc_trim.3:24
+#: 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:39 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
+#: build/C/man2/memfd_create.2:21
#, no-wrap
msgid "Linux"
msgstr "Linux"
#. 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/malloc_hook.3:6
-#: 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/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/man3/malloc_get_state.3:23 build/C/man3/malloc_trim.3:24
-#: build/C/man3/malloc_usable_size.3:23 build/C/man3/mcheck.3:23
+#: 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:39
+#: 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
+#: build/C/man2/memfd_create.2:21 build/C/man2/s390_pci_mmio_write.2:25
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux Programmer's Manual"
#. 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/malloc_hook.3:7
-#: build/C/man3/mallopt.3:25 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/man3/malloc_get_state.3:24 build/C/man3/malloc_trim.3:25
-#: build/C/man3/malloc_usable_size.3:24 build/C/man3/mcheck.3:24
+#: 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:40
+#: 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
+#: build/C/man2/memfd_create.2:22 build/C/man2/s390_pci_mmio_write.2:26
#, no-wrap
msgid "NAME"
msgstr "名前"
"alloc_hugepages, free_hugepages - 大きなサイズのページの割り当てと解放を行う"
#. 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/malloc_hook.3:11
-#: build/C/man3/mallopt.3:27 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/man3/malloc_get_state.3:26 build/C/man3/malloc_trim.3:27
-#: build/C/man3/malloc_usable_size.3:26 build/C/man3/mcheck.3:26
+#: 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:42
+#: 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
+#: build/C/man2/memfd_create.2:24 build/C/man2/s390_pci_mmio_write.2:29
#, no-wrap
msgid "SYNOPSIS"
msgstr "書式"
msgstr "B<int free_hugepages(void *>I<addr>B<);>\n"
#. 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/malloc_hook.3:29
-#: build/C/man3/mallopt.3:31 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/man3/malloc_get_state.3:34 build/C/man3/malloc_trim.3:31
-#: build/C/man3/malloc_usable_size.3:30 build/C/man3/mcheck.3:39
+#: 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:48
+#: 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
+#: build/C/man2/memfd_create.2:28 build/C/man2/s390_pci_mmio_write.2:39
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"
msgid ""
"The system calls B<alloc_hugepages>() and B<free_hugepages>() were "
"introduced in Linux 2.5.36 and removed again in 2.5.54. They existed only "
-"on i386 and ia64 (when built with B<CONFIG_HUGETLB_PAGE>). In Linux 2.4.20 "
+"on i386 and ia64 (when built with B<CONFIG_HUGETLB_PAGE>). In Linux 2.4.20, "
"the syscall numbers exist, but the calls fail with the error B<ENOSYS>."
msgstr ""
"システムコール B<alloc_hugepages>() と B<free_hugepages>() は Linux 2.5.36 "
"process's memory or to free them again. Huge pages are locked into memory, "
"and are not swapped."
msgstr ""
-"i386 では、メモリ管理ハードウェアは通常のページ (4 KiB) と 大きなサイズのペー"
-"ã\82¸ (以ä¸\8bã\80\81ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸; 2MiB ã\81¾ã\81\9fã\81¯ 4 MiB) ã\82\92 æ\89±ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 å\90\8cæ§\98ã\81«ã\80\81"
-"ia64 もいくつかのサイズのヒュージページを扱うことができる。 これらのシステム"
-"ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\81«ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9fã\82\8aã\80\81 å\86\8dã\81³è§£æ\94¾ã\81\97ã\81\9fã\82\8aã\81\99"
-"ã\82\8bã\80\82 ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81¯ã\83¡ã\83¢ã\83ª内にロックされ、スワップされない。"
+"i386 では、メモリー管理ハードウェアは通常のページ (4 KiB) と 大きなサイズの"
+"ã\83\9aã\83¼ã\82¸ (以ä¸\8bã\80\81ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸; 2MiB ã\81¾ã\81\9fã\81¯ 4 MiB) ã\82\92 æ\89±ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 å\90\8cæ§\98"
+"に、ia64 もいくつかのサイズのヒュージページを扱うことができる。 これらのシス"
+"ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9fã\82\8aã\80\81 å\86\8dã\81³è§£æ\94¾ã\81\97ã\81\9f"
+"ã\82\8aã\81\99ã\82\8bã\80\82 ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81¯ã\83¡ã\83¢ã\83ªã\83¼内にロックされ、スワップされない。"
#. type: Plain text
#: build/C/man2/alloc_hugepages.2:66
"may not follow. Addresses must be properly aligned."
msgstr ""
"B<free_hugepages>() の I<addr> 引き数は、どのページを解放するかを指定する: "
-"I<addr> は B<alloc_hugepages>() の呼び出しの返り値である (全てのユーザがメモ"
-"リを解放したときに、 そのメモリは初めて実際に解放される)。 B<alloc_hugepages>"
-"() の I<addr> 引き数はヒントであり、カーネルはそれに従うかもしれないし、 従"
-"わないかもしれない。 アドレスは正しく配置されなければならない。"
+"I<addr> は B<alloc_hugepages>() の呼び出しの返り値である (全てのユーザーがメ"
+"モリーを解放したときに、 そのメモリーは初めて実際に解放される)。 "
+"B<alloc_hugepages>() の I<addr> 引き数はヒントであり、カーネルはそれに従うか"
+"もしれないし、 従わないかもしれない。 アドレスは正しく配置されなければならな"
+"い。"
#. type: Plain text
#: build/C/man2/alloc_hugepages.2:86
"The I<prot> argument specifies the memory protection of the segment. It is "
"one of B<PROT_READ>, B<PROT_WRITE>, B<PROT_EXEC>."
msgstr ""
-"I<prot> 引き数はセグメントのメモリ保護を指定する。 これは B<PROT_READ>, "
+"I<prot> 引き数はセグメントのメモリー保護を指定する。 これは B<PROT_READ>, "
"B<PROT_WRITE>, B<PROT_EXEC> のいずれかである。"
#. type: Plain text
"が返される。"
#. 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:250 build/C/man3/mallopt.3:377
-#: 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/man3/malloc_get_state.3:59 build/C/man3/malloc_trim.3:49
-#: build/C/man3/malloc_usable_size.3:38 build/C/man3/mcheck.3:128
+#: build/C/man2/alloc_hugepages.2:109 build/C/man3/alloca.3:60
+#: build/C/man2/cacheflush.2:53 build/C/man2/fallocate.2:228
+#: 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:77
+#: 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:142 build/C/man2/readahead.2:66
+#: build/C/man2/remap_file_pages.2:132 build/C/man3/shm_open.3:171
+#: build/C/man2/shmctl.2:283 build/C/man2/shmget.2:183
+#: build/C/man2/shmop.2:168 build/C/man2/subpage_prot.2:66
+#: build/C/man2/sync_file_range.2:141 build/C/man2/memfd_create.2:126
+#: build/C/man2/s390_pci_mmio_write.2:68
#, no-wrap
msgid "RETURN VALUE"
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:257
-#: 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/man3/malloc_trim.3:54
+#: build/C/man2/alloc_hugepages.2:118 build/C/man2/cacheflush.2:59
+#: build/C/man2/fallocate.2:235 build/C/man2/madvise.2:275
+#: build/C/man3/malloc_info.3:55 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:84
+#: 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:157 build/C/man2/readahead.2:72
+#: build/C/man2/remap_file_pages.2:139 build/C/man3/shm_open.3:180
+#: build/C/man2/shmctl.2:305 build/C/man2/shmget.2:188
+#: build/C/man2/shmop.2:182 build/C/man2/subpage_prot.2:71
+#: build/C/man2/sync_file_range.2:147 build/C/man2/memfd_create.2:133
+#: build/C/man2/s390_pci_mmio_write.2:77
#, 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:319
#, no-wrap
msgid "B<ENOSYS>"
msgstr "B<ENOSYS>"
"る。"
#. 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:307 build/C/man3/malloc_hook.3:76
-#: build/C/man3/mallopt.3:390 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/man3/malloc_get_state.3:84 build/C/man3/malloc_trim.3:58
-#: build/C/man3/malloc_usable_size.3:46 build/C/man3/mcheck.3:144
+#: build/C/man2/alloc_hugepages.2:130 build/C/man3/alloca.3:70
+#: build/C/man2/cacheflush.2:75 build/C/man2/fallocate.2:375
+#: build/C/man2/madvise.2:332 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:63 build/C/man3/malloc_stats.3:55
+#: build/C/man3/malloc_trim.3:60 build/C/man3/malloc_usable_size.3:53
+#: build/C/man3/mallopt.3:392 build/C/man3/mcheck.3:145
+#: build/C/man2/mlock.2:186 build/C/man2/mmap.2:499 build/C/man2/mmap2.2:77
+#: build/C/man2/mprotect.2:112 build/C/man2/mremap.2:185
+#: build/C/man2/msync.2:96 build/C/man3/mtrace.3:78
+#: build/C/man2/posix_fadvise.2:122 build/C/man3/posix_fallocate.3:108
+#: build/C/man3/posix_memalign.3:182 build/C/man2/readahead.2:88
+#: build/C/man2/remap_file_pages.2:161 build/C/man3/shm_open.3:251
+#: build/C/man7/shm_overview.7:101 build/C/man2/shmctl.2:377
+#: build/C/man2/shmget.2:248 build/C/man2/shmop.2:228
+#: build/C/man2/subpage_prot.2:96 build/C/man2/sync_file_range.2:180
+#: build/C/man2/memfd_create.2:161 build/C/man2/s390_pci_mmio_write.2:100
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
"必要なプログラムで使うべきでない。"
#. type: SH
-#: build/C/man2/alloc_hugepages.2:133 build/C/man3/alloca.3:71
-#: build/C/man2/madvise.2:328 build/C/man3/malloc_hook.3:78
-#: 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/man3/malloc_get_state.3:86 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/alloc_hugepages.2:133 build/C/man3/alloca.3:78
+#: build/C/man2/madvise.2:354 build/C/man3/malloc_get_state.3:88
+#: build/C/man3/malloc_hook.3:82 build/C/man3/malloc_info.3:65
+#: build/C/man3/malloc_stats.3:57 build/C/man3/malloc_trim.3:62
+#: build/C/man3/malloc_usable_size.3:55 build/C/man3/mcheck.3:147
+#: build/C/man2/mlock.2:213 build/C/man2/mmap.2:517 build/C/man2/mmap2.2:79
+#: build/C/man2/mprotect.2:121 build/C/man2/mremap.2:191
+#: build/C/man2/msync.2:120 build/C/man3/mtrace.3:80
+#: build/C/man2/posix_fadvise.2:131 build/C/man3/posix_fallocate.3:133
+#: build/C/man3/posix_memalign.3:221 build/C/man2/readahead.2:93
+#: build/C/man2/remap_file_pages.2:165 build/C/man3/shm_open.3:257
+#: build/C/man7/shm_overview.7:103 build/C/man2/shmctl.2:382
+#: build/C/man2/shmget.2:256 build/C/man2/shmop.2:243
+#: build/C/man2/subpage_prot.2:98 build/C/man2/sync_file_range.2:183
+#: build/C/man2/memfd_create.2:165 build/C/man2/s390_pci_mmio_write.2:103
#, no-wrap
msgid "NOTES"
msgstr "注意"
#: build/C/man2/alloc_hugepages.2:141
msgid ""
"These system calls are gone; they existed only in Linux 2.5.36 through to "
-"2.5.54. Now the hugetlbfs file system can be used instead. Memory backed "
-"by huge pages (if the CPU supports them) is obtained by using B<mmap>(2) to "
-"map files in this virtual file system."
+"2.5.54. Now the hugetlbfs filesystem can be used instead. Memory backed by "
+"huge pages (if the CPU supports them) is obtained by using B<mmap>(2) to "
+"map files in this virtual filesystem."
msgstr ""
"これらのシステムコールはなくなった。 これらは Linux 2.5.36 から 2.5.54 にのみ"
"存在する。 代わりに今は hugetlbfs ファイルシステムを使うことができる。 (CPU "
-"ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88) ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\82\92æ\8c\81ã\81¤ã\83¡ã\83¢ã\83ªã\81¯ã\80\81 B<mmap>(2) ã\82\92使ã\81£ã\81¦ã\81\93"
-"の仮想ファイルシステムでファイルをマップすることで取得できる。"
+"ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88) ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\82\92æ\8c\81ã\81¤ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\80\81 B<mmap>(2) ã\82\92使ã\81£ã\81¦"
+"ã\81\93ã\81®ä»®æ\83³ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8bã\81\93ã\81¨ã\81§å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\80\82"
#. type: Plain text
#: build/C/man2/alloc_hugepages.2:145
"The maximal number of huge pages can be specified using the B<hugepages=> "
"boot parameter."
msgstr ""
-"ヒュージページの最大数は、 B<hugepages=> 起動パラメータを使って指定できる。"
+"ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81®æ\9c\80大æ\95°ã\81¯ã\80\81 B<hugepages=> èµ·å\8b\95ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92使ã\81£ã\81¦æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\80\82"
#. 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:360 build/C/man3/malloc_hook.3:138
-#: build/C/man3/mallopt.3:580 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/man3/malloc_get_state.3:112
-#: build/C/man3/malloc_trim.3:80 build/C/man3/malloc_usable_size.3:62
-#: build/C/man3/mcheck.3:211
+#: build/C/man2/alloc_hugepages.2:150 build/C/man3/alloca.3:162
+#: build/C/man2/cacheflush.2:89 build/C/man2/fallocate.2:383
+#: build/C/man2/madvise.2:388 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:262 build/C/man3/malloc_stats.3:67
+#: build/C/man3/malloc_trim.3:82 build/C/man3/malloc_usable_size.3:69
+#: build/C/man3/mallopt.3:568 build/C/man3/mcheck.3:208
+#: build/C/man2/mlock.2:343 build/C/man2/mmap.2:741 build/C/man2/mmap2.2:101
+#: build/C/man2/mprotect.2:228 build/C/man2/mremap.2:214
+#: build/C/man2/msync.2:151 build/C/man3/mtrace.3:172
+#: build/C/man2/posix_fadvise.2:215 build/C/man3/posix_fallocate.3:143
+#: build/C/man3/posix_memalign.3:277 build/C/man2/readahead.2:113
+#: build/C/man2/remap_file_pages.2:183 build/C/man3/shm_open.3:283
+#: build/C/man7/shm_overview.7:127 build/C/man2/shmctl.2:435
+#: build/C/man2/shmget.2:391 build/C/man2/shmop.2:301
+#: build/C/man2/subpage_prot.2:134 build/C/man2/sync_file_range.2:227
+#: build/C/man2/memfd_create.2:493 build/C/man2/s390_pci_mmio_write.2:109
#, 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:367 build/C/man3/malloc_hook.3:145
-#: build/C/man3/mallopt.3:587 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/man3/malloc_get_state.3:119
-#: build/C/man3/malloc_trim.3:87 build/C/man3/malloc_usable_size.3:69
-#: build/C/man3/mcheck.3:218
-msgid ""
-"This page is part of release 3.40 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 ""
-"この man ページは Linux I<man-pages> プロジェクトのリリース 3.40 の一部\n"
+#: build/C/man2/alloc_hugepages.2:158 build/C/man3/alloca.3:170
+#: build/C/man2/cacheflush.2:97 build/C/man2/fallocate.2:391
+#: build/C/man2/madvise.2:396 build/C/man3/mallinfo.3:287
+#: build/C/man3/malloc_get_state.3:122 build/C/man3/malloc_hook.3:150
+#: build/C/man3/malloc_info.3:270 build/C/man3/malloc_stats.3:75
+#: build/C/man3/malloc_trim.3:90 build/C/man3/malloc_usable_size.3:77
+#: build/C/man3/mallopt.3:576 build/C/man3/mcheck.3:216
+#: build/C/man2/mlock.2:351 build/C/man2/mmap.2:749 build/C/man2/mmap2.2:109
+#: build/C/man2/mprotect.2:236 build/C/man2/mremap.2:222
+#: build/C/man2/msync.2:159 build/C/man3/mtrace.3:180
+#: build/C/man2/posix_fadvise.2:223 build/C/man3/posix_fallocate.3:151
+#: build/C/man3/posix_memalign.3:285 build/C/man2/readahead.2:121
+#: build/C/man2/remap_file_pages.2:191 build/C/man3/shm_open.3:291
+#: build/C/man7/shm_overview.7:135 build/C/man2/shmctl.2:443
+#: build/C/man2/shmget.2:399 build/C/man2/shmop.2:309
+#: build/C/man2/subpage_prot.2:142 build/C/man2/sync_file_range.2:235
+#: build/C/man2/memfd_create.2:501 build/C/man2/s390_pci_mmio_write.2:117
+msgid ""
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at \\%http://www.kernel.org/doc/man-"
+"pages/."
+msgstr ""
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.79 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
-#: build/C/man3/alloca.3:41
+#: build/C/man3/alloca.3:43
#, no-wrap
msgid "ALLOCA"
msgstr "ALLOCA"
#. type: TH
-#: build/C/man3/alloca.3:41
+#: build/C/man3/alloca.3:43
#, no-wrap
-msgid "2008-01-24"
-msgstr "2008-01-24"
+msgid "2013-10-07"
+msgstr "2013-10-07"
#. type: TH
-#: build/C/man3/alloca.3:41 build/C/man3/malloc_hook.3:6
-#: build/C/man3/mtrace.3:23 build/C/man3/posix_fallocate.3:23
-#: build/C/man3/posix_memalign.3:28 build/C/man3/malloc_get_state.3:23
-#: build/C/man3/malloc_usable_size.3:23 build/C/man3/mcheck.3:23
+#: 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 "GNU"
#. type: Plain text
-#: build/C/man3/alloca.3:44
+#: build/C/man3/alloca.3:46
msgid "alloca - allocate memory that is automatically freed"
-msgstr "alloca - 自動的に解放されるメモリを割り当てる"
+msgstr "alloca - è\87ªå\8b\95ç\9a\84ã\81«è§£æ\94¾ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8b"
#. type: Plain text
-#: build/C/man3/alloca.3:46
+#: build/C/man3/alloca.3:48
msgid "B<#include E<lt>alloca.hE<gt>>"
msgstr "B<#include E<lt>alloca.hE<gt>>"
#. 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 "B<void *alloca(size_t >I<size>B<);>"
#. 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 "
"function that called B<alloca>() returns to its caller."
msgstr ""
-"B<alloca>() é\96¢æ\95°ã\81¯ã\80\81 I<size> ã\83\90ã\82¤ã\83\88ã\81®é \98å\9f\9fã\82\92å\91¼å\87ºå\85\83ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\83»ã\83\95ã\83¬ã\83¼ã\83 ã\81«å\89²ã\82\8a"
-"付ける。 この一時的な領域は、 B<alloca>() を呼び出した関数が呼出元に返るとき"
-"に自動的に解放される。"
+"B<alloca>() é\96¢æ\95°ã\81¯ã\80\81 I<size> ã\83\90ã\82¤ã\83\88ã\81®é \98å\9f\9fã\82\92å\91¼å\87ºå\85\83ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\83\95ã\83¬ã\83¼ã\83 ã\81«å\89²ã\82\8aä»\98"
+"ける。 この一時的な領域は、 B<alloca>() を呼び出した関数が呼出元に返るときに"
+"自動的に解放される。"
#. 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 "
"is undefined."
msgstr ""
-"B<alloca>() é\96¢æ\95°ã\81¯ã\80\81å\89²ã\82\8aä»\98ã\81\91ã\81\9fé \98å\9f\9fã\81®å§\8bã\81¾ã\82\8aã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 å\89²ã\82\8aä»\98ã\81\91ã\81«"
-"よってスタックオーバーフローが起った場合の プログラムの動作は定義されていな"
+"B<alloca>() é\96¢æ\95°ã\81¯ã\80\81å\89²ã\82\8aä»\98ã\81\91ã\81\9fé \98å\9f\9fã\81®å§\8bã\81¾ã\82\8aã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 å\89²ã\82\8aä»\98ã\81\91"
+"ã\81«ã\82\88ã\81£ã\81¦ã\82¹ã\82¿ã\83\83ã\82¯ã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\81\8cèµ·ã\81£ã\81\9få ´å\90\88ã\81® ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å\8b\95ä½\9cã\81¯å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\81ª"
"い。"
+#. type: SH
+#: build/C/man3/alloca.3:65 build/C/man3/malloc_usable_size.3:48
+#: build/C/man3/posix_fallocate.3:103
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "属性"
+
+#. type: SS
+#: build/C/man3/alloca.3:66 build/C/man3/malloc_usable_size.3:49
+#: build/C/man3/posix_fallocate.3:104
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr "マルチスレッディング (pthreads(7) 参照)"
+
#. type: Plain text
-#: build/C/man3/alloca.3:65
+#: build/C/man3/alloca.3:70
+msgid "The B<alloca>() function is thread-safe."
+msgstr "B<alloca>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/alloca.3:72
msgid "This function is not in POSIX.1-2001."
msgstr "この関数は POSIX.1-2001 にはない。"
#. type: Plain text
-#: build/C/man3/alloca.3:71
+#: build/C/man3/alloca.3:78
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 "
"は POSIX.1-2001 にはない。"
#. type: Plain text
-#: build/C/man3/alloca.3:86
+#: build/C/man3/alloca.3:93
msgid ""
"The B<alloca>() function is machine- and compiler-dependent. For certain "
-"applications, its use can improve efficiency compared to the use of B<malloc>"
-"(3) plus B<free>(3). In certain cases, it can also simplify memory "
-"deallocation in applications that use B<longjmp>(3) or B<siglongjmp>(3). "
-"Otherwise, its use is discouraged."
+"applications, its use can improve efficiency compared to the use of "
+"B<malloc>(3) plus B<free>(3). In certain cases, it can also simplify "
+"memory deallocation in applications that use B<longjmp>(3) or "
+"B<siglongjmp>(3). Otherwise, its use is discouraged."
msgstr ""
"B<alloca>() 関数は、機種とコンパイラに依存する。 特定のアプリケーションで"
"は、この関数を使うと B<malloc>(3) と B<free>(3) を組み合わせて使った場合に"
"比べて効率を改善することができる。 特定の場合では、この関数を使うことで、 "
-"B<longjmp>(3) ã\82\84 B<siglongjmp>(3) ã\82\92使ã\81\86ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81®ã\83¡ã\83¢ã\83ªã\81®é\96\8bæ\94¾ã\82\92"
-"簡単にすることができる。 それ以外の場合では、この関数の使用は推奨されない。"
+"B<longjmp>(3) ã\82\84 B<siglongjmp>(3) ã\82\92使ã\81\86ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®é\96\8bæ\94¾"
+"を簡単にすることができる。 それ以外の場合では、この関数の使用は推奨されない。"
#. type: Plain text
-#: build/C/man3/alloca.3:95
+#: build/C/man3/alloca.3:102
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 "
"ンプした場合には、 割り当てられた空間は自動的に解放される。"
#. type: Plain text
-#: build/C/man3/alloca.3:100
+#: build/C/man3/alloca.3:107
msgid "Do not attempt to B<free>(3) space allocated by B<alloca>()!"
msgstr ""
"B<alloca>() で割り当てられた空間を B<free>(3) しようとすることのないよう"
"に!"
#. type: SS
-#: build/C/man3/alloca.3:100
+#: build/C/man3/alloca.3:107
#, no-wrap
-msgid "Notes on the GNU Version"
+msgid "Notes on the GNU version"
msgstr "GNU 版についての注意"
#. type: Plain text
-#: build/C/man3/alloca.3:122
+#: build/C/man3/alloca.3:129
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 "
-"I<-fno-builtin> option is given (and the header I<E<lt>alloca.hE<gt>> is not "
-"included). But beware! By default the glibc version of I<E<lt>stdlib."
-"hE<gt>> includes I<E<lt>alloca.hE<gt>> and that contains the line:"
+"I<-std=c11> option is given B<and> the header I<E<lt>alloca.hE<gt>> is not "
+"included. Otherwise, (without an -ansi or -std=c* option) the glibc version "
+"of I<E<lt>stdlib.hE<gt>> includes I<E<lt>alloca.hE<gt>> and that contains "
+"the lines:"
msgstr ""
-"通常 B<gcc>(1) は B<alloca>() の呼び出しをインラインコードに変換する。 I<-"
-"ansi>, I<-std=c89>, I<-std=c99>, I<-fno-builtin> のいずれかのオプションが指定"
-"ã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81ã\81\93ã\81®å¤\89æ\8f\9bã\81¯è¡\8cã\82\8fã\82\8cã\81ªã\81\84 (ã\81¾ã\81\9f I<E<lt>alloca.hE<gt>> ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\82\82"
-"行われない)。 だだし、デフォルトでは glibc 版の I<E<lt>stdlib.hE<gt>> は "
-"I<E<lt>alloca.hE<gt>> をインクルードしており、これには以下の行が含まれている"
-"ã\81®ã\81§æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82"
+"通常 B<gcc>(1) は B<alloca>() の呼び出しをインラインコードに変換する。 I<-"
+"ansi>, I<-std=c89>, I<-std=c99>, I<-std=c11> のいずれかのオプションが指定さ"
+"ã\82\8cã\80\81B<ã\81\8bã\81¤> I<E<lt>alloca.hE<gt>> ã\81\8cã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\93ã\81®å¤\89æ\8f\9bã\81¯"
+"行われない。 それ以外の場合 (-ansi オプションも -std=c* オプションも指定され"
+"ない場合) には、 glibc 版の I<E<lt>stdlib.hE<gt>> は I<E<lt>alloca.hE<gt>> を"
+"ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\81\8cã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ä»¥ä¸\8bã\81®è¡\8cã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81"
#. type: Plain text
-#: build/C/man3/alloca.3:125
+#: build/C/man3/alloca.3:134
#, no-wrap
-msgid " #define alloca(size) __builtin_alloca (size)\n"
-msgstr " #define alloca(size) __builtin_alloca (size)\n"
+msgid ""
+" #ifdef __GNUC__\n"
+" #define alloca(size) __builtin_alloca (size)\n"
+" #endif\n"
+msgstr ""
+" #ifdef __GNUC__\n"
+" #define alloca(size) __builtin_alloca (size)\n"
+" #endif\n"
#. type: Plain text
-#: build/C/man3/alloca.3:128
+#: build/C/man3/alloca.3:137
msgid "with messy consequences if one has a private version of this function."
-msgstr "独自版の __builtin_alloca (size) 関数があると厄介な結果になる。"
+msgstr "独自版の __builtin_alloca (size) 関数がある場合、厄介な結果になる。"
#. type: Plain text
-#: build/C/man3/alloca.3:132
+#: build/C/man3/alloca.3:141
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 "
"のライブラリをリンクして動作を変更することはできない。"
#. type: Plain text
-#: build/C/man3/alloca.3:136
+#: build/C/man3/alloca.3:145
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 "
"error return."
msgstr ""
-"通常このインラインコードはスタックポインタを移動する 1 つの命令 "
+"é\80\9a常ã\81\93ã\81®ã\82¤ã\83³ã\83©ã\82¤ã\83³ã\82³ã\83¼ã\83\89ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92移å\8b\95ã\81\99ã\82\8b 1 ã\81¤ã\81®å\91½ä»¤ "
"(instruction) から構成されており、 スタックオーバーフローをチェックしない。 "
"よって NULL エラーが返されることはない。"
#. type: SH
-#: build/C/man3/alloca.3:136 build/C/man2/cacheflush.2:81
-#: 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:145 build/C/man2/cacheflush.2:82
+#: build/C/man3/mallinfo.3:114 build/C/man3/mallopt.3:406
+#: build/C/man2/mlock.2:311 build/C/man2/mmap.2:590 build/C/man3/mtrace.3:102
+#: build/C/man2/posix_fadvise.2:204 build/C/man2/readahead.2:98
+#: build/C/man2/shmget.2:376
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. type: Plain text
-#: build/C/man3/alloca.3:141
+#: build/C/man3/alloca.3:150
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 "
"ようとした場合に B<SIGSEGV> シグナルを受信することだろう。)"
#. type: Plain text
-#: build/C/man3/alloca.3:149
+#: build/C/man3/alloca.3:158
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 "
"使われるスタック領域の中に現れてしまうためである。"
#. type: SH
-#: build/C/man3/alloca.3:149 build/C/man2/fallocate.2:191
-#: build/C/man2/madvise.2:353 build/C/man3/malloc_hook.3:133
-#: build/C/man3/mallopt.3:568 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/malloc_get_state.3:109
-#: build/C/man3/malloc_trim.3:76 build/C/man3/malloc_usable_size.3:60
-#: build/C/man3/mcheck.3:204
+#: build/C/man3/alloca.3:158 build/C/man2/fallocate.2:378
+#: build/C/man2/madvise.2:379 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:256 build/C/man3/malloc_stats.3:61
+#: build/C/man3/malloc_trim.3:78 build/C/man3/malloc_usable_size.3:67
+#: build/C/man3/mallopt.3:554 build/C/man3/mcheck.3:204
+#: build/C/man2/mlock.2:336 build/C/man2/mmap.2:715 build/C/man2/mmap2.2:95
+#: build/C/man2/mprotect.2:225 build/C/man2/mremap.2:199
+#: build/C/man2/msync.2:147 build/C/man3/mtrace.3:167
+#: build/C/man2/posix_fadvise.2:209 build/C/man3/posix_fallocate.3:138
+#: build/C/man3/posix_memalign.3:272 build/C/man2/readahead.2:107
+#: build/C/man2/remap_file_pages.2:176 build/C/man3/shm_open.3:271
+#: build/C/man7/shm_overview.7:114 build/C/man2/shmctl.2:428
+#: build/C/man2/shmget.2:382 build/C/man2/shmop.2:293
+#: build/C/man2/subpage_prot.2:128 build/C/man2/sync_file_range.2:222
+#: build/C/man2/memfd_create.2:487 build/C/man2/s390_pci_mmio_write.2:107
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: Plain text
-#: build/C/man3/alloca.3:153
+#: build/C/man3/alloca.3:162
msgid "B<brk>(2), B<longjmp>(3), B<malloc>(3)"
msgstr "B<brk>(2), B<longjmp>(3), B<malloc>(3)"
#. type: TH
-#: build/C/man2/cacheflush.2:24
+#: build/C/man2/cacheflush.2:25
#, no-wrap
msgid "CACHEFLUSH"
msgstr "CACHEFLUSH"
#. type: TH
-#: build/C/man2/cacheflush.2:24
+#: build/C/man2/cacheflush.2:25
#, no-wrap
msgid "2007-05-26"
msgstr "2007-05-26"
#. 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 "cacheflush - 命令キャッシュやデータキャッシュの内容をフラッシュする"
#. 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 "B<#include E<lt>asm/cachectl.hE<gt>>\n"
#. 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 "B<int cacheflush(char *>I<addr>B<, int >I<nbytes>B<, int >I<cache>B<);>\n"
#. 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 "
"of:"
msgstr ""
-"B<cacheflush>() ã\81¯ I<addr> ã\81\8bã\82\89 I<(addr+nbytes-1)> ã\81®ç¯\84å\9b²ã\81®ã\83¦ã\83¼ã\82¶ã\82¢ã\83\89ã\83¬ã\82¹ã\81«"
-"対応する 指定されたキャッシュをフラッシュする。 I<cache> には以下のいずれかを"
-"指定する:"
+"B<cacheflush>() ã\81¯ I<addr> ã\81\8bã\82\89 I<(addr+nbytes-1)> ã\81®ç¯\84å\9b²ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹"
+"に対応する 指定されたキャッシュをフラッシュする。 I<cache> には以下のいずれか"
+"を指定する:"
#. type: TP
-#: build/C/man2/cacheflush.2:42
+#: build/C/man2/cacheflush.2:43
#, no-wrap
msgid "B<ICACHE>"
msgstr "B<ICACHE>"
#. type: Plain text
-#: build/C/man2/cacheflush.2:45
+#: build/C/man2/cacheflush.2:46
msgid "Flush the instruction cache."
msgstr "命令 (instruction) キャッシュをフラッシュする。"
#. type: TP
-#: build/C/man2/cacheflush.2:45
+#: build/C/man2/cacheflush.2:46
#, no-wrap
msgid "B<DCACHE>"
msgstr "B<DCACHE>"
#. 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 "変更があったキャッシュラインをメモリに書き戻し、無効にする。"
+msgstr "å¤\89æ\9b´ã\81\8cã\81\82ã\81£ã\81\9fã\82ã\83£ã\83\83ã\82·ã\83¥ã\83©ã\82¤ã\83³ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«æ\9b¸ã\81\8dæ\88»ã\81\97ã\80\81ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\80\82"
#. type: TP
-#: build/C/man2/cacheflush.2:48
+#: build/C/man2/cacheflush.2:49
#, no-wrap
msgid "B<BCACHE>"
msgstr "B<BCACHE>"
#. type: Plain text
-#: build/C/man2/cacheflush.2:52
+#: build/C/man2/cacheflush.2:53
msgid "Same as B<(ICACHE|DCACHE)>."
msgstr "B<(ICACHE|DCACHE)> と同じ。"
#. 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."
"出された場合は I<errno> にエラーが指示される。"
#. 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:314
+#: build/C/man2/subpage_prot.2:72 build/C/man2/memfd_create.2:134
+#: build/C/man2/s390_pci_mmio_write.2:78 build/C/man2/s390_pci_mmio_write.2:83
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
#. 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."
"能ではない。"
#. type: TP
-#: build/C/man2/cacheflush.2:66 build/C/man2/fallocate.2:124
-#: build/C/man2/madvise.2:264 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:247
+#: build/C/man2/fallocate.2:259 build/C/man2/fallocate.2:269
+#: build/C/man2/fallocate.2:279 build/C/man2/fallocate.2:287
+#: build/C/man2/madvise.2:282 build/C/man3/malloc_info.3:56
+#: build/C/man2/mlock.2:157 build/C/man2/mlock.2:164 build/C/man2/mlock.2:176
+#: 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:94
+#: 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:158 build/C/man2/readahead.2:77
+#: build/C/man2/remap_file_pages.2:140 build/C/man2/remap_file_pages.2:147
+#: build/C/man3/shm_open.3:213 build/C/man2/shmctl.2:328
+#: build/C/man2/shmget.2:207 build/C/man2/shmget.2:215
+#: build/C/man2/shmop.2:197 build/C/man2/shmop.2:220
+#: build/C/man2/subpage_prot.2:77 build/C/man2/sync_file_range.2:152
+#: build/C/man2/memfd_create.2:139 build/C/man2/s390_pci_mmio_write.2:87
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
#. 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 "I<cache> パラメータが B<ICACHE>, B<DCACHE>, B<BCACHE> のどれでもない。"
+msgstr ""
+"I<cache> パラメーターが B<ICACHE>, B<DCACHE>, B<BCACHE> のどれでもない。"
-#. FIXME This system call was only on MIPS back in 1.2 days, but
-#. by now it is on a number of other architectures (but not i386).
+#. FIXME The cacheflush() system call was only on MIPS back in 1.2 days,
+#. but by now it is on a number of other architectures (but not i386).
#. 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 "
+"This Linux-specific system call is available only on MIPS-based systems. It "
"should not be used in programs intended to be portable."
msgstr ""
"この Linux 特有のシステムコールは MIPS ベースのシステムでのみ有効である。 移"
"植を意図したプログラムで使用すべきではない。"
#. 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."
"のキャッシュがフラッシュされる。"
#. type: TH
-#: build/C/man2/fallocate.2:8
+#: build/C/man2/fallocate.2:11
#, no-wrap
msgid "FALLOCATE"
msgstr "FALLOCATE"
#. type: TH
-#: build/C/man2/fallocate.2:8
+#: build/C/man2/fallocate.2:11 build/C/man3/malloc_info.3:25
+#: build/C/man2/mmap.2:40 build/C/man3/posix_fallocate.3:25
+#: build/C/man3/shm_open.3:26 build/C/man2/memfd_create.2:21
#, no-wrap
-msgid "2012-04-23"
-msgstr "2012-04-23"
+msgid "2015-01-22"
+msgstr "2015-01-22"
#. type: Plain text
-#: build/C/man2/fallocate.2:11
+#: build/C/man2/fallocate.2:14
msgid "fallocate - manipulate file space"
msgstr "fallocate - ファイル空間の操作"
#. 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"
"B<#include E<lt>fcntl.hE<gt>>\n"
#. 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 >I<len>B<);>\n"
msgstr "B<int fallocate(int >I<fd>B<, int >I<mode>B<, off_t >I<offset>B<, off_t >I<len>B<);>\n"
#. 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 "
"で規定された方法である B<posix_fallocate>(3) を使うこと。"
#. 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 "
"域である。"
#. 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 "
"サポートされている操作の詳細は以下のサブセクションで説明する。"
#. 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:65
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 "
-"I<offset> and I<len>. The file size (as reported by B<stat>(2)) will be "
-"changed if I<offset>+I<len> is greater than the file size. This default "
-"behavior closely resembles the behavior of the B<posix_fallocate>(3) "
-"library function, and is intended as a method of optimally implementing that "
-"function."
-msgstr ""
-"B<fallocate>() のデフォルトの動作 (つまり I<mode> が 0 の場合) は、\n"
-"I<offset> と I<len> で指定された範囲のディスク領域の割り当てと初期化を行"
-"う。\n"
-"I<offset>+I<len> がファイルサイズよりも大きかった場合、\n"
-"(B<stat>(2) で報告される) ファイルサイズが変更される。このデフォルトの動作"
-"は、\n"
-"ライブラリ関数 B<posix_fallocate>(3) の動作と非常に似ている。これは、\n"
-"このシステムコールが B<posix_fallocate>(3) を最適に実装する手段を提供する\n"
-"ことを目的としているからである。"
-
-#. type: Plain text
-#: build/C/man2/fallocate.2:64
+"the disk space within the range specified by I<offset> and I<len>. The file "
+"size (as reported by B<stat>(2)) will be changed if I<offset>+I<len> is "
+"greater than the file size. Any subregion within the range specified by "
+"I<offset> and I<len> that did not contain data before the call will be "
+"initialized to zero. This default behavior closely resembles the behavior "
+"of the B<posix_fallocate>(3) library function, and is intended as a method "
+"of optimally implementing that function."
+msgstr ""
+"B<fallocate>() のデフォルトの動作 (つまり I<mode> が 0 の場合) は、 "
+"I<offset> と I<len> で指定された範囲のディスク領域の割り当てを行う。 "
+"I<offset>+I<len> がファイルサイズよりも大きかった場合、 (B<stat>(2) で報告さ"
+"れる) ファイルサイズが変更される。 I<offset> と I<len> で指定される範囲のサブ"
+"領域で、 呼び出し前にデータを保持していなかった場合、そのサブ領域は 0 で初期"
+"化される。 このデフォルトの動作は、 ライブラリ関数 B<posix_fallocate>(3) の動"
+"作と非常に似ている。 これは、 このシステムコールが B<posix_fallocate>(3) を最"
+"適に実装する手段を提供することを目的としているからである。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:71
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 "
"space."
msgstr ""
+"呼び出しが成功した場合、\n"
+"I<offset> と I<len> で指定された範囲へのそれ以降の書き込みでは、\n"
+"ディスクの領域不足での書き込み失敗が起こらないことが保証される。"
#. type: Plain text
-#: build/C/man2/fallocate.2:75
+#: build/C/man2/fallocate.2:82
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 I<offset>"
"追記を最適化したい場合に役に立つ。"
#. type: Plain text
-#: build/C/man2/fallocate.2:79
+#: build/C/man2/fallocate.2:86
msgid ""
"Because allocation is done in block size chunks, B<fallocate>() may "
"allocate a larger range of disk space than was specified."
"も大きなディスク領域を割り当てることがある。"
#. type: SS
-#: build/C/man2/fallocate.2:79
+#: build/C/man2/fallocate.2:86
#, no-wrap
msgid "Deallocating file space"
msgstr "ファイル空間の割り当て解除"
#. type: Plain text
-#: build/C/man2/fallocate.2:94
+#: build/C/man2/fallocate.2:101
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 "
"starting at I<offset> and continuing for I<len> bytes. Within the specified "
-"range, partial file system blocks are zeroed, and whole file system blocks "
-"are removed from the file. After a successful call, subsequent reads from "
-"this range will return zeroes."
+"range, partial filesystem blocks are zeroed, and whole filesystem blocks are "
+"removed from the file. After a successful call, subsequent reads from this "
+"range will return zeroes."
msgstr ""
+"B<FALLOC_FL_PUNCH_HOLE> フラグ (Linux 2.6.38 以降で利用可能) を I<mode> に指"
+"定すると、 I<offset> で始まる I<len> バイトの領域の空間を解放する (ホールを作"
+"成する)。 指定された範囲のうち、 部分的に使用しているファイルシステムブロック"
+"は 0 で埋められ、 全体を使用しているファイルシステムブロックはそのファイルか"
+"ら削除される。 呼び出しが成功すると、 これ以降のこの範囲からの読み出しでは 0 "
+"を返す。"
#. type: Plain text
-#: build/C/man2/fallocate.2:105
+#: build/C/man2/fallocate.2:112
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 "
"file size (as reported by B<stat>(2)) does not change."
msgstr ""
+"B<FALLOC_FL_PUNCH_HOLE> フラグは B<FALLOC_FL_KEEP_SIZE> と論理和 (OR) をとっ"
+"て I<mode> に指定しなければならない。 つまり、 ファイル末尾の punch off を"
+"行った場合でも、 (B<stat>(2) で報告される) ファイルサイズが変化しない。"
#. type: Plain text
-#: build/C/man2/fallocate.2:109
+#: build/C/man2/fallocate.2:117
msgid ""
-"Not all file systems support B<FALLOC_FL_PUNCH_HOLE>; if a file system "
-"doesn't support the operation, an error is returned."
+"Not all filesystems support B<FALLOC_FL_PUNCH_HOLE>; if a filesystem doesn't "
+"support the operation, an error is returned. The operation is supported on "
+"at least the following filesystems:"
msgstr ""
+"すべてのファイルシステムで B<FALLOC_FL_PUNCH_HOLE> がサポートされているわけで"
+"はない。 ファイルシステムがこの操作をサポートしていない場合は、 エラーが返"
+"る。 この操作は少なくとも以下のファイルシステムでサポートされている。"
+
+#. type: IP
+#: build/C/man2/fallocate.2:117 build/C/man2/fallocate.2:119
+#: build/C/man2/fallocate.2:122 build/C/man2/fallocate.2:124
+#: build/C/man2/fallocate.2:222 build/C/man2/fallocate.2:225
+#: 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 build/C/man2/shmop.2:62 build/C/man2/shmop.2:68
+#: build/C/man2/shmop.2:80 build/C/man2/memfd_create.2:248
+#: build/C/man2/memfd_create.2:258 build/C/man2/memfd_create.2:266
+#, no-wrap
+msgid "*"
+msgstr "*"
#. type: Plain text
-#: build/C/man2/fallocate.2:112
-msgid "B<fallocate>() returns zero on success, and -1 on failure."
-msgstr "B<fallocate>() は成功すると 0 を返し、エラーの場合は -1 を返す。"
+#: build/C/man2/fallocate.2:119
+msgid "XFS (since Linux 2.6.38)"
+msgstr "XFS (Linux 2.6.38 以降)"
+
+#. commit a4bb6b64e39abc0e41ca077725f2a72c868e7622
+#. type: Plain text
+#: build/C/man2/fallocate.2:122
+msgid "ext4 (since Linux 3.0)"
+msgstr "ext4 (Linux 3.0 以降)"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:124
+msgid "Btrfs (since Linux 3.7)"
+msgstr "Btrfs (Linux 3.7 以降)"
+
+#. commit 83e4fa9c16e4af7122e31be3eca5d57881d236fe
+#. type: Plain text
+#: build/C/man2/fallocate.2:127
+msgid "tmpfs (since Linux 3.5)"
+msgstr "tmpfs (Linux 3.5 以降)"
+
+#. type: SS
+#: build/C/man2/fallocate.2:127
+#, no-wrap
+msgid "Collapsing file space"
+msgstr "ファイル空間の一部削除"
+
+#. commit 00f5e61998dd17f5375d9dfc01331f104b83f841
+#. type: Plain text
+#: build/C/man2/fallocate.2:147
+msgid ""
+"Specifying the B<FALLOC_FL_COLLAPSE_RANGE> flag (available since Linux 3.15) "
+"in I<mode> removes a byte range from a file, without leaving a hole. The "
+"byte range to be collapsed starts at I<offset> and continues for I<len> "
+"bytes. At the completion of the operation, the contents of the file "
+"starting at the location I<offset+len> will be appended at the location "
+"I<offset>, and the file will be I<len> bytes smaller."
+msgstr ""
+"B<FALLOC_FL_COLLAPSE_RANGE> フラグ (Linux 3.15 以降で利用可能) を I<mode> に"
+"指定すると、 指定したバイト範囲をファイルから削除する。 その際、ホールを残さ"
+"ない。 削除されるバイト範囲は I<offset> から始まる I<len> バイトの範囲であ"
+"る。 操作が完了すると、 ファイルの I<offset+len> の位置から始まる内容が "
+"I<offset> の位置に見えるようになり、 ファイルのサイズは I<len> バイトだけ小さ"
+"くなる。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:161
+msgid ""
+"A filesystem may place limitations on the granularity of the operation, in "
+"order to ensure efficient implementation. Typically, I<offset> and I<len> "
+"must be a multiple of the filesystem logical block size, which varies "
+"according to the filesystem type and configuration. If a filesystem has "
+"such a requirement, B<fallocate>() will fail with the error B<EINVAL> if "
+"this requirement is violated."
+msgstr ""
+"効率的に動作する実装にするため、ファイルシステムはこの操作の粒度に制限を設け"
+"ることがある。 通常は I<offset> と I<len> はファイルシステムの論理ブロックサ"
+"イズの倍数でなければならない。 論理ブロックサイズはファイルシステムの種類や設"
+"定により様々である。 ファイルシステムにこのような要求条件がある場合、 その要"
+"求条件が満たされていなければ、 B<fallocate> はエラー B<EINVAL> で失敗する。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:170
+msgid ""
+"If the region specified by I<offset> plus I<len> reaches or passes the end "
+"of file, an error is returned; instead, use B<ftruncate>(2) to truncate a "
+"file."
+msgstr ""
+"I<offset> と I<len> で指定された範囲がファイルの末尾かそれより先まで達してい"
+"る場合、 エラーが返される。 代わりに、ファイルの切り詰めを行う "
+"B<ftruncate>(2) を使用すること。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:175
+msgid ""
+"No other flags may be specified in I<mode> in conjunction with "
+"B<FALLOC_FL_COLLAPSE_RANGE>."
+msgstr ""
+"B<FALLOC_FL_COLLAPSE_RANGE> と他のフラグを同時に I<mode> に指定することはでき"
+"ない。"
+
+#. commit 9eb79482a97152930b113b51dff530aba9e28c8e
+#. commit e1d8fb88a64c1f8094b9f6c3b6d2d9e6719c970d
+#. type: Plain text
+#: build/C/man2/fallocate.2:183
+msgid ""
+"As at Linux 3.15, B<FALLOC_FL_COLLAPSE_RANGE> is supported by ext4 (only for "
+"extent-based files) and XFS."
+msgstr ""
+"Linux 3.15 時点では B<FALLOC_FL_COLLAPSE_RANGE> は ext4 (エクステントベースの"
+"ファイル) と XFS でサポートされている。"
+
+#. type: SS
+#: build/C/man2/fallocate.2:183
+#, no-wrap
+msgid "Zeroing file space"
+msgstr "ファイル空間のゼロ埋め"
+
+#. commit 409332b65d3ed8cfa7a8030f1e9d52f372219642
+#. type: Plain text
+#: build/C/man2/fallocate.2:199
+msgid ""
+"Specifying the B<FALLOC_FL_ZERO_RANGE> flag (available since Linux 3.14) in "
+"I<mode> zeroes space in the byte range starting at I<offset> and continuing "
+"for I<len> bytes. Within the specified range, blocks are preallocated for "
+"the regions that span the holes in the file. After a successful call, "
+"subsequent reads from this range will return zeroes."
+msgstr ""
+"B<FALLOC_FL_ZERO_RANGE> フラグ (Linux 3.14 以降で利用可能) を I<mode> に指定"
+"すると、 I<offset> で始まる I<len> バイト範囲の空間をゼロ埋めする。 指定され"
+"た範囲の中では、ブロックは、そのファイル内のホールが広がる領域にあらかじめ割"
+"り当てられたものである。 呼び出しが成功すると、 これ以降のこの範囲からの読み"
+"出しでは 0 を返す。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:205
+msgid ""
+"Zeroing is done within the filesystem preferably by converting the range "
+"into unwritten extents. This approach means that the specified range will "
+"not be physically zeroed out on the device (except for partial blocks at the "
+"either end of the range), and I/O is (otherwise) required only to update "
+"metadata."
+msgstr ""
+"ゼロ埋めは、ファイルシステム内部では、指定された範囲を書き込みを伴わないエク"
+"ステントに変換する方法をできるだけ使って行われる。 この方法は、指定された範囲"
+"について物理的にゼロ埋めしたデータがデバイスに書き込まれるのではないことを意"
+"味する (例外は指定された範囲の端の部分的に使用しているブロックである)。 (これ"
+"以外で) I/O が必要なのはメタデータの更新だけである。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:217
+msgid ""
+"If the B<FALLOC_FL_KEEP_SIZE> flag is additionally specified in I<mode>, the "
+"behavior of the call is similar, but the file size will not be changed even "
+"if I<offset>+I<len> is greater than the file size. This behavior is the "
+"same as when preallocating space with B<FALLOC_FL_KEEP_SIZE> specified."
+msgstr ""
+"B<FALLOC_FL_KEEP_SIZE> フラグが I<mode> に追加で指定された場合、 このシステム"
+"コールの動作は似ているが、 I<offset>+I<len> がファイルサイズよりも大きい場合"
+"であってもファイルサイズは変更されない点が異なる。 この動作は "
+"B<FALLOC_FL_KEEP_SIZE> を指定してスペースを前もって割り当てた場合と同じであ"
+"る。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:222
+msgid ""
+"Not all filesystems support B<FALLOC_FL_ZERO_RANGE>; if a filesystem doesn't "
+"support the operation, an error is returned. The operation is supported on "
+"at least the following filesystems:"
+msgstr ""
+"すべてのファイルシステムで B<FALLOC_FL_ZERO_RANGE> がサポートされているわけで"
+"はない。 ファイルシステムがこの操作をサポートしていない場合は、 エラーが返"
+"る。 この操作は少なくとも以下のファイルシステムでサポートされている。"
+
+#. commit 376ba313147b4172f3e8cf620b9fb591f3e8cdfa
+#. type: Plain text
+#: build/C/man2/fallocate.2:225
+msgid "XFS (since Linux 3.14)"
+msgstr "XFS (Linux 3.14 以降)"
+
+#. commit b8a8684502a0fc852afa0056c6bb2a9273f6fcc0
+#. type: Plain text
+#: build/C/man2/fallocate.2:228
+msgid "ext4, for extent-based files (since Linux 3.14)"
+msgstr "ext4 のエクステントベースのファイル (Linux 3.14 以降)"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:235
+msgid ""
+"On success, B<fallocate>() returns zero. On error, -1 is returned and "
+"I<errno> is set to indicate the error."
+msgstr ""
+"成功の場合、 B<fallocate>() は 0 を返す。 エラーの場合、-1 を返し、 I<errno> "
+"にエラーを示す値を設定する。"
#. type: TP
-#: build/C/man2/fallocate.2:113 build/C/man2/madvise.2:261
-#: 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/fallocate.2:236 build/C/man2/madvise.2:279
+#: build/C/man2/mmap.2:415 build/C/man2/posix_fadvise.2:91
+#: build/C/man3/posix_fallocate.3:73 build/C/man2/readahead.2:73
#: build/C/man2/sync_file_range.2:148
#, no-wrap
msgid "B<EBADF>"
msgstr "B<EBADF>"
#. type: Plain text
-#: build/C/man2/fallocate.2:117 build/C/man3/posix_fallocate.3:75
+#: build/C/man2/fallocate.2:240 build/C/man3/posix_fallocate.3:77
msgid "I<fd> is not a valid file descriptor, or is not opened for writing."
msgstr ""
-"I<fd> ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81§ã\81ªã\81\84ã\81\8bã\80\81 æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81¨ã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦"
-"いない。"
+"I<fd> ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81 æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81¨ã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8c"
+"ã\81¦ã\81\84ã\81ªã\81\84ã\80\82"
#. type: TP
-#: build/C/man2/fallocate.2:117 build/C/man3/posix_fallocate.3:75
+#: build/C/man2/fallocate.2:240 build/C/man3/posix_fallocate.3:77
#, no-wrap
msgid "B<EFBIG>"
msgstr "B<EFBIG>"
#. type: Plain text
-#: build/C/man2/fallocate.2:121
+#: build/C/man2/fallocate.2:244
msgid "I<offset>+I<len> exceeds the maximum file size."
msgstr "I<offset + len> がファイルサイズの最大値よりも大きい。"
#. type: TP
-#: build/C/man2/fallocate.2:121
+#: build/C/man2/fallocate.2:244
#, no-wrap
msgid "B<EINTR>"
msgstr "B<EINTR>"
#. type: Plain text
-#: build/C/man2/fallocate.2:124
+#: build/C/man2/fallocate.2:247
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:259 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 "I<offset> が 0 未満だったか、 I<len> が 0 以下だった。"
+#. type: Plain text
+#: build/C/man2/fallocate.2:269
+msgid ""
+"I<mode> is B<FALLOC_FL_COLLAPSE_RANGE> and the range specified by I<offset> "
+"plus I<len> reaches or passes the end of the file."
+msgstr ""
+"I<mode> が B<FALLOC_FL_COLLAPSE_RANGE> で、 I<offset> と I<len> で指定された"
+"範囲がファイルの末尾かそれより先まで達している。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:279
+msgid ""
+"I<mode> is B<FALLOC_FL_COLLAPSE_RANGE>, but either I<offset> or I<len> is "
+"not a multiple of the filesystem block size."
+msgstr ""
+"I<mode> が B<FALLOC_FL_COLLAPSE_RANGE> だが、 I<offset> か I<len> のいずれか"
+"がファイルシステムのブロックサイズの倍数ではない。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:287
+msgid ""
+"I<mode> contains both B<FALLOC_FL_COLLAPSE_RANGE> and other flags; no other "
+"flags are permitted with B<FALLOC_FL_COLLAPSE_RANGE>."
+msgstr ""
+"I<mode> に B<FALLOC_FL_COLLAPSE_RANGE> と他のフラグの両方が指定されている。 "
+"B<FALLOC_FL_COLLAPSE_RANGE> と他のフラグを一緒に使うことができない。"
+
+#. There was a inconsistency in 3.15-rc1, that should be resolved so that all
+#. filesystems use this error for this case. (Tytso says ex4 will change.)
+#. http://thread.gmane.org/gmane.comp.file-systems.xfs.general/60485/focus=5521
+#. From: Michael Kerrisk (man-pages <mtk.manpages@...>
+#. Subject: Re: [PATCH v5 10/10] manpage: update FALLOC_FL_COLLAPSE_RANGE flag in fallocate
+#. Newsgroups: gmane.linux.man, gmane.linux.file-systems
+#. Date: 2014-04-17 13:40:05 GMT
+#. type: Plain text
+#: build/C/man2/fallocate.2:304
+msgid ""
+"I<mode> is B<FALLOC_FL_COLLAPSE_RANGE> or B<FALLOC_FL_ZERO_RANGE>, but the "
+"file referred to by I<fd> is not a regular file."
+msgstr ""
+"I<mode> が B<FALLOC_FL_COLLAPSE_RANGE> か B<FALLOC_FL_ZERO_RANGE> だが、 "
+"I<fd> が参照しているファイルが通常のファイルではない。"
+
#. type: TP
-#: build/C/man2/fallocate.2:136 build/C/man2/madvise.2:292
+#: build/C/man2/fallocate.2:304 build/C/man2/madvise.2:310
#: build/C/man2/sync_file_range.2:160
#, no-wrap
msgid "B<EIO>"
msgstr "B<EIO>"
#. type: Plain text
-#: build/C/man2/fallocate.2:139
-msgid "An I/O error occurred while reading from or writing to a file system."
+#: build/C/man2/fallocate.2:307
+msgid "An I/O error occurred while reading from or writing to a filesystem."
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:307 build/C/man2/mmap.2:450
+#: build/C/man3/posix_fallocate.3:87 build/C/man2/s390_pci_mmio_write.2:92
#, no-wrap
msgid "B<ENODEV>"
msgstr "B<ENODEV>"
#. type: Plain text
-#: build/C/man2/fallocate.2:146
+#: build/C/man2/fallocate.2:314
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.)"
"を参照している場合、別のエラーが発生する)。"
#. 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:314 build/C/man3/posix_fallocate.3:91
+#: build/C/man2/shmget.2:233 build/C/man2/sync_file_range.2:166
#, no-wrap
msgid "B<ENOSPC>"
msgstr "B<ENOSPC>"
#. type: Plain text
-#: build/C/man2/fallocate.2:151 build/C/man3/posix_fallocate.3:94
+#: build/C/man2/fallocate.2:319 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 "I<fd> が参照するファイルを含むデバイスに十分な空き領域がない。"
#. type: Plain text
-#: build/C/man2/fallocate.2:155
+#: build/C/man2/fallocate.2:323
msgid "This kernel does not implement B<fallocate>()."
-msgstr ""
+msgstr "このカーネルでは B<fallocate>() は実装されていない。"
#. type: TP
-#: build/C/man2/fallocate.2:155
+#: build/C/man2/fallocate.2:323
#, no-wrap
msgid "B<EOPNOTSUPP>"
msgstr "B<EOPNOTSUPP>"
#. type: Plain text
-#: build/C/man2/fallocate.2:164
+#: build/C/man2/fallocate.2:332
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 "
-"containing the file referred to by I<fd>."
+"The filesystem containing the file referred to by I<fd> does not support "
+"this operation; or the I<mode> is not supported by the filesystem containing "
+"the file referred to by I<fd>."
msgstr ""
"I<fd> が参照するファイルを含むファイルシステムが 指定された操作を\n"
"サポートしていない。 I<fd> が参照するファイルを含むファイルシステムが\n"
"I<mode> をサポートしていない。"
#. 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:332 build/C/man2/fallocate.2:338
+#: build/C/man2/fallocate.2:351 build/C/man2/mlock.2:143
+#: build/C/man2/mlock.2:182 build/C/man2/mmap.2:458 build/C/man2/mmap.2:467
+#: build/C/man2/shmctl.2:353 build/C/man2/shmget.2:241
#, no-wrap
msgid "B<EPERM>"
msgstr "B<EPERM>"
#. type: Plain text
-#: build/C/man2/fallocate.2:180
+#: build/C/man2/fallocate.2:338
+msgid "The file referred to by I<fd> is marked immutable (see B<chattr>(1))."
+msgstr ""
+"I<fd> が参照するファイルに変更不可 (immutable) の属性が付いている "
+"(B<chattr>(1) 参照)。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:351
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> "
-"is marked append-only (see B<chattr>(1))."
+"I<mode> specifies B<FALLOC_FL_PUNCH_HOLE> or B<FALLOC_FL_COLLAPSE_RANGE> and "
+"the file referred to by I<fd> is marked append-only (see B<chattr>(1))."
msgstr ""
+"I<mode> に B<FALLOC_FL_PUNCH_HOLE> か B<FALLOC_FL_COLLAPSE_RANGE> が指定され"
+"たが、 I<fd> が参照するファイルに追加のみ (append-only) の属性が付いている "
+"(B<chattr>(1) 参照)。"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:355 build/C/man2/mmap.2:471
+msgid "The operation was prevented by a file seal; see B<fcntl>(2)."
+msgstr "操作が file seal により禁止されている。 B<fcntl>(2) 参照。"
#. 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:355 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 "B<ESPIPE>"
#. type: Plain text
-#: build/C/man2/fallocate.2:184
+#: build/C/man2/fallocate.2:359
msgid "I<fd> refers to a pipe or FIFO."
msgstr "I<fd> がパイプか FIFO を参照している。"
+#. type: TP
+#: build/C/man2/fallocate.2:359 build/C/man2/mmap.2:471
+#, no-wrap
+msgid "B<ETXTBSY>"
+msgstr "B<ETXTBSY>"
+
+#. type: Plain text
+#: build/C/man2/fallocate.2:367
+msgid ""
+"I<mode> specifies B<FALLOC_FL_COLLAPSE_RANGE>, but the file referred to by "
+"I<fd> is currently being executed."
+msgstr ""
+"I<mode> に B<FALLOC_FL_COLLAPSE_RANGE> が指定されたが、 I<fd> が参照するファ"
+"イルは現在実行中である。"
+
#. type: SH
-#: build/C/man2/fallocate.2:184 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/man3/mcheck.3:133
+#: build/C/man2/fallocate.2:367 build/C/man2/madvise.2:325
+#: build/C/man3/malloc_info.3:60 build/C/man3/mcheck.3:134
+#: build/C/man2/mmap2.2:74 build/C/man2/posix_fadvise.2:107
+#: build/C/man3/posix_fallocate.3:100 build/C/man3/posix_memalign.3:167
+#: build/C/man2/readahead.2:83 build/C/man2/remap_file_pages.2:156
+#: build/C/man3/shm_open.3:249 build/C/man2/subpage_prot.2:90
+#: build/C/man2/sync_file_range.2:177 build/C/man2/memfd_create.2:155
+#: build/C/man2/s390_pci_mmio_write.2:98
#, 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:375
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 ""
"B<fallocate>() はカーネル 2.6.23 以降の Linux で利用可能である。 glibc での"
-"対応はバージョン 3.10 以降で行われている。"
+"対応はバージョン 3.10 以降で行われている。 B<FALLOC_FL_*> が glibc のヘッダー"
+"ファイルで定義されているのは、バージョン 2.18 以降のみである。"
#. type: Plain text
-#: build/C/man2/fallocate.2:191
+#: build/C/man2/fallocate.2:378
msgid "B<fallocate>() is Linux-specific."
msgstr "B<fallocate>() は Linux 固有である。"
#. type: Plain text
-#: build/C/man2/fallocate.2:195
-msgid "B<ftruncate>(2), B<posix_fadvise>(3), B<posix_fallocate>(3)"
-msgstr "B<ftruncate>(2), B<posix_fadvise>(3), B<posix_fallocate>(3)"
+#: build/C/man2/fallocate.2:383
+msgid ""
+"B<fallocate>(1), B<ftruncate>(2), B<posix_fadvise>(3), B<posix_fallocate>(3)"
+msgstr ""
+"B<fallocate>(1), B<ftruncate>(2), B<posix_fadvise>(3), B<posix_fallocate>(3)"
#. type: TH
#: build/C/man2/madvise.2:35
msgstr "MADVISE"
#. type: TH
-#: build/C/man2/madvise.2:35
+#: build/C/man2/madvise.2:35 build/C/man2/posix_fadvise.2:28
#, no-wrap
-msgid "2011-09-18"
-msgstr "2011-09-18"
+msgid "2014-12-31"
+msgstr "2014-12-31"
#. type: Plain text
#: build/C/man2/madvise.2:38
msgid "madvise - give advice about use of memory"
-msgstr "madvise - メモリ利用に関するアドバイスを与える"
+msgstr "madvise - メモリー利用に関するアドバイスを与える"
#. type: Plain text
#: build/C/man2/madvise.2:40 build/C/man2/msync.2:30
"B<int madvise(void *>I<addr>B<, size_t >I<length>B<, int >I<advice>B<);>"
#. 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 "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
"but may influence its performance. The kernel is free to ignore the advice."
msgstr ""
"B<madvise>() システムコールは、アドレス I<addr> からはじまる I<length> バイ"
-"トのメモリブロックのページング入出力をどう扱えば良いか、 カーネルにアドバイス"
-"する。 これを用いると、 アプリケーションからカーネルに、 マップされたメモリや"
-"共有メモリをどのように扱ってほしいか伝えることができ、 カーネルはそれに応じて"
-"先読みやキャッシュなどの適切な手法を選択できる。 このコールはアプリケーション"
-"の動作そのものには影響しない (B<MADV_DONTNEED> の場合は別) が、 性能には影響"
-"しうる。 なおこのアドバイスを受け入れるかどうかはカーネルに任される。"
+"トのメモリーブロックのページング入出力をどう扱えば良いか、 カーネルにアドバイ"
+"スする。 これを用いると、 アプリケーションからカーネルに、 マップされたメモ"
+"リーや共有メモリーをどのように扱ってほしいか伝えることができ、 カーネルはそれ"
+"に応じて先読みやキャッシュなどの適切な手法を選択できる。 このコールはアプリ"
+"ケーションの動作そのものには影響しない (B<MADV_DONTNEED> の場合は別) が、 性"
+"能には影響しうる。 なおこのアドバイスを受け入れるかどうかはカーネルに任され"
+"る。"
#. type: Plain text
#: build/C/man2/madvise.2:72
msgstr ""
"しばらくアクセスはなさそうだ。 (現時点でアプリケーションは与えた範囲の処理を"
"終えている。 したがってカーネルはこれに関連するリソースを解放して良い。) こ"
-"ã\82\8c以é\99\8dã\81\93ã\81®ç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81\8cã\81\82ã\82\8bã\81¨ã\80\81 æ\88\90å\8a\9fã\81¯ã\81\99ã\82\8bã\81\8cã\80\81ã\83¡ã\83¢ã\83ªã\81®å\86\85容ã\82\92ã\83\9eã\83\83"
-"ã\83\97å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\83ã\83¼ã\83\89ã\81\97ç\9b´ã\81\99ã\81\93ã\81¨ã\81«ã\81ªã\82\8b (B<mmap>(2) ã\82\92è¦\8bã\82\88) ã\81\8bã\80\81 ã\81¾ã\81\9fã\81¯å\85\83"
-"ファイルがないマップページでは アクセスがあったときに 0 埋めが行われることに"
-"なる。"
+"ã\82\8c以é\99\8dã\81\93ã\81®ç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81\8cã\81\82ã\82\8bã\81¨ã\80\81 æ\88\90å\8a\9fã\81¯ã\81\99ã\82\8bã\81\8cã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\82\92"
+"ã\83\9eã\83\83ã\83\97å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\83ã\83¼ã\83\89ã\81\97ç\9b´ã\81\99ã\81\93ã\81¨ã\81«ã\81ªã\82\8b (B<mmap>(2) ã\82\92è¦\8bã\82\88) ã\81\8bã\80\81 ã\81¾ã\81\9fã\81¯"
+"元ファイルがないマップページでは アクセスがあったときに 0 埋めが行われること"
+"ã\81«ã\81ªã\82\8bã\80\82"
#. type: TP
#: build/C/man2/madvise.2:100
#, no-wrap
-msgid "B<MADV_REMOVE> (Since Linux 2.6.16)"
+msgid "B<MADV_REMOVE> (since Linux 2.6.16)"
msgstr "B<MADV_REMOVE> (Linux 2.6.16 以降)"
#. 2.6.18-rc5
#: build/C/man2/madvise.2:113
msgid ""
"Free up a given range of pages and its associated backing store. Currently, "
-"only shmfs/tmpfs supports this; other file systems return with the error "
+"only shmfs/tmpfs supports this; other filesystems return with the error "
"B<ENOSYS>."
msgstr ""
"指定された範囲のページと関連するバッキングストアを解放する。 現在のところ、 "
#. type: TP
#: build/C/man2/madvise.2:113
#, no-wrap
-msgid "B<MADV_DONTFORK> (Since Linux 2.6.16)"
+msgid "B<MADV_DONTFORK> (since Linux 2.6.16)"
msgstr "B<MADV_DONTFORK> (Linux 2.6.16 以降)"
#. See http://lwn.net/Articles/171941/
#. type: Plain text
#: build/C/man2/madvise.2:144
msgid ""
-"Do not make the pages in this range available to the child after a B<fork>"
-"(2). This is useful to prevent copy-on-write semantics from changing the "
-"physical location of a page(s) if the parent writes to it after a B<fork>"
-"(2). (Such page relocations cause problems for hardware that DMAs into the "
-"page(s).)"
+"Do not make the pages in this range available to the child after a "
+"B<fork>(2). This is useful to prevent copy-on-write semantics from changing "
+"the physical location of a page(s) if the parent writes to it after a "
+"B<fork>(2). (Such page relocations cause problems for hardware that DMAs "
+"into the page(s).)"
msgstr ""
"B<fork>(2) が行われた後、指定された範囲のページを子プロセスが利用できないよ"
"うにする。 この機能は、書き込み時コピー (copy-on-write) 方式で、 B<fork>(2) "
#. type: TP
#: build/C/man2/madvise.2:144
#, no-wrap
-msgid "B<MADV_DOFORK> (Since Linux 2.6.16)"
+msgid "B<MADV_DOFORK> (since Linux 2.6.16)"
msgstr "B<MADV_DOFORK> (Linux 2.6.16 以降)"
#. type: Plain text
"Undo the effect of B<MADV_DONTFORK>, restoring the default behavior, whereby "
"a mapping is inherited across B<fork>(2)."
msgstr ""
-"B<MADV_DONTFORK> の影響を取り消し、デフォルトの動作に戻す。 つまり、 B<fork>"
-"(2) の前後でマッピングは継承されるようになる。"
+"B<MADV_DONTFORK> の影響を取り消し、デフォルトの動作に戻す。 つまり、 "
+"B<fork>(2) の前後でマッピングは継承されるようになる。"
#. type: TP
#: build/C/man2/madvise.2:150
#, no-wrap
-msgid "B<MADV_HWPOISON> (Since Linux 2.6.32)"
+msgid "B<MADV_HWPOISON> (since Linux 2.6.32)"
msgstr "B<MADV_HWPOISON> (Linux 2.6.32 以降)"
#. type: Plain text
#: build/C/man2/madvise.2:162
msgid ""
"Poison a page and handle it like a hardware memory corruption. This "
-"operation is only available for privileged (B<CAP_SYS_ADMIN>) processes. "
+"operation is available only for privileged (B<CAP_SYS_ADMIN>) processes. "
"This operation may result in the calling process receiving a B<SIGBUS> and "
"the page being unmapped. This feature is intended for testing of memory "
-"error-handling code; it is only available if the kernel was configured with "
+"error-handling code; it is available only if the kernel was configured with "
"B<CONFIG_MEMORY_FAILURE>."
msgstr ""
+"ページに毒入れを行い、ハードウェアメモリーの破損のようにそのページを取り扱"
+"う。 この操作は特権 (B<CAP_SYS_ADMIN> を持った) プロセスだけが利用できる。 こ"
+"の操作の結果、呼び出したプロセスは B<SIGBUS> を受け取り、そのページはアンマッ"
+"プされる。 この機能はメモリーのエラー処理コードをテストするためのものであ"
+"る。 カーネルで B<CONFIG_MEMORY_FAILURE> が有効になっている場合にのみ利用可能"
+"である。"
#. type: TP
#: build/C/man2/madvise.2:162
#, no-wrap
-msgid "B<MADV_SOFT_OFFLINE> (Since Linux 2.6.33)"
+msgid "B<MADV_SOFT_OFFLINE> (since Linux 2.6.33)"
msgstr "B<MADV_SOFT_OFFLINE> (Linux 2.6.33 以降)"
#. type: Plain text
"out of normal memory management). The effect of the B<MADV_SOFT_OFFLINE> "
"operation is invisible to (i.e., does not change the semantics of) the "
"calling process. This feature is intended for testing of memory error-"
-"handling code; it is only available if the kernel was configured with "
+"handling code; it is available only if the kernel was configured with "
"B<CONFIG_MEMORY_FAILURE>."
msgstr ""
+"I<addr> と I<length> で指定された範囲のページをソフトオフラインにする。 指定"
+"された範囲の各ページのメモリーの内容は保持され (すなわち、次にアクセスされた"
+"際に、同じ内容が見えるが、新しい物理ページフレームになる)、 元のフレームはオ"
+"フラインになる (すなわち、 そのフレームは使用される、通常のメモリー管理からは"
+"取り除かれる)。 B<MADV_SOFT_OFFLINE> 操作の影響は呼び出したプロセスには見えな"
+"い (つまり呼び出したプロセスの動作は変化しない)。 この機能はメモリーのエラー"
+"処理コードをテストすることを目的に作られた。 カーネルで "
+"B<CONFIG_MEMORY_FAILURE> が有効になっている場合にのみ利用可能である。"
#. type: TP
#: build/C/man2/madvise.2:180
"memory that have been marked as mergeable, looking for pages with identical "
"content. These are replaced by a single write-protected page (which is "
"automatically copied if a process later wants to update the content of the "
-"page). KSM only merges private anonymous pages (see B<mmap>(2)). The KSM "
+"page). KSM merges only 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 "
+"B<MADV_UNMERGEABLE> operations are available only if the kernel was "
"configured with B<CONFIG_KSM>."
msgstr ""
+"Kernel Samepage Merging (KSM; カーネルによる同じページの統合) を I<addr> と "
+"I<length> で指定された領域に対して有効にする。 カーネルは、 統合可能の印がつ"
+"いたユーザーメモリーの領域を定期的にスキャンし、内容が全く同じページを探す。 "
+"内容が全く同じページがあれば、それらのページは書き込み保護 (write-protected) "
+"がかかった一つのページで置き換えられる (プロセスが後でページの内容を更新しよ"
+"うとした際には自動的にページのコピーが行われる)。 KSM はプライベートな無名"
+"ページ (anonymous pages) だけを統合する (B<mmap>(2) 参照)。 KSM 機能は、 同じ"
+"データのインスタンスを大量に生成するアプリケーション (KVM などの仮想化システ"
+"ム) での利用を想定している。 この機能はプロセッシング能力を大量に消費する場合"
+"があり、注意して使用すること。 詳細は Linux カーネルソースファイル "
+"I<Documentation/vm/ksm.txt> を参照。 B<MADV_MERGEABLE> と "
+"B<MADV_UNMERGEABLE> は、 カーネルで B<CONFIG_KSM> オプションを有効になってい"
+"る場合にのみ利用できる。"
#. type: TP
#: build/C/man2/madvise.2:205
"address range; KSM unmerges whatever pages it had merged in the address "
"range specified by I<addr> and I<length>."
msgstr ""
+"指定されたアドレス範囲に関して、それ以前に行われた B<MADV_MERGEABLE> 操作の効"
+"果を取り消す。 KSM は、 I<addr> と I<length> で指定されたアドレス範囲の統合"
+"済みのすべてのページの統合解除を行う。"
#. type: TP
#: build/C/man2/madvise.2:214
#: build/C/man2/madvise.2:243
msgid ""
"Enables Transparent Huge Pages (THP) for pages in the range specified by "
-"I<addr> and I<length>. Currently, Transparent Huge Pages only work with "
+"I<addr> and I<length>. Currently, Transparent Huge Pages work only with "
"private anonymous pages (see B<mmap>(2)). The kernel will regularly scan "
"the areas marked as huge page candidates to replace them with huge pages. "
"The kernel will also allocate huge pages directly when the region is "
"naturally aligned to the huge page size (see B<posix_memalign>(2)). This "
"feature is primarily aimed at applications that use large mappings of data "
-"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 "
+"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>."
-msgstr ""
+"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 available only if the kernel was "
+"configured with B<CONFIG_TRANSPARENT_HUGEPAGE>."
+msgstr ""
+"Transparent Huge Pages (THP) を I<addr> と I<length> で指定された領域に対して"
+"有効にする。 現在のところ、Transparent Huge Pages はプライベートな無名ページ "
+"(anonymous pages) についてのみ機能する。 カーネルは定期的にヒュージページ "
+"(huge page) 候補の印がついたページをスキャンし、ヒュージページと置き換える。 "
+"また、カーネルはその領域がヒュージページのサイズに合っている場合、ヒュージ"
+"ページを直接割り当てる (B<posix_memalign>(2) 参照)。 この機能は、大きなデータ"
+"マッピングを使用し、一度にそのメモリーの大きな範囲にアクセスするようなアプリ"
+"ケーション (例えば QEMU のような仮想化システム) で使うことを主に想定されてい"
+"る。 この機能は非常に簡単にメモリーを浪費してしまう (例えば、1 バイトしかアク"
+"セスしない 2MB のマッピングが、 4KB ページではなく 2MB の実際のメモリーを使っ"
+"てしまう)。 詳細は Linux カーネルソースファイル I<Documentation/vm/transhuge."
+"txt> を参照。 B<MADV_HUGEPAGE> と B<MADV_NOHUGEPAGE> は、 カーネルで "
+"B<CONFIG_TRANSPARENT_HUGEPAGE> オプションを有効になっている場合にのみ利用でき"
+"る。"
#. type: TP
#: build/C/man2/madvise.2:243
"Ensures that memory in the address range specified by I<addr> and I<length> "
"will not be collapsed into huge pages."
msgstr ""
+"I<addr> と I<length> で指定されたアドレス範囲のメモリーがヒュージページに組み"
+"込まれないようにする。"
+
+#. type: TP
+#: build/C/man2/madvise.2:250
+#, no-wrap
+msgid "B<MADV_DONTDUMP> (since Linux 3.4)"
+msgstr "B<MADV_DONTDUMP> (Linux 3.4 以降)"
+
+#. type: Plain text
+#: build/C/man2/madvise.2:264
+msgid ""
+"Exclude from a core dump those pages in the range specified by I<addr> and "
+"I<length>. This is useful in applications that have large areas of memory "
+"that are known not to be useful in a core dump. The effect of "
+"B<MADV_DONTDUMP> takes precedence over the bit mask that is set via the I</"
+"proc/PID/coredump_filter> file (see B<core>(5))."
+msgstr ""
+"コアダンプから I<addr> と I<length> で指定された範囲のページを除外する。 これ"
+"は、 コアダンプに含めても役に立たないことが分かっている大きなメモリー領域があ"
+"るアプリケーションで有用である。 B<MADV_DONTDUMP> の効果は I</proc/PID/"
+"coredump_filter> ファイル経由で設定されたビットマスクよりも優先される "
+"(B<core>(5) 参照)。"
+
+#. type: TP
+#: build/C/man2/madvise.2:264
+#, no-wrap
+msgid "B<MADV_DODUMP> (since Linux 3.4)"
+msgstr "B<MADV_DODUMP> (Linux 3.4 以降)"
+
+#. type: Plain text
+#: build/C/man2/madvise.2:268
+msgid "Undo the effect of an earlier B<MADV_DONTDUMP>."
+msgstr "以前の B<MADV_DONTDUMP> の効果を取り消す。"
#. type: Plain text
-#: build/C/man2/madvise.2:257
+#: build/C/man2/madvise.2:275
msgid ""
"On success B<madvise>() returns zero. On error, it returns -1 and I<errno> "
"is set appropriately."
"を適切な値に設定する。"
#. type: TP
-#: build/C/man2/madvise.2:258 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:411
+#: build/C/man2/mremap.2:136
#, no-wrap
msgid "B<EAGAIN>"
msgstr "B<EAGAIN>"
#. type: Plain text
-#: build/C/man2/madvise.2:261
+#: build/C/man2/madvise.2:279
msgid "A kernel resource was temporarily unavailable."
msgstr "何らかのカーネルリソースが一時的に利用できなかった。"
#. type: Plain text
-#: build/C/man2/madvise.2:264
+#: build/C/man2/madvise.2:282
msgid "The map exists, but the area maps something that isn't a file."
msgstr "指定したマップは存在するが、ファイルではないところをマップしている。"
#. type: Plain text
-#: build/C/man2/madvise.2:267
+#: build/C/man2/madvise.2:285
msgid "This error can occur for the following reasons:"
-msgstr ""
-
-#. type: IP
-#: build/C/man2/madvise.2:268 build/C/man2/madvise.2:274
-#: build/C/man2/madvise.2:277 build/C/man2/madvise.2:280
-#: build/C/man2/madvise.2:283 build/C/man3/mallopt.3:233
-#: build/C/man3/mallopt.3:239
-#, no-wrap
-msgid "*"
-msgstr ""
+msgstr "このエラーは以下の理由で発生する。"
#. .I len
#. is zero,
#. type: Plain text
-#: build/C/man2/madvise.2:274
+#: build/C/man2/madvise.2:292
msgid "The value I<len> is negative."
msgstr "I<len> が負の値である。"
#. type: Plain text
-#: build/C/man2/madvise.2:277
+#: build/C/man2/madvise.2:295
msgid "I<addr> is not page-aligned."
-msgstr ""
+msgstr "I<addr> がページ境界ではない。"
#. type: Plain text
-#: build/C/man2/madvise.2:280
+#: build/C/man2/madvise.2:298
msgid "I<advice> is not a valid value"
msgstr "I<advice> が有効な値でない。"
#. type: Plain text
-#: build/C/man2/madvise.2:283
+#: build/C/man2/madvise.2:301
msgid ""
"The application is attempting to release locked or shared pages (with "
"B<MADV_DONTNEED>)."
"しようとしている。"
#. type: Plain text
-#: build/C/man2/madvise.2:291
+#: build/C/man2/madvise.2:309
msgid ""
"B<MADV_MERGEABLE> or B<MADV_UNMERGEABLE> was specified in I<advice>, but the "
"kernel was not configured with B<CONFIG_KSM>."
msgstr ""
+"I<advice> に B<MADV_MERGEABLE> か B<MADV_UNMERGEABLE> が指定されたが、 カーネ"
+"ルの設定が B<CONFIG_KSM> が有効になっていなかった。"
#. type: Plain text
-#: build/C/man2/madvise.2:298
+#: build/C/man2/madvise.2:316
msgid ""
"(for B<MADV_WILLNEED>) Paging in this area would exceed the process's "
"maximum resident set size."
"(resident set size) の最大値を越えてしまう。"
#. type: TP
-#: build/C/man2/madvise.2:298 build/C/man2/madvise.2:303
-#: 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:454 build/C/man2/mprotect.2:99
+#: build/C/man2/mprotect.2:102 build/C/man2/mremap.2:179
+#: build/C/man2/msync.2:93 build/C/man3/posix_memalign.3:164
+#: build/C/man2/shmctl.2:337 build/C/man2/shmget.2:230
+#: build/C/man2/shmop.2:211 build/C/man2/subpage_prot.2:87
+#: build/C/man2/sync_file_range.2:163 build/C/man2/memfd_create.2:152
+#: build/C/man2/s390_pci_mmio_write.2:95
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/madvise.2:303
+#: build/C/man2/madvise.2:321
msgid "(for B<MADV_WILLNEED>) Not enough memory: paging in failed."
-msgstr "(B<MADV_WILLNEED> の場合) メモリが足りず、ページングに失敗した。"
+msgstr "(B<MADV_WILLNEED> ã\81®å ´å\90\88) ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81\9aã\80\81ã\83\9aã\83¼ã\82¸ã\83³ã\82°ã\81«å¤±æ\95\97ã\81\97ã\81\9fã\80\82"
#. type: Plain text
-#: build/C/man2/madvise.2:307
+#: build/C/man2/madvise.2:325
msgid ""
"Addresses in the specified range are not currently mapped, or are outside "
"the address space of the process."
"指定した範囲のアドレスが、現在マップされていない。 あるいはプロセスのアドレス"
"空間の内部にない。"
-#. FIXME . Write a posix_fadvise(3) page.
+#. commit d3ac21cacc24790eb45d735769f35753f5b56ceb
+#. type: Plain text
+#: build/C/man2/madvise.2:332
+msgid ""
+"Since Linux 3.18, support for this system call is optional, depending on the "
+"setting of the B<CONFIG_ADVISE_SYSCALLS> configuration option."
+msgstr ""
+"Linux 3.18 以降では、このシステムコールのサポートは任意となり、利用できるかは"
+"カーネルが B<CONFIG_ADVISE_SYSCALLS> オプションを有効にしてコンパイルされてい"
+"るかに依存する。"
+
+#. FIXME . Write a posix_madvise(3) page.
#. type: Plain text
-#: build/C/man2/madvise.2:319
+#: build/C/man2/madvise.2:345
msgid ""
"POSIX.1b. POSIX.1-2001 describes B<posix_madvise>(3) with constants "
-"B<POSIX_MADV_NORMAL>, etc., with a behavior close to that described here. "
-"There is a similar B<posix_fadvise>(2) for file access."
+"B<POSIX_MADV_NORMAL>, B<POSIX_MADV_RANDOM>, and so on, with a behavior close "
+"to that described here. There is a similar B<posix_fadvise>(2) for file "
+"access."
msgstr ""
-"POSIX.1b. POSIX.1-2001 では、 B<posix_madvise>(3) を B<POSIX_MADV_NORMAL> "
-"などの定数とともに記述していた (それぞれの振る舞いはここで述べたものに近"
-"ã\81\84)ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\82¯ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\82\82 B<posix_fadvise>(2) ã\81¨ã\81\84ã\81\86é¡\9eä¼¼ã\81®é\96¢æ\95°ã\81\8cå\98å\9c¨"
-"する。"
+"POSIX.1b. POSIX.1-2001 では、 B<posix_madvise>(3) を B<POSIX_MADV_NORMAL>, "
+"B<POSIX_MADV_RANDOM> などの定数とともに記述していた (それぞれの振る舞いはここ"
+"ã\81§è¿°ã\81¹ã\81\9fã\82\82ã\81®ã\81«è¿\91ã\81\84)ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\82¢ã\82¯ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\82\82 B<posix_fadvise>(2) ã\81¨ã\81\84ã\81\86"
+"類似の関数が存在する。"
#. type: Plain text
-#: build/C/man2/madvise.2:328
+#: build/C/man2/madvise.2:354
msgid ""
"B<MADV_REMOVE>, B<MADV_DONTFORK>, B<MADV_DOFORK>, B<MADV_HWPOISON>, "
"B<MADV_MERGEABLE>, and B<MADV_UNMERGEABLE> are Linux-specific."
"B<MADV_MERGEABLE>, B<MADV_UNMERGEABLE> は Linux 固有である。"
#. type: SS
-#: build/C/man2/madvise.2:329 build/C/man2/mlock.2:268
-#: build/C/man2/shmget.2:278
+#: build/C/man2/madvise.2:355 build/C/man2/mlock.2:274
+#: build/C/man2/shmget.2:370
#, no-wrap
-msgid "Linux Notes"
+msgid "Linux notes"
msgstr "Linux での注意"
#. type: Plain text
-#: build/C/man2/madvise.2:337
+#: build/C/man2/madvise.2:363
msgid ""
"The current Linux implementation (2.4.0) views this system call more as a "
"command than as advice and hence may return an error when it cannot do what "
#. .BR madvise ()
#. function first appeared in 4.4BSD.
#. type: Plain text
-#: build/C/man2/madvise.2:353
+#: build/C/man2/madvise.2:379
msgid ""
"The Linux implementation requires that the address I<addr> be page-aligned, "
"and allows I<length> to be zero. If there are some parts of the specified "
"返す)。"
#. type: Plain text
-#: build/C/man2/madvise.2:360
+#: build/C/man2/madvise.2:388
msgid ""
"B<getrlimit>(2), B<mincore>(2), B<mmap>(2), B<mprotect>(2), B<msync>(2), "
-"B<munmap>(2)"
+"B<munmap>(2), B<prctl>(2), B<core>(5)"
msgstr ""
"B<getrlimit>(2), B<mincore>(2), B<mmap>(2), B<mprotect>(2), B<msync>(2), "
-"B<munmap>(2)"
+"B<munmap>(2), B<prctl>(2), B<core>(5)"
#. type: TH
-#: build/C/man3/malloc_hook.3:6
+#: build/C/man3/mallinfo.3:26
#, no-wrap
-msgid "MALLOC_HOOK"
-msgstr "MALLOC_HOOK"
+msgid "MALLINFO"
+msgstr "MALLINFO"
#. type: TH
-#: build/C/man3/malloc_hook.3:6
+#: build/C/man3/mallinfo.3:26 build/C/man3/malloc_stats.3:26
#, no-wrap
-msgid "2010-10-13"
-msgstr "2010-10-13"
+msgid "2012-05-06"
+msgstr "2012-05-06"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:29
+msgid "mallinfo - obtain memory allocation information"
+msgstr "mallinfo - メモリー割り当て情報を取得する"
+
+#. type: Plain text
+#: 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 "B<#include E<lt>malloc.hE<gt>>"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:33
+msgid "B<struct mallinfo mallinfo(void);>"
+msgstr "B<struct mallinfo mallinfo(void);>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:11
+#: build/C/man3/mallinfo.3:41
msgid ""
-"__malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, "
-"__realloc_hook, __after_morecore_hook - malloc debugging variables"
+"The B<mallinfo>() function returns a copy of a structure containing "
+"information about memory allocations performed by B<malloc>(3) and related "
+"functions. This structure is defined as follows:"
msgstr ""
-"__malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, "
-"__realloc_hook, __after_morecore_hook - malloc デバッグ用の変数"
+"B<mallinfo>() 関数は、 B<malloc>(3) や一連の関数により実行されたメモリー\n"
+"割り当てに関する情報を格納した構造体のコピーを返す。\n"
+"この構造体は以下のように定義されている。"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:14 build/C/man3/posix_memalign.3:40
+#: build/C/man3/mallinfo.3:56
#, no-wrap
-msgid "B<#include E<lt>malloc.hE<gt>>\n"
-msgstr "B<#include E<lt>malloc.hE<gt>>\n"
+msgid ""
+"struct mallinfo {\n"
+" int arena; /* Non-mmapped space allocated (bytes) */\n"
+" int ordblks; /* Number of free chunks */\n"
+" int smblks; /* Number of free fastbin blocks */\n"
+" int hblks; /* Number of mmapped regions */\n"
+" int hblkhd; /* Space allocated in mmapped regions (bytes) */\n"
+" int usmblks; /* Maximum total allocated space (bytes) */\n"
+" int fsmblks; /* Space in freed fastbin blocks (bytes) */\n"
+" int uordblks; /* Total allocated space (bytes) */\n"
+" int fordblks; /* Total free space (bytes) */\n"
+" int keepcost; /* Top-most, releasable space (bytes) */\n"
+"};\n"
+msgstr ""
+"struct mallinfo {\n"
+" int arena; /* Non-mmapped space allocated (bytes) */\n"
+" int ordblks; /* Number of free chunks */\n"
+" int smblks; /* Number of free fastbin blocks */\n"
+" int hblks; /* Number of mmapped regions */\n"
+" int hblkhd; /* Space allocated in mmapped regions (bytes) */\n"
+" int usmblks; /* Maximum total allocated space (bytes) */\n"
+" int fsmblks; /* Space in freed fastbin blocks (bytes) */\n"
+" int uordblks; /* Total allocated space (bytes) */\n"
+" int fordblks; /* Total free space (bytes) */\n"
+" int keepcost; /* Top-most, releasable space (bytes) */\n"
+"};\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:16
-#, no-wrap
-msgid "B<void *(*__malloc_hook)(size_t >I<size>B<, const void *>I<caller>B<);>\n"
-msgstr "B<void *(*__malloc_hook)(size_t >I<size>B<, const void *>I<caller>B<);>\n"
+#: build/C/man3/mallinfo.3:62
+msgid ""
+"The fields of the I<mallinfo> structure contain the following information:"
+msgstr "I<mallinfo> 構造体の各フィールドには以下の情報が格納される。"
-#. type: Plain text
-#: build/C/man3/malloc_hook.3:19
+#. type: TP
+#: build/C/man3/mallinfo.3:62
#, no-wrap
-msgid "B<void *(*__realloc_hook)(void *>I<ptr>B<, size_t >I<size>B<, const void *>I<caller>B<);>\n"
-msgstr "B<void *(*__realloc_hook)(void *>I<ptr>B<, size_t >I<size>B<, const void *>I<caller>B<);>\n"
+msgid "I<arena>"
+msgstr "I<arena>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:22
-#, no-wrap
+#: build/C/man3/mallinfo.3:68
msgid ""
-"B<void *(*__memalign_hook)(size_t >I<alignment>B<, size_t >I<size>B<,>\n"
-"B< const void *>I<caller>B<);>\n"
+"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 "
+"blocks on the free list."
msgstr ""
-"B<void *(*__memalign_hook)(size_t >I<alignment>B<, size_t >I<size>B<,>\n"
-"B< const void *>I<caller>B<);>\n"
+"B<mmap>(2) 以外の手段で割り当てられた総メモリー量 (例えばヒープに割り当てられ"
+"たメモリー) 。 この数字には使用中のブロックやフリーリスト上のブロックも含まれ"
+"る。"
-#. type: Plain text
-#: build/C/man3/malloc_hook.3:24
+#. type: TP
+#: build/C/man3/mallinfo.3:68
#, no-wrap
-msgid "B<void (*__free_hook)(void *>I<ptr>B<, const void *>I<caller>B<);>\n"
-msgstr "B<void (*__free_hook)(void *>I<ptr>B<, const void *>I<caller>B<);>\n"
+msgid "I<ordblks>"
+msgstr "I<ordblks>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:26
+#: build/C/man3/mallinfo.3:71
+msgid "The number of ordinary (i.e., non-fastbin) free blocks."
+msgstr "通常の (つまり fastbin ではない) 未使用ブロック数。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:71
#, no-wrap
-msgid "B<void (*__malloc_initialize_hook)(void);>\n"
-msgstr "B<void (*__malloc_initialize_hook)(void);>\n"
+msgid "I<smblks>"
+msgstr "I<smblks>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:28
+#: build/C/man3/mallinfo.3:75
+msgid "The number of fastbin free blocks (see B<mallopt>(3))."
+msgstr "fastbin 未使用ブロック数 (B<mallopt>(3) 参照)。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:75
#, no-wrap
-msgid "B<void (*__after_morecore_hook)(void);>\n"
-msgstr "B<void (*__after_morecore_hook)(void);>\n"
+msgid "I<hblks>"
+msgstr "I<hblks>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:39
+#: build/C/man3/mallinfo.3:83
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. You can use "
-"these hooks to help you debug programs that use dynamic memory allocation, "
-"for example."
+"The number of blocks currently allocated using B<mmap>(2). (See the "
+"discussion of B<M_MMAP_THRESHOLD> in B<mallopt>(3).)"
msgstr ""
-"GNU C ライブラリでは、適切なフック関数 (hook function) を指定することで "
-"B<malloc>(3), B<realloc>(3), B<free>(3) の動作を変更することができる。例え"
-"ば、動的にメモリ割り当てを行う プログラムのデバッグにこれらのフックを使うこと"
-"ができる。"
+"B<mmap>(2) を使って現在割り当てられているブロック数 (B<mallopt>(3) の "
+"B<M_MMAP_THRESHOLD> の議論を参照)。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:83
+#, no-wrap
+msgid "I<hblkhd>"
+msgstr "I<hblkhd>"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:87
+msgid "The number of bytes in blocks currently allocated using B<mmap>(2)."
+msgstr "B<mmap>(2) を使って現在割り当てられているブロックのバイト数。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:87
+#, no-wrap
+msgid "I<usmblks>"
+msgstr "I<usmblks>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:46
+#: build/C/man3/mallinfo.3:92
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 "
-"variable, so it can be overridden in the application with a definition like "
-"the following:"
+"The \"highwater mark\" for allocated space\\(emthat is, the maximum amount "
+"of space that was ever allocated. This field is maintained only in "
+"nonthreading environments."
msgstr ""
-"変数 B<__malloc_initialize_hook> は malloc の実装が初期化される際に一度だけ呼"
-"ばれる関数へのポインタである。 この変数は書き換え可能 (weak) であり、アプリ"
-"ケーション内で 以下のような定義で上書きできる:"
+"割り当てた空間の最高点 (\"highwater mark\")、 つまり、 これまでの中での最大の"
+"割り当て量。 このフィールドはスレッド化されていない環境でのみ収集される。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:92
+#, no-wrap
+msgid "I<fsmblks>"
+msgstr "I<fsmblks>"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:49
+#: build/C/man3/mallinfo.3:95
+msgid "The total number of bytes in fastbin free blocks."
+msgstr "fastbin フリーブロックの総バイト数。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:95
#, no-wrap
-msgid " void (*__malloc_initialize_hook)(void) = my_init_hook;\n"
-msgstr " void (*__malloc_initialize_hook)(void) = my_init_hook;\n"
+msgid "I<uordblks>"
+msgstr "I<uordblks>"
+
+#. type: Plain text
+#: 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:98
+#, no-wrap
+msgid "I<fordblks>"
+msgstr "I<fordblks>"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:101
+msgid "The total number of bytes in free blocks."
+msgstr "フリーブロックの総バイト数。"
+
+#. type: TP
+#: build/C/man3/mallinfo.3:101
+#, no-wrap
+msgid "I<keepcost>"
+msgstr "I<keepcost>"
+
+#. .SH VERSIONS
+#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/malloc_hook.3:54
+#: build/C/man3/mallinfo.3:110
msgid ""
-"Now the function I<my_init_hook>() can do the initialization of all hooks."
+"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 "
+"alignment restrictions, and so on) be released by B<malloc_trim>(3)."
msgstr ""
-"なお、関数 I<my_init_hook>() で全てのフックの初期化をすることができる。"
+"ヒープの一番上にある解放可能な未使用の空間の大きさ。 この値は "
+"B<malloc_trim>(3) で理想的な場合に解放できる最大のバイト数である (理想的とい"
+"うのは、 ページ境界の制限などを無視した場合である。"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:70
+#: build/C/man3/mallinfo.3:114
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 "
-"B<malloc>(3), B<realloc>(3), B<memalign>(3), B<free>(3), respectively, "
-"except that they have a final argument I<caller> that gives the address of "
-"the caller of B<malloc>(3), etc."
+"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."
msgstr ""
-"B<__malloc_hook>, B<__realloc_hook>, B<__memalign_hook>, B<__free_hook> で指"
-"される 4 つの関数は、各々 B<malloc>(3), B<realloc>(3), B<memalign>(3), "
-"B<free>(3) とよく似たプロトタイプを持っているが、 一番最後の引き数 "
-"I<caller> をとる点が異なる。 引き数 I<caller> には、 B<malloc>(3) などの呼び"
-"出し元 (caller) のアドレスが格納される。"
+"この関数は POSIX や C 標準では規定されていない。 多くの System V 由来のシステ"
+"ムに同様の関数が存在し、 SVID では同様の関数が規定されていた。 "
+#. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=208
+#. See the 24 Aug 2011 mail by Paul Pluzhnikov:
+#. "[patch] Fix mallinfo() to accumulate results for all arenas"
+#. on libc-alpha@sourceware.org
#. type: Plain text
-#: build/C/man3/malloc_hook.3:76
+#: build/C/man3/mallinfo.3:126
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."
+"B<Information is returned for only the main memory allocation area.> "
+"Allocations in other arenas are excluded. See B<malloc_stats>(3) and "
+"B<malloc_info>(3) for alternatives that include information about other "
+"arenas."
msgstr ""
-"変数 B<__after_morecore_hook> は、領域の追加要求があり B<sbrk>(2) が呼ばれた"
-"後で毎回呼び出される関数へのポインタである。"
-
-#. type: Plain text
-#: build/C/man3/malloc_hook.3:78 build/C/man3/mtrace.3:78
-#: build/C/man3/malloc_get_state.3:86 build/C/man3/mcheck.3:146
-msgid "These functions are GNU extensions."
-msgstr "これらの関数は GNU による拡張である。"
+"B<これらの情報はメインのメモリー割り当て領域に対するもののみである。> 他の領"
+"域の割り当ては対象にならない。 他の領域の情報も取得できる別の手段については "
+"B<malloc_stats>(3) や B<malloc_info>(3) を参照。"
-#. 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/mallinfo.3:134
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 "
-"relevant functions by defining and exporting functions such as \"malloc\" "
-"and \"free\"."
+"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 "
+"reported values may wrap around zero and thus be inaccurate."
msgstr ""
+"I<mallinfo> 構造体の各フィールドは I<int> 型である。 しかし、 いくつかの内部"
+"管理用の値は I<long> 型の場合もあるので、 報告される値が一周してしまい、 不正"
+"確になる可能性がある。"
#. type: SH
-#: build/C/man3/malloc_hook.3:85 build/C/man3/mallopt.3:464
-#: build/C/man2/mmap.2:571 build/C/man2/mprotect.2:142
-#: build/C/man3/mtrace.3:106 build/C/man3/mcheck.3:159
+#: build/C/man3/mallinfo.3:134 build/C/man3/malloc_hook.3:89
+#: build/C/man3/malloc_info.3:84 build/C/man3/mallopt.3:454
+#: build/C/man3/mcheck.3:159 build/C/man2/mmap.2:633
+#: build/C/man2/mprotect.2:147 build/C/man3/mtrace.3:108
+#: build/C/man2/memfd_create.2:293
#, no-wrap
msgid "EXAMPLE"
msgstr "例"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:87
-msgid "Here is a short example of how to use these variables."
-msgstr "これらの変数の使い方の簡単な例を以下に示す。"
+#: 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. "
+"The statistics are displayed on standard output."
+msgstr ""
+"以下のプログラムは B<mallinfo>() を利用して、 メモリーブロックの割り当て、解"
+"放のそれぞれ前後でメモリー割り当ての統計情報を取得する。 統計情報は標準出力に"
+"表示される。"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:91
-#, no-wrap
+#: build/C/man3/mallinfo.3:144
msgid ""
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>malloc.hE<gt>\n"
+"The first two command-line arguments specify the number and size of blocks "
+"to be allocated with B<malloc>(3)."
msgstr ""
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>malloc.hE<gt>\n"
+"最初の 2 つのコマンドライン引き数は B<malloc>(3) で割り当てるブロック数とサイ"
+"ズを指定する。"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:95
-#, no-wrap
+#: build/C/man3/mallinfo.3:158
msgid ""
-"/* Prototypes for our hooks. */\n"
-"static void my_init_hook(void);\n"
-"static void *my_malloc_hook(size_t, const void *);\n"
+"The remaining three arguments specify which of the allocated blocks should "
+"be freed with B<free>(3). These three arguments are optional, and specify "
+"(in order): the step size to be used in the loop that frees blocks (the "
+"default is 1, meaning free all blocks in the range); the ordinal position of "
+"the first block to be freed (default 0, meaning the first allocated block); "
+"and a number one greater than the ordinal position of the last block to be "
+"freed (default is one greater than the maximum block number). If these "
+"three arguments are omitted, then the defaults cause all allocated blocks to "
+"be freed."
msgstr ""
-"/* 使おうとするフックのプロトタイプ宣言 */\n"
-"static void my_init_hook(void);\n"
-"static void *my_malloc_hook(size_t, const void *);\n"
+"残りの 3 つの引き数は、どの割り当てられたブロックを B<free>(3) で解放すべきか"
+"を指定する。 これらの 3 つの引き数の指定は任意で、 最初のものから順に以下の情"
+"報を指定する。 1 つ目の引き数は、 ブロックを解放するループで使用するステップ"
+"サイズを指定する (デフォルト値は 1 で、 1 は指定した範囲のすべてのブロックを"
+"解放することを意味する)。 2 つ目の引き数は、 解放する先頭ブロックの場所番号を"
+"指定する (デフォルト値は 0 で、 0 は先頭の割り当て済みブロックを意味する)。 "
+"3 つ目の引き数は、 解放する最終ブロックの場所番号よりひとつ大きい値を指定す"
+"る (デフォルト値は最大ブロック番号よりもひとつ大きい値である)。 これらの 3 つ"
+"の引き数が省略された場合、 デフォルトではすべての割り当てられたブロックが解放"
+"される。"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:98
+#: 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 ""
+"以下のプログラムの実行例では、 100 バイトの割り当てを 1000 回実行し、 割り当"
+"てたブロックの 2 つに 1 つを解放する。"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:177
+#, no-wrap
+msgid ""
+"$ B<./a.out 1000 100 2>\n"
+"============== Before allocating blocks ==============\n"
+"Total non-mmapped bytes (arena): 0\n"
+"# of free chunks (ordblks): 1\n"
+"# of free fastbin blocks (smblks): 0\n"
+"# of mapped regions (hblks): 0\n"
+"Bytes in mapped regions (hblkhd): 0\n"
+"Max. total allocated space (usmblks): 0\n"
+"Free bytes held in fastbins (fsmblks): 0\n"
+"Total allocated space (uordblks): 0\n"
+"Total free space (fordblks): 0\n"
+"Topmost releasable block (keepcost): 0\n"
+msgstr ""
+"$ B<./a.out 1000 100 2>\n"
+"============== Before allocating blocks ==============\n"
+"Total non-mmapped bytes (arena): 0\n"
+"# of free chunks (ordblks): 1\n"
+"# of free fastbin blocks (smblks): 0\n"
+"# of mapped regions (hblks): 0\n"
+"Bytes in mapped regions (hblkhd): 0\n"
+"Max. total allocated space (usmblks): 0\n"
+"Free bytes held in fastbins (fsmblks): 0\n"
+"Total allocated space (uordblks): 0\n"
+"Total free space (fordblks): 0\n"
+"Topmost releasable block (keepcost): 0\n"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:189
+#, no-wrap
+msgid ""
+"============== After allocating blocks ==============\n"
+"Total non-mmapped bytes (arena): 135168\n"
+"# of free chunks (ordblks): 1\n"
+"# of free fastbin blocks (smblks): 0\n"
+"# of mapped regions (hblks): 0\n"
+"Bytes in mapped regions (hblkhd): 0\n"
+"Max. total allocated space (usmblks): 0\n"
+"Free bytes held in fastbins (fsmblks): 0\n"
+"Total allocated space (uordblks): 104000\n"
+"Total free space (fordblks): 31168\n"
+"Topmost releasable block (keepcost): 31168\n"
+msgstr ""
+"============== After allocating blocks ==============\n"
+"Total non-mmapped bytes (arena): 135168\n"
+"# of free chunks (ordblks): 1\n"
+"# of free fastbin blocks (smblks): 0\n"
+"# of mapped regions (hblks): 0\n"
+"Bytes in mapped regions (hblkhd): 0\n"
+"Max. total allocated space (usmblks): 0\n"
+"Free bytes held in fastbins (fsmblks): 0\n"
+"Total allocated space (uordblks): 104000\n"
+"Total free space (fordblks): 31168\n"
+"Topmost releasable block (keepcost): 31168\n"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:201
+#, no-wrap
+msgid ""
+"============== After freeing blocks ==============\n"
+"Total non-mmapped bytes (arena): 135168\n"
+"# of free chunks (ordblks): 501\n"
+"# of free fastbin blocks (smblks): 0\n"
+"# of mapped regions (hblks): 0\n"
+"Bytes in mapped regions (hblkhd): 0\n"
+"Max. total allocated space (usmblks): 0\n"
+"Free bytes held in fastbins (fsmblks): 0\n"
+"Total allocated space (uordblks): 52000\n"
+"Total free space (fordblks): 83168\n"
+"Topmost releasable block (keepcost): 31168\n"
+msgstr ""
+"============== After freeing blocks ==============\n"
+"Total non-mmapped bytes (arena): 135168\n"
+"# of free chunks (ordblks): 501\n"
+"# of free fastbin blocks (smblks): 0\n"
+"# of mapped regions (hblks): 0\n"
+"Bytes in mapped regions (hblkhd): 0\n"
+"Max. total allocated space (usmblks): 0\n"
+"Free bytes held in fastbins (fsmblks): 0\n"
+"Total allocated space (uordblks): 52000\n"
+"Total free space (fordblks): 83168\n"
+"Topmost releasable block (keepcost): 31168\n"
+
+#. type: SS
+#: build/C/man3/mallinfo.3:203 build/C/man3/malloc_info.3:167
+#: build/C/man3/mallopt.3:520 build/C/man3/mcheck.3:176
+#: build/C/man2/mmap.2:645 build/C/man2/mprotect.2:164
#, no-wrap
-msgid ""
-"/* Variables to save original hooks. */\n"
-"static void *(*old_malloc_hook)(size_t, const void *);\n"
-msgstr ""
-"/* 元々のフックを保存するための変数 */\n"
-"static void *(*old_malloc_hook)(size_t, const void *);\n"
+msgid "Program source"
+msgstr "プログラムのソース"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:101
+#: build/C/man3/mallinfo.3:208
#, no-wrap
msgid ""
-"/* Override initializing hook from the C library. */\n"
-"void (*__malloc_initialize_hook) (void) = my_init_hook;\n"
+"#include E<lt>malloc.hE<gt>\n"
+"#include \"tlpi_hdr.h\"\n"
msgstr ""
-"/* C ライブラリから呼ばれる初期化フックを上書きする */\n"
-"void (*__malloc_initialize_hook) (void) = my_init_hook;\n"
+"#include E<lt>malloc.hE<gt>\n"
+"#include \"tlpi_hdr.h\"\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:108
+#: build/C/man3/mallinfo.3:213
#, no-wrap
msgid ""
"static void\n"
-"my_init_hook(void)\n"
+"display_mallinfo(void)\n"
"{\n"
-" old_malloc_hook = __malloc_hook;\n"
-" __malloc_hook = my_malloc_hook;\n"
-"}\n"
+" struct mallinfo mi;\n"
msgstr ""
"static void\n"
-"my_init_hook(void)\n"
+"display_mallinfo(void)\n"
"{\n"
-" old_malloc_hook = __malloc_hook;\n"
-" __malloc_hook = my_malloc_hook;\n"
+" struct mallinfo mi;\n"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:215
+#, no-wrap
+msgid " mi = mallinfo();\n"
+msgstr " mi = mallinfo();\n"
+
+#. type: Plain text
+#: build/C/man3/mallinfo.3:227
+#, no-wrap
+msgid ""
+" printf(\"Total non-mmapped bytes (arena): %d\\en\", mi.arena);\n"
+" printf(\"# of free chunks (ordblks): %d\\en\", mi.ordblks);\n"
+" printf(\"# of free fastbin blocks (smblks): %d\\en\", mi.smblks);\n"
+" printf(\"# of mapped regions (hblks): %d\\en\", mi.hblks);\n"
+" printf(\"Bytes in mapped regions (hblkhd): %d\\en\", mi.hblkhd);\n"
+" printf(\"Max. total allocated space (usmblks): %d\\en\", mi.usmblks);\n"
+" printf(\"Free bytes held in fastbins (fsmblks): %d\\en\", mi.fsmblks);\n"
+" printf(\"Total allocated space (uordblks): %d\\en\", mi.uordblks);\n"
+" printf(\"Total free space (fordblks): %d\\en\", mi.fordblks);\n"
+" printf(\"Topmost releasable block (keepcost): %d\\en\", mi.keepcost);\n"
+"}\n"
+msgstr ""
+" printf(\"Total non-mmapped bytes (arena): %d\\en\", mi.arena);\n"
+" printf(\"# of free chunks (ordblks): %d\\en\", mi.ordblks);\n"
+" printf(\"# of free fastbin blocks (smblks): %d\\en\", mi.smblks);\n"
+" printf(\"# of mapped regions (hblks): %d\\en\", mi.hblks);\n"
+" printf(\"Bytes in mapped regions (hblkhd): %d\\en\", mi.hblkhd);\n"
+" printf(\"Max. total allocated space (usmblks): %d\\en\", mi.usmblks);\n"
+" printf(\"Free bytes held in fastbins (fsmblks): %d\\en\", mi.fsmblks);\n"
+" printf(\"Total allocated space (uordblks): %d\\en\", mi.uordblks);\n"
+" printf(\"Total free space (fordblks): %d\\en\", mi.fordblks);\n"
+" printf(\"Topmost releasable block (keepcost): %d\\en\", mi.keepcost);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:113
+#: build/C/man3/mallinfo.3:235
#, no-wrap
msgid ""
-"static void *\n"
-"my_malloc_hook(size_t size, const void *caller)\n"
+"int\n"
+"main(int argc, char *argv[])\n"
"{\n"
-" void *result;\n"
+"#define MAX_ALLOCS 2000000\n"
+" char *alloc[MAX_ALLOCS];\n"
+" int numBlocks, j, freeBegin, freeEnd, freeStep;\n"
+" size_t blockSize;\n"
msgstr ""
-"static void *\n"
-"my_malloc_hook(size_t size, const void *caller)\n"
+"int\n"
+"main(int argc, char *argv[])\n"
"{\n"
-" void *result;\n"
+"#define MAX_ALLOCS 2000000\n"
+" char *alloc[MAX_ALLOCS];\n"
+" int numBlocks, j, freeBegin, freeEnd, freeStep;\n"
+" size_t blockSize;\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:116
+#: build/C/man3/mallinfo.3:239
#, no-wrap
msgid ""
-" /* Restore all old hooks */\n"
-" __malloc_hook = old_malloc_hook;\n"
+" if (argc E<lt> 3 || strcmp(argv[1], \"--help\") == 0)\n"
+" usageErr(\"%s num-blocks block-size [free-step [start-free \"\n"
+" \"[end-free]]]\\en\", argv[0]);\n"
msgstr ""
-" /* 元々のフックを全て戻す */\n"
-" __malloc_hook = old_malloc_hook;\n"
+" if (argc E<lt> 3 || strcmp(argv[1], \"--help\") == 0)\n"
+" usageErr(\"%s num-blocks block-size [free-step [start-free \"\n"
+" \"[end-free]]]\\en\", argv[0]);\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:119
+#: build/C/man3/mallinfo.3:245
#, no-wrap
msgid ""
-" /* Call recursively */\n"
-" result = malloc(size);\n"
+" numBlocks = atoi(argv[1]);\n"
+" blockSize = atoi(argv[2]);\n"
+" freeStep = (argc E<gt> 3) ? atoi(argv[3]) : 1;\n"
+" freeBegin = (argc E<gt> 4) ? atoi(argv[4]) : 0;\n"
+" freeEnd = (argc E<gt> 5) ? atoi(argv[5]) : numBlocks;\n"
msgstr ""
-" /* malloc の再帰的呼び出し */\n"
-" result = malloc(size);\n"
+" numBlocks = atoi(argv[1]);\n"
+" blockSize = atoi(argv[2]);\n"
+" freeStep = (argc E<gt> 3) ? atoi(argv[3]) : 1;\n"
+" freeBegin = (argc E<gt> 4) ? atoi(argv[4]) : 0;\n"
+" freeEnd = (argc E<gt> 5) ? atoi(argv[5]) : numBlocks;\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:122
+#: build/C/man3/mallinfo.3:248
#, no-wrap
msgid ""
-" /* Save underlying hooks */\n"
-" old_malloc_hook = __malloc_hook;\n"
+" printf(\"============== Before allocating blocks ==============\\en\");\n"
+" display_mallinfo();\n"
msgstr ""
-" /* 現在設定されているフック (underlying hook) を保存する */\n"
-" old_malloc_hook = __malloc_hook;\n"
+" printf(\"============== Before allocating blocks ==============\\en\");\n"
+" display_mallinfo();\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:126
+#: build/C/man3/mallinfo.3:252
#, no-wrap
msgid ""
-" /* printf() might call malloc(), so protect it too. */\n"
-" printf(\"malloc(%u) called from %p returns %p\\en\",\n"
-" (unsigned int) size, caller, result);\n"
+" for (j = 0; j E<lt> numBlocks; j++) {\n"
+" if (numBlocks E<gt>= MAX_ALLOCS)\n"
+" fatal(\"Too many allocations\");\n"
msgstr ""
-" /* printf() は malloc() を呼び出す可能性があるので\n"
-" ここでもガードを行う (元々のフックのままにしておく) */\n"
-" printf(\"malloc(%u) called from %p returns %p\\en\",\n"
-" (unsigned int) size, caller, result);\n"
+" for (j = 0; j E<lt> numBlocks; j++) {\n"
+" if (numBlocks E<gt>= MAX_ALLOCS)\n"
+" fatal(\"Too many allocations\");\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:129
+#: build/C/man3/mallinfo.3:257
#, no-wrap
msgid ""
-" /* Restore our own hooks */\n"
-" __malloc_hook = my_malloc_hook;\n"
+" alloc[j] = malloc(blockSize);\n"
+" if (alloc[j] == NULL)\n"
+" errExit(\"malloc\");\n"
+" }\n"
msgstr ""
-" /* ユーザが使おうとするフックを再設定する */\n"
-" __malloc_hook = my_malloc_hook;\n"
+" alloc[j] = malloc(blockSize);\n"
+" if (alloc[j] == NULL)\n"
+" errExit(\"malloc\");\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:132
+#: build/C/man3/mallinfo.3:260
#, no-wrap
msgid ""
-" return result;\n"
-"}\n"
+" printf(\"\\en============== After allocating blocks ==============\\en\");\n"
+" display_mallinfo();\n"
msgstr ""
-" return result;\n"
-"}\n"
+" printf(\"\\en============== After allocating blocks ==============\\en\");\n"
+" display_mallinfo();\n"
#. type: Plain text
-#: build/C/man3/malloc_hook.3:138
-msgid "B<mallinfo>(3), B<malloc>(3), B<mcheck>(3), B<mtrace>(3)"
-msgstr "B<mallinfo>(3), B<malloc>(3), B<mcheck>(3), B<mtrace>(3)"
-
-#. type: TH
-#: build/C/man3/mallopt.3:24
-#, no-wrap
-msgid "MALLOPT"
-msgstr "MALLOPT"
-
-#. type: TH
-#: build/C/man3/mallopt.3:24 build/C/man3/mtrace.3:23 build/C/man3/mcheck.3:23
+#: build/C/man3/mallinfo.3:263
#, no-wrap
-msgid "2012-04-18"
-msgstr "2012-04-18"
-
-#. type: Plain text
-#: build/C/man3/mallopt.3:27
-msgid "mallopt - set memory allocation parameters"
+msgid ""
+" for (j = freeBegin; j E<lt> freeEnd; j += freeStep)\n"
+" free(alloc[j]);\n"
msgstr ""
+" for (j = freeBegin; j E<lt> freeEnd; j += freeStep)\n"
+" free(alloc[j]);\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:29 build/C/man3/malloc_trim.3:29
-#: build/C/man3/malloc_usable_size.3:28
-msgid "B<#include E<lt>malloc.hE<gt>>"
-msgstr "B<#include E<lt>malloc.hE<gt>>"
+#: build/C/man3/mallinfo.3:266
+#, no-wrap
+msgid ""
+" printf(\"\\en============== After freeing blocks ==============\\en\");\n"
+" display_mallinfo();\n"
+msgstr ""
+" printf(\"\\en============== After freeing blocks ==============\\en\");\n"
+" display_mallinfo();\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:31
-msgid "B<int mallopt(int >I<param>B<, int >I<value>B<);>"
-msgstr "B<int mallopt(int >I<param>B<, int >I<value>B<);>"
+#: build/C/man3/mallinfo.3:269 build/C/man3/malloc_info.3:255
+#: build/C/man3/mallopt.3:553 build/C/man3/mcheck.3:203
+#: build/C/man2/mmap.2:714 build/C/man2/memfd_create.2:437
+#: build/C/man2/memfd_create.2:486
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:42
+#: build/C/man3/mallinfo.3:279
msgid ""
-"The B<mallopt>() function adjusts parameters that control the behavior of "
-"the memory-allocation functions (see B<malloc>(3)). The I<param> argument "
-"specifies the parameter to be modified, and I<value> specifies the new value "
-"for that parameter."
+"B<mmap>(2), B<malloc>(3), B<malloc_info>(3), B<malloc_stats>(3), "
+"B<malloc_trim>(3), B<mallopt>(3)"
msgstr ""
+"B<mmap>(2), B<malloc>(3), B<malloc_info>(3), B<malloc_stats>(3), "
+"B<malloc_trim>(3), B<mallopt>(3)"
-#. type: Plain text
-#: build/C/man3/mallopt.3:45
-msgid "The following values can be specified for I<param>:"
-msgstr "I<param> には以下の値を指定することができる。"
+#. type: TH
+#: build/C/man3/malloc_get_state.3:25
+#, no-wrap
+msgid "MALLOC_GET_STATE"
+msgstr "MALLOC_GET_STATE"
-#. type: TP
-#: build/C/man3/mallopt.3:45
+#. type: TH
+#: build/C/man3/malloc_get_state.3:25 build/C/man3/malloc_usable_size.3:25
#, no-wrap
-msgid "B<M_CHECK_ACTION>"
-msgstr "B<M_CHECK_ACTION>"
+msgid "2014-06-13"
+msgstr "2014-06-13"
#. type: Plain text
-#: build/C/man3/mallopt.3:51
+#: build/C/man3/malloc_get_state.3:28
msgid ""
-"Setting this parameter controls how glibc responds when various kinds of "
-"programming errors are detected (e.g., freeing the same pointer twice). The "
-"3 least significant bits (2, 1, and 0) of the value assigned to this "
-"parameter determine the glibc behavior, as follows:"
-msgstr ""
+"malloc_get_state, malloc_set_state - record and restore state of malloc "
+"implementation"
+msgstr "malloc_get_state, malloc_set_state - malloc 実装の状態を保存/復元する"
-#. type: TP
-#: build/C/man3/mallopt.3:52
+#. type: Plain text
+#: build/C/man3/malloc_get_state.3:31 build/C/man3/malloc_hook.3:18
+#: build/C/man3/malloc_info.3:31 build/C/man3/posix_memalign.3:41
#, no-wrap
-msgid "Bit 0"
-msgstr "Bit 0"
+msgid "B<#include E<lt>malloc.hE<gt>>\n"
+msgstr "B<#include E<lt>malloc.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:62
-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 "
-"detected\\ ***\", followed by the program name, the name of the memory-"
-"allocation function in which the error was detected, a brief description of "
-"the error, and the memory address where the error was detected."
-msgstr ""
+#: build/C/man3/malloc_get_state.3:33
+#, no-wrap
+msgid "B<void* malloc_get_state(void);>\n"
+msgstr "B<void* malloc_get_state(void);>\n"
-#. type: TP
-#: build/C/man3/mallopt.3:62
+#. type: Plain text
+#: build/C/man3/malloc_get_state.3:35
#, no-wrap
-msgid "Bit 1"
-msgstr "Bit 1"
+msgid "B<int malloc_set_state(void *>I<state>B<);>\n"
+msgstr "B<int malloc_set_state(void *>I<state>B<);>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:77
+#: build/C/man3/malloc_get_state.3:53
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 "
-"since 2.4, if bit 0 is also set, then, between printing the error message "
-"and aborting, the program also prints a stack trace in the manner of "
-"B<backtrace>(3), and prints the process's memory mapping in the style of I</"
-"proc/[pid]/maps> (see B<proc>(5))."
+"The B<malloc_get_state>() function records the current state of all "
+"B<malloc>(3) internal bookkeeping variables (but not the actual contents of "
+"the heap or the state of B<malloc_hook>(3) functions pointers). The state "
+"is recorded in a system-dependent opaque data structure dynamically "
+"allocated via B<malloc>(3), and a pointer to that data structure is returned "
+"as the function result. (It is the caller's responsibility to B<free>(3) "
+"this memory.)"
msgstr ""
-
-#. type: TP
-#: build/C/man3/mallopt.3:77
-#, no-wrap
-msgid "Bit 2 (since glibc 2.4)"
-msgstr "Bit 2 (glibc 2.4 以降)"
+"B<malloc_get_state>() 関数は B<malloc>(3) 内部のすべての管理用変数を記録する "
+"(ただし、 ヒープの実際の内容と B<malloc_hook>(3) 関数ポインターの状態は記録さ"
+"れない)。 状態は B<malloc>(3) で動的に確保されたシステム依存の opaque な (内"
+"部構造は分からない) データ構造体に記録され、 関数の結果としてそのデータ構造体"
+"へのポインターが返される (このメモリーは呼び出し元が責任をもって B<free>(3) "
+"する必要がある)。"
#. type: Plain text
-#: build/C/man3/mallopt.3:84
+#: build/C/man3/malloc_get_state.3:61
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 "
-"name of the function where the error was detected and the brief description "
-"of the error."
+"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 "
+"structure pointed to by I<state>."
msgstr ""
+"B<malloc_set_state>() 関数は、 B<malloc>(3) 内部のすべての管理用変数を "
+"I<state> が指す opaque なデータ構造体から復元する。"
#. type: Plain text
-#: build/C/man3/mallopt.3:89
-msgid "The remaining bits in I<value> are ignored."
+#: 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 "
+"for the data structure), B<malloc_get_state>() returns NULL."
msgstr ""
+"成功すると、 B<malloc_get_state>() は新しく割り当てられたデータ構造体へのポイ"
+"ンターを返す。 エラーの場合 (例えば、データ構造体に必要なメモリーが割り当てら"
+"れなかったなど)、 B<malloc_get_state>() は NULL を返す。"
+#. if(ms->magic != MALLOC_STATE_MAGIC) return -1;
+#. /* 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/mallopt.3:93
+#: build/C/man3/malloc_get_state.3:86
msgid ""
-"Combining the above details, the following numeric values are meaningful for "
-"B<M_CHECK_ACTION>:"
+"On success, B<malloc_set_state>() returns 0. If the implementation detects "
+"that I<state> does not point to a correctly formed data structure, "
+"B<malloc_set_state>() returns -1. If the implementation detects that the "
+"version of the data structure referred to by I<state> is a more recent "
+"version than this implementation knows about, B<malloc_set_state>() returns "
+"-2."
msgstr ""
+"成功すると、 B<malloc_set_state>() は 0 を返す。 実装が I<state> が正しく作成"
+"されたデータ構造体を指していないと検出した場合、 B<malloc_set_state>() は -1 "
+"を返す。 I<state> が参照するデータ構造体のバージョンがこの実装が認識するバー"
+"ジョンよりも新しいと実装が検出した場合、 B<malloc_set_state>() は -2 を返す。"
-#. type: IP
-#: build/C/man3/mallopt.3:94
-#, no-wrap
-msgid "0"
-msgstr ""
+#. type: Plain text
+#: 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 "これらの関数は GNU による拡張である。"
#. type: Plain text
-#: build/C/man3/mallopt.3:96
-msgid "Ignore error conditions; continue execution (with undefined results)."
+#: build/C/man3/malloc_get_state.3:94
+msgid ""
+"These functions are useful when using this B<malloc>(3) implementation as "
+"part of a shared library, and the heap contents are saved/restored via some "
+"other method. This technique is used by GNU Emacs to implement its \"dumping"
+"\" function."
msgstr ""
+"これらの関数が役に立つのは、 この B<malloc>(3) の実装が共有ライブラリの一部と"
+"して使用され、 ヒープの内容が何か他の方法で保存/復元される場合である。 この手"
+"法は GNU Emacs が「ダンプ」関数 (\"dumping\" function) を実装するのに使用され"
+"ている。"
-#. type: IP
-#: build/C/man3/mallopt.3:96
-#, no-wrap
-msgid "1"
-msgstr "1"
-
+#. i.e., calls __malloc_check_init()
+#. i.e., malloc checking is not already in use
+#. and the caller requested malloc checking
#. type: Plain text
-#: build/C/man3/mallopt.3:98
-msgid "Print a detailed error message and continue execution."
+#: 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 "
+"B<malloc_get_state>() was called, then B<malloc_set_state>() resets malloc "
+"checking hooks if possible; if malloc checking was not in use in the "
+"recorded state, but the caller has requested malloc checking, then the hooks "
+"are reset to 0."
msgstr ""
+"これらの関数がフック関数ポインターの保存と復元を行うことはない。 ただし、 2 "
+"つ例外がある。 B<malloc_get_state>() が呼び出された際に malloc チェック "
+"(B<mallopt>(3) 参照) が使用中の場合、 B<malloc_set_state>() は可能なら "
+"malloc チェックフックをリセットする。 また、 保存された状態の malloc チェック"
+"が使用中でないが、 呼び出し元が malloc チェックを要求していた場合、 フックは "
+"0 にリセットされる。"
-#. type: IP
-#: build/C/man3/mallopt.3:98
+#. type: Plain text
+#: build/C/man3/malloc_get_state.3:114
+msgid "B<malloc>(3), B<mallopt>(3)"
+msgstr "B<malloc>(3), B<mallopt>(3)"
+
+#. type: TH
+#: build/C/man3/malloc_hook.3:10
#, no-wrap
-msgid "2"
-msgstr "2"
+msgid "MALLOC_HOOK"
+msgstr "MALLOC_HOOK"
+
+#. type: TH
+#: build/C/man3/malloc_hook.3:10
+#, no-wrap
+msgid "2010-10-13"
+msgstr "2010-10-13"
#. type: Plain text
-#: build/C/man3/mallopt.3:100
-msgid "Abort the program."
+#: 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 ""
+"__malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, "
+"__realloc_hook, __after_morecore_hook - malloc デバッグ用の変数"
-#. type: IP
-#: build/C/man3/mallopt.3:100
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:20
#, no-wrap
-msgid "3"
-msgstr ""
+msgid "B<void *(*__malloc_hook)(size_t >I<size>B<, const void *>I<caller>B<);>\n"
+msgstr "B<void *(*__malloc_hook)(size_t >I<size>B<, const void *>I<caller>B<);>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:103
-msgid ""
-"Print detailed error message, stack trace, and memory mappings, and abort "
-"the program."
-msgstr ""
+#: 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 *>I<caller>B<);>\n"
+msgstr "B<void *(*__realloc_hook)(void *>I<ptr>B<, size_t >I<size>B<, const void *>I<caller>B<);>\n"
-#. type: IP
-#: build/C/man3/mallopt.3:103
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:26
#, no-wrap
-msgid "5"
+msgid ""
+"B<void *(*__memalign_hook)(size_t >I<alignment>B<, size_t >I<size>B<,>\n"
+"B< const void *>I<caller>B<);>\n"
msgstr ""
+"B<void *(*__memalign_hook)(size_t >I<alignment>B<, size_t >I<size>B<,>\n"
+"B< const void *>I<caller>B<);>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:105
-msgid "Print a simple error message and continue execution."
-msgstr ""
+#: 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 "B<void (*__free_hook)(void *>I<ptr>B<, const void *>I<caller>B<);>\n"
-#. type: IP
-#: build/C/man3/mallopt.3:105
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:30
#, no-wrap
-msgid "7"
-msgstr ""
+msgid "B<void (*__malloc_initialize_hook)(void);>\n"
+msgstr "B<void (*__malloc_initialize_hook)(void);>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:108
-msgid ""
-"Print simple error message, stack trace, and memory mappings, and abort the "
-"program."
-msgstr ""
+#: build/C/man3/malloc_hook.3:32
+#, no-wrap
+msgid "B<void (*__after_morecore_hook)(void);>\n"
+msgstr "B<void (*__after_morecore_hook)(void);>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:114
+#: build/C/man3/malloc_hook.3:43
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."
+"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. "
+"You can use these hooks to help you debug programs that use dynamic memory "
+"allocation, for example."
msgstr ""
+"GNU C ライブラリでは、適切なフック関数 (hook function) を指定することで "
+"B<malloc>(3), B<realloc>(3), B<free>(3) の動作を変更することができる。例え"
+"ば、動的にメモリー割り当てを行う プログラムのデバッグにこれらのフックを使うこ"
+"とができる。"
#. type: Plain text
-#: build/C/man3/mallopt.3:119
+#: build/C/man3/malloc_hook.3:50
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 "
-"hard to track down."
+"The variable B<__malloc_initialize_hook> points at a function that is called "
+"once when the malloc implementation is initialized. This is a weak "
+"variable, so it can be overridden in the application with a definition like "
+"the following:"
msgstr ""
+"変数 B<__malloc_initialize_hook> は malloc の実装が初期化される際に一度だけ呼"
+"ばれる関数へのポインターである。 この変数は書き換え可能 (weak) であり、アプリ"
+"ケーション内で 以下のような定義で上書きできる:"
-#. type: TP
-#: build/C/man3/mallopt.3:119
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:53
#, no-wrap
-msgid "B<M_MMAP_MAX>"
-msgstr "B<M_MMAP_MAX>"
+msgid " void (*__malloc_initialize_hook)(void) = my_init_hook;\n"
+msgstr " void (*__malloc_initialize_hook)(void) = my_init_hook;\n"
-#. The following text adapted from comments in the glibc source:
#. type: Plain text
-#: build/C/man3/mallopt.3:129
+#: build/C/man3/malloc_hook.3:58
msgid ""
-"This parameter specifies the maximum number of allocation requests that may "
-"be simultaneously serviced using B<mmap>(2). This parameter exists because "
-"some systems have a limited number of internal tables for use by B<mmap>(2), "
-"and using more than a few of them may degrade performance."
+"Now the function I<my_init_hook>() can do the initialization of all hooks."
msgstr ""
+"なお、関数 I<my_init_hook>() で全てのフックの初期化をすることができる。"
#. type: Plain text
-#: build/C/man3/mallopt.3:136
+#: build/C/man3/malloc_hook.3:74
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 "
-"use of B<mmap>(2) for servicing large allocation requests."
+"The four functions pointed to by B<__malloc_hook>, B<__realloc_hook>, "
+"B<__memalign_hook>, B<__free_hook> have a prototype like the functions "
+"B<malloc>(3), B<realloc>(3), B<memalign>(3), B<free>(3), respectively, "
+"except that they have a final argument I<caller> that gives the address of "
+"the caller of B<malloc>(3), etc."
msgstr ""
+"B<__malloc_hook>, B<__realloc_hook>, B<__memalign_hook>, B<__free_hook> で指"
+"される 4 つの関数は、各々 B<malloc>(3), B<realloc>(3), B<memalign>(3), "
+"B<free>(3) とよく似たプロトタイプを持っているが、 一番最後の引き数 "
+"I<caller> をとる点が異なる。 引き数 I<caller> には、 B<malloc>(3) などの呼び"
+"出し元 (caller) のアドレスが格納される。"
-#. type: TP
-#: build/C/man3/mallopt.3:136
-#, no-wrap
-msgid "B<M_MMAP_THRESHOLD>"
-msgstr "B<M_MMAP_THRESHOLD>"
+#. type: Plain text
+#: 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."
+msgstr ""
+"変数 B<__after_morecore_hook> は、領域の追加要求があり B<sbrk>(2) が呼ばれた"
+"後で毎回呼び出される関数へのポインターである。"
+#. https://bugzilla.redhat.com/show_bug.cgi?id=450187
+#. http://sourceware.org/bugzilla/show_bug.cgi?id=9957
#. type: Plain text
-#: build/C/man3/mallopt.3:145
+#: build/C/man3/malloc_hook.3:89
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 memory-"
-"allocation functions employ B<mmap>(2) instead of increasing the program "
-"break using B<sbrk>(2)."
+"The use of these hook functions is not safe in multithreaded programs, and "
+"they are now deprecated. Programmers should instead preempt calls to the "
+"relevant functions by defining and exporting functions such as \"malloc\" "
+"and \"free\"."
msgstr ""
+"マルチスレッドプログラムでは、 これらのフック関数の使用は安全ではなく、 今で"
+"は非推奨である。 プログラマは、 \"malloc\" や \"free\" のような関数を定義して"
+"公開して、 関連する関数を呼び出すようにすべきである。"
+
+#. type: Plain text
+#: 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/mallopt.3:165
+#: build/C/man3/malloc_hook.3:95
+#, no-wrap
msgid ""
-"Allocating memory using B<mmap>(2) has the significant advantage that the "
-"allocated memory blocks can always be independently released back to the "
-"system. (By contrast, the heap can be trimmed only if memory is freed at "
-"the top end.) On the other hand, there are some disadvantages to the use of "
-"B<mmap>(2): deallocated space is not placed on the free list for reuse by "
-"later allocations; memory may be wasted because B<mmap>(2) allocations must "
-"be page-aligned; and the kernel must perform the expensive task of zeroing "
-"out memory allocated via B<mmap>(2). Balancing these factors leads to a "
-"default setting of 128*1024 for the B<M_MMAP_THRESHOLD> parameter."
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>malloc.hE<gt>\n"
msgstr ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>malloc.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:172
+#: build/C/man3/malloc_hook.3:99
+#, no-wrap
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 "
-"I<4*1024*1024*sizeof(long)> on 64-bit systems."
+"/* Prototypes for our hooks. */\n"
+"static void my_init_hook(void);\n"
+"static void *my_malloc_hook(size_t, const void *);\n"
msgstr ""
+"/* 使おうとするフックのプロトタイプ宣言 */\n"
+"static void my_init_hook(void);\n"
+"static void *my_malloc_hook(size_t, const void *);\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:190
+#: build/C/man3/malloc_hook.3:102
+#, no-wrap
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 "
-"current threshold and less than or equal to B<DEFAULT_MMAP_THRESHOLD_MAX> "
-"are freed, the threshold is adjusted upwards to the size of the freed "
-"block. When dynamic mmap thresholding is in effect, the threshold for "
-"trimming the heap is also dynamically adjusted to be twice the dynamic mmap "
-"threshold. Dynamic adjustment of the mmap threshold is disabled if any of "
-"the B<M_TRIM_THRESHOLD>, B<M_TOP_PAD>, B<M_MMAP_THRESHOLD>, or B<M_MMAP_MAX> "
-"parameters is set."
+"/* Variables to save original hooks. */\n"
+"static void *(*old_malloc_hook)(size_t, const void *);\n"
msgstr ""
+"/* 元々のフックを保存するための変数 */\n"
+"static void *(*old_malloc_hook)(size_t, const void *);\n"
-#. type: TP
-#: build/C/man3/mallopt.3:190
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:105
#, no-wrap
-msgid "B<M_MXFAST> (since glibc 2.3)"
-msgstr "B<M_MXFAST> (glibc 2.3 以降)"
+msgid ""
+"/* Override initializing hook from the C library. */\n"
+"void (*__malloc_initialize_hook) (void) = my_init_hook;\n"
+msgstr ""
+"/* C ライブラリから呼ばれる初期化フックを上書きする */\n"
+"void (*__malloc_initialize_hook) (void) = my_init_hook;\n"
-#. The following text adapted from comments in the glibc sources:
#. type: Plain text
-#: build/C/man3/mallopt.3:210
+#: build/C/man3/malloc_hook.3:112
+#, no-wrap
msgid ""
-"Set the upper limit for memory allocation requests that are satisfied using "
-"\"fastbins\". (The measurement unit for this parameter is bytes.) Fastbins "
-"are storage areas that hold deallocated blocks of memory of the same size "
-"without merging adjacent free blocks. Subsequent reallocation of blocks of "
-"the same size can be handled very quickly by allocating from the fastbin, "
-"although memory fragmentation and the overall memory footprint of the "
-"program can increase. The default value for this parameter is I<64*sizeof"
-"(size_t)/4> (i.e., 64 on 32-bit architectures). The range for this "
-"parameter is 0 to I<80*sizeof(size_t)/4>. Setting B<M_MXFAST> to 0 disables "
-"the use of fastbins."
+"static void\n"
+"my_init_hook(void)\n"
+"{\n"
+" old_malloc_hook = __malloc_hook;\n"
+" __malloc_hook = my_malloc_hook;\n"
+"}\n"
msgstr ""
+"static void\n"
+"my_init_hook(void)\n"
+"{\n"
+" old_malloc_hook = __malloc_hook;\n"
+" __malloc_hook = my_malloc_hook;\n"
+"}\n"
-#. type: TP
-#: build/C/man3/mallopt.3:210
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:117
#, no-wrap
-msgid "B<M_PERTURB> (since glibc 2.4)"
-msgstr "B<M_PERTURB> (glibc 2.4 以降)"
+msgid ""
+"static void *\n"
+"my_malloc_hook(size_t size, const void *caller)\n"
+"{\n"
+" void *result;\n"
+msgstr ""
+"static void *\n"
+"my_malloc_hook(size_t size, const void *caller)\n"
+"{\n"
+" void *result;\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:225
+#: build/C/man3/malloc_hook.3:120
+#, no-wrap
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 "
-"of the value in the least significant byte of I<value>, and when allocated "
-"memory is released using B<free>(3), the freed bytes are set to the least "
-"significant byte of I<value>. This can be useful for detecting errors where "
-"programs incorrectly rely on allocated memory being initialized to zero, or "
-"reuse values in memory that has already been freed."
+" /* Restore all old hooks */\n"
+" __malloc_hook = old_malloc_hook;\n"
msgstr ""
+" /* 元々のフックを全て戻す */\n"
+" __malloc_hook = old_malloc_hook;\n"
-#. type: TP
-#: build/C/man3/mallopt.3:225
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:123
#, no-wrap
-msgid "B<M_TOP_PAD>"
+msgid ""
+" /* Call recursively */\n"
+" result = malloc(size);\n"
msgstr ""
+" /* malloc の再帰的呼び出し */\n"
+" result = malloc(size);\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:232
+#: build/C/man3/malloc_hook.3:126
+#, no-wrap
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 parameter "
-"is bytes.) This parameter has an effect in the following circumstances:"
+" /* Save underlying hooks */\n"
+" old_malloc_hook = __malloc_hook;\n"
msgstr ""
+" /* 現在設定されているフック (underlying hook) を保存する */\n"
+" old_malloc_hook = __malloc_hook;\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:239
+#: build/C/man3/malloc_hook.3:130
+#, no-wrap
msgid ""
-"When the program break is increased, then B<M_TOP_PAD> bytes are added to "
-"the B<sbrk>(2) request."
+" /* printf() might call malloc(), so protect it too. */\n"
+" printf(\"malloc(%u) called from %p returns %p\\en\",\n"
+" (unsigned int) size, caller, result);\n"
msgstr ""
+" /* printf() は malloc() を呼び出す可能性があるので\n"
+" ここでもガードを行う (元々のフックのままにしておく) */\n"
+" printf(\"malloc(%u) called from %p returns %p\\en\",\n"
+" (unsigned int) size, caller, result);\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:245
+#: build/C/man3/malloc_hook.3:133
+#, no-wrap
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 "
-"top of the heap."
+" /* Restore our own hooks */\n"
+" __malloc_hook = my_malloc_hook;\n"
msgstr ""
+" /* ユーザーが使おうとするフックを再設定する */\n"
+" __malloc_hook = my_malloc_hook;\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:249
+#: build/C/man3/malloc_hook.3:136
+#, no-wrap
msgid ""
-"In either case, the amount of padding is always rounded to a system page "
-"boundary."
+" return result;\n"
+"}\n"
msgstr ""
+" return result;\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_hook.3:142
+msgid "B<mallinfo>(3), B<malloc>(3), B<mcheck>(3), B<mtrace>(3)"
+msgstr "B<mallinfo>(3), B<malloc>(3), B<mcheck>(3), B<mtrace>(3)"
+
+#. type: TH
+#: build/C/man3/malloc_info.3:25
+#, no-wrap
+msgid "MALLOC_INFO"
+msgstr "MALLOC_INFO"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:28
+msgid "malloc_info - export malloc state to a stream"
+msgstr "malloc_info - malloc の状態をストリームに出力する"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:33
+#, no-wrap
+msgid "B<int malloc_info(int >I<options>B<, FILE *>I<stream>B<);>\n"
+msgstr "B<int malloc_info(int >I<options>B<, FILE *>I<stream>B<);>\n"
+
+#. type: Plain text
+#: 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 "
+"string is printed on the file stream I<stream>. The exported string "
+"includes information about all arenas (see B<malloc>(3))."
+msgstr ""
+"B<malloc_info>() 関数は、 呼び出し元のメモリー割り当て実装の現在の状態を表す "
+"XML 文字列を出力する。 文字列は、 ファイルストリーム I<stream> に出力され"
+"る。 出力された文字列には、 全ての割り当て領域の情報が含まれる (B<malloc>(3) "
+"参照)。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:48
+msgid "As currently implemented, I<options> must be zero."
+msgstr "現在の実装では、 I<options> は 0 でなければならない。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:55
+msgid ""
+"On success, B<malloc_info>() returns 0; on error, it returns -1, with "
+"I<errno> set to indicate the cause."
+msgstr ""
+"B<malloc_info>() は、成功すると 0 を返す。 エラーの場合、-1 を返し、 "
+"I<errno> にエラーの原因を示す値を設定する。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:60
+msgid "I<options> was nonzero."
+msgstr "I<options> が 0 でなかった。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:63
+msgid "B<malloc_info>() was added to glibc in version 2.10."
+msgstr "B<malloc_info>() は glibc バージョン 2.10 で追加された。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:65 build/C/man3/malloc_stats.3:57
+#: build/C/man3/malloc_trim.3:62 build/C/man3/malloc_usable_size.3:55
+msgid "This function is a GNU extension."
+msgstr "この関数は GNU による拡張である。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:71
+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 "
+"changes in the underlying implementation). The output XML string includes a "
+"version field."
+msgstr ""
+"メモリー割り当て情報は (C の構造体ではなく) XML 文字列として提供される。 これ"
+"は、 この情報は時間をたつと (内部で使用している実装によって) 変わる可能性があ"
+"るからである。 出力される XML 文字列にはバージョンフィールドが付いている。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:77
+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 ""
+"B<open_memstream>(3) 関数を使うと、 B<malloc_info>() の出力を、 ファイルでは"
+"なくメモリー内のバッファーに直接送ることができる。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:84
+msgid ""
+"The B<malloc_info>() function is designed to address deficiencies in "
+"B<malloc_stats>(3) and B<mallinfo>(3)."
+msgstr ""
+"B<malloc_info>() 関数は、 B<malloc_stats>(3) と B<mallinfo>(3) の不備を解決す"
+"るために設定された。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:95
+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 "
+"threads that the program should create. All of the threads, including the "
+"main thread, allocate the number of blocks of memory specified by the second "
+"argument. The third argument controls the size of the blocks to be "
+"allocated. The main thread creates blocks of this size, the second thread "
+"created by the program allocates blocks of twice this size, the third thread "
+"allocates blocks of three times this size, and so on."
+msgstr ""
+"以下のプログラムは最大で 4 つのコマンドライン引数を取り、 最初の 3 つは必須で"
+"ある。 最初の引数は、このプログラムが生成するスレッド数を指定する。 メインス"
+"レッドを含む全てのスレッドが第 2 引数で指定した数のメモリーブロックの割り当て"
+"を行う。 第 3 引数は割り当てるブロックのサイズを制御する。 メインスレッドはこ"
+"のサイズのブロックを作成し、 このプログラムが生成する 2 番目のスレッドはこの"
+"サイズの 2 倍のサイズのブロックを、 3 番目のスレッドはこのサイズの 3 倍のサイ"
+"ズのブロックを割り当て、 以下同様である。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:102
+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 "
+"allocated. The second call is performed after all threads have allocated "
+"memory."
+msgstr ""
+"このプログラムは B<malloc_info>() を 2 回呼び出し、メモリー割り当て状態を表示"
+"する。 最初の呼び出しはスレッドの生成もメモリーの割り当ても行われる前に実行さ"
+"れる。 2 回目の呼び出しは全てのスレッドがメモリー割り当てを行った後に実行され"
+"る。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:110
+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 "
+"allocate 10000 blocks of memory. After the blocks of memory have been "
+"allocated, B<malloc_info>() shows the state of two allocation arenas."
+msgstr ""
+"以下の例では、 コマンドライン引数で、 追加でスレッドを一つ生成し、メインス"
+"レッドと追加のスレッドの両方が 10000 個のメモリーブロックを割り当てるように指"
+"定している。 メモリーブロックの割り当て後の B<malloc_info>() では、 2 つの割"
+"り当て領域の状態が表示されている。"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:135
+#, no-wrap
+msgid ""
+"$ B<getconf GNU_LIBC_VERSION>\n"
+"glibc 2.13\n"
+"$ B<./a.out 1 10000 100>\n"
+"============ Before allocating blocks ============\n"
+"E<lt>malloc version=\"1\"E<gt>\n"
+"E<lt>heap nr=\"0\"E<gt>\n"
+"E<lt>sizesE<gt>\n"
+"E<lt>/sizesE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"135168\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"135168\"/E<gt>\n"
+"E<lt>/heapE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"135168\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"135168\"/E<gt>\n"
+"E<lt>/mallocE<gt>\n"
+msgstr ""
+"$ B<getconf GNU_LIBC_VERSION>\n"
+"glibc 2.13\n"
+"$ B<./a.out 1 10000 100>\n"
+"============ Before allocating blocks ============\n"
+"E<lt>malloc version=\"1\"E<gt>\n"
+"E<lt>heap nr=\"0\"E<gt>\n"
+"E<lt>sizesE<gt>\n"
+"E<lt>/sizesE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"135168\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"135168\"/E<gt>\n"
+"E<lt>/heapE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"135168\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"135168\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"135168\"/E<gt>\n"
+"E<lt>/mallocE<gt>\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:165
+#, no-wrap
+msgid ""
+"============ After allocating blocks ============\n"
+"E<lt>malloc version=\"1\"E<gt>\n"
+"E<lt>heap nr=\"0\"E<gt>\n"
+"E<lt>sizesE<gt>\n"
+"E<lt>/sizesE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"1081344\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"1081344\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"1081344\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"1081344\"/E<gt>\n"
+"E<lt>/heapE<gt>\n"
+"E<lt>heap nr=\"1\"E<gt>\n"
+"E<lt>sizesE<gt>\n"
+"E<lt>/sizesE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"1032192\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"1032192\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"1032192\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"1032192\"/E<gt>\n"
+"E<lt>/heapE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"2113536\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"2113536\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"2113536\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"2113536\"/E<gt>\n"
+"E<lt>/mallocE<gt>\n"
+msgstr ""
+"============ After allocating blocks ============\n"
+"E<lt>malloc version=\"1\"E<gt>\n"
+"E<lt>heap nr=\"0\"E<gt>\n"
+"E<lt>sizesE<gt>\n"
+"E<lt>/sizesE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"1081344\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"1081344\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"1081344\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"1081344\"/E<gt>\n"
+"E<lt>/heapE<gt>\n"
+"E<lt>heap nr=\"1\"E<gt>\n"
+"E<lt>sizesE<gt>\n"
+"E<lt>/sizesE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"1032192\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"1032192\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"1032192\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"1032192\"/E<gt>\n"
+"E<lt>/heapE<gt>\n"
+"E<lt>total type=\"fast\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>total type=\"rest\" count=\"0\" size=\"0\"/E<gt>\n"
+"E<lt>system type=\"current\" size=\"2113536\"/E<gt>\n"
+"E<lt>system type=\"max\" size=\"2113536\"/E<gt>\n"
+"E<lt>aspace type=\"total\" size=\"2113536\"/E<gt>\n"
+"E<lt>aspace type=\"mprotect\" size=\"2113536\"/E<gt>\n"
+"E<lt>/mallocE<gt>\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:175
+#, no-wrap
+msgid ""
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>malloc.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+msgstr ""
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>malloc.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:178
+#, no-wrap
+msgid ""
+"static size_t blockSize;\n"
+"static int numThreads, numBlocks;\n"
+msgstr ""
+"static size_t blockSize;\n"
+"static int numThreads, numBlocks;\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:181 build/C/man2/memfd_create.2:368
+#: build/C/man2/memfd_create.2:450
+#, no-wrap
+msgid ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+msgstr ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:187
+#, no-wrap
+msgid ""
+"static void *\n"
+"thread_func(void *arg)\n"
+"{\n"
+" int j;\n"
+" int tn = (int) arg;\n"
+msgstr ""
+"static void *\n"
+"thread_func(void *arg)\n"
+"{\n"
+" int j;\n"
+" int tn = (int) arg;\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:190
+#, no-wrap
+msgid ""
+" /* The multiplier \\(aq(2 + tn)\\(aq ensures that each thread (including\n"
+" the main thread) allocates a different amount of memory */\n"
+msgstr ""
+" /* The multiplier \\(aq(2 + tn)\\(aq ensures that each thread (including\n"
+" the main thread) allocates a different amount of memory */\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:194
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> numBlocks; j++)\n"
+" if (malloc(blockSize * (2 + tn)) == NULL)\n"
+" errExit(\"malloc-thread\");\n"
+msgstr ""
+" for (j = 0; j E<lt> numBlocks; j++)\n"
+" if (malloc(blockSize * (2 + tn)) == NULL)\n"
+" errExit(\"malloc-thread\");\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:198
+#, no-wrap
+msgid ""
+" sleep(100); /* Sleep until main thread terminates */\n"
+" return NULL;\n"
+"}\n"
+msgstr ""
+" sleep(100); /* Sleep until main thread terminates */\n"
+" return NULL;\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:204
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int j, tn, sleepTime;\n"
+" pthread_t *thr;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int j, tn, sleepTime;\n"
+" pthread_t *thr;\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:211
+#, no-wrap
+msgid ""
+" if (argc E<lt> 4) {\n"
+" fprintf(stderr,\n"
+" \"%s num-threads num-blocks block-size [sleep-time]\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (argc E<lt> 4) {\n"
+" fprintf(stderr,\n"
+" \"%s num-threads num-blocks block-size [sleep-time]\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:216
+#, no-wrap
+msgid ""
+" numThreads = atoi(argv[1]);\n"
+" numBlocks = atoi(argv[2]);\n"
+" blockSize = atoi(argv[3]);\n"
+" sleepTime = (argc E<gt> 4) ? atoi(argv[4]) : 0;\n"
+msgstr ""
+" numThreads = atoi(argv[1]);\n"
+" numBlocks = atoi(argv[2]);\n"
+" blockSize = atoi(argv[3]);\n"
+" sleepTime = (argc E<gt> 4) ? atoi(argv[4]) : 0;\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:220
+#, no-wrap
+msgid ""
+" thr = calloc(numThreads, sizeof(pthread_t));\n"
+" if (thr == NULL)\n"
+" errExit(\"calloc\");\n"
+msgstr ""
+" thr = calloc(numThreads, sizeof(pthread_t));\n"
+" if (thr == NULL)\n"
+" errExit(\"calloc\");\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:223
+#, no-wrap
+msgid ""
+" printf(\"============ Before allocating blocks ============\\en\");\n"
+" malloc_info(0, stdout);\n"
+msgstr ""
+" printf(\"============ Before allocating blocks ============\\en\");\n"
+" malloc_info(0, stdout);\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:225
+#, no-wrap
+msgid " /* Create threads that allocate different amounts of memory */\n"
+msgstr " /* Create threads that allocate different amounts of memory */\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:231
+#, no-wrap
+msgid ""
+" for (tn = 0; tn E<lt> numThreads; tn++) {\n"
+" errno = pthread_create(&thr[tn], NULL, thread_func,\n"
+" (void *) tn);\n"
+" if (errno != 0)\n"
+" errExit(\"pthread_create\");\n"
+msgstr ""
+" for (tn = 0; tn E<lt> numThreads; tn++) {\n"
+" errno = pthread_create(&thr[tn], NULL, thread_func,\n"
+" (void *) tn);\n"
+" if (errno != 0)\n"
+" errExit(\"pthread_create\");\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:236
+#, no-wrap
+msgid ""
+" /* If we add a sleep interval after the start-up of each\n"
+" thread, the threads likely won\\(aqt contend for malloc\n"
+" mutexes, and therefore additional arenas won\\(aqt be\n"
+" allocated (see malloc(3)). */\n"
+msgstr ""
+" /* If we add a sleep interval after the start-up of each\n"
+" thread, the threads likely won\\(aqt contend for malloc\n"
+" mutexes, and therefore additional arenas won\\(aqt be\n"
+" allocated (see malloc(3)). */\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:240
+#, no-wrap
+msgid ""
+" if (sleepTime E<gt> 0)\n"
+" sleep(sleepTime);\n"
+" }\n"
+msgstr ""
+" if (sleepTime E<gt> 0)\n"
+" sleep(sleepTime);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:242
+#, no-wrap
+msgid " /* The main thread also allocates some memory */\n"
+msgstr " /* The main thread also allocates some memory */\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:246
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> numBlocks; j++)\n"
+" if (malloc(blockSize) == NULL)\n"
+" errExit(\"malloc\");\n"
+msgstr ""
+" for (j = 0; j E<lt> numBlocks; j++)\n"
+" if (malloc(blockSize) == NULL)\n"
+" errExit(\"malloc\");\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:249
+#, no-wrap
+msgid ""
+" sleep(2); /* Give all threads a chance to\n"
+" complete allocations */\n"
+msgstr ""
+" sleep(2); /* Give all threads a chance to\n"
+" complete allocations */\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:252
+#, no-wrap
+msgid ""
+" printf(\"\\en============ After allocating blocks ============\\en\");\n"
+" malloc_info(0, stdout);\n"
+msgstr ""
+" printf(\"\\en============ After allocating blocks ============\\en\");\n"
+" malloc_info(0, stdout);\n"
+
+#. type: Plain text
+#: build/C/man3/malloc_info.3:262
+msgid ""
+"B<mallinfo>(3), B<malloc>(3), B<malloc_stats>(3), B<mallopt>(3), "
+"B<open_memstream>(3)"
+msgstr ""
+"B<mallinfo>(3), B<malloc>(3), B<malloc_stats>(3), B<mallopt>(3), "
+"B<open_memstream>(3)"
+
+#. type: TH
+#: build/C/man3/malloc_stats.3:26
+#, no-wrap
+msgid "MALLOC_STATS"
+msgstr "MALLOC_STATS"
+
+#. type: Plain text
+#: build/C/man3/malloc_stats.3:29
+msgid "malloc_stats - print memory allocation statistics"
+msgstr "malloc_stats - メモリー割り当ての統計を表示する"
+
+#. type: Plain text
+#: build/C/man3/malloc_stats.3:33
+msgid "B<void malloc_stats(void);>"
+msgstr "B<void malloc_stats(void);>"
+
+#. .SH VERSIONS
+#. Available already in glibc 2.0, possibly earlier
+#. type: Plain text
+#: 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 "
+"(allocation area), this function prints the total amount of memory allocated "
+"and the total number of bytes consumed by in-use allocations. (These two "
+"values correspond to the I<arena> and I<uordblks> fields retrieved by "
+"B<mallinfo>(3).) In addition, the function prints the sum of these two "
+"statistics for all arenas, and the maximum number of blocks and bytes that "
+"were ever simultaneously allocated using B<mmap>(2)."
+msgstr ""
+"B<malloc_stats>() 関数は B<malloc>(3) や関連する関数により割り当てられたメモ"
+"リーに関する統計を (標準エラーに) 出力する。 各領域 (割り当てエリア) につい"
+"て、 この関数は割り当てられているメモリーの総量と現在の割り当てが使用している"
+"総バイト数を出力する (これらの二つの値は B<mallinfo>(3) で取得できる "
+"I<arena> と I<uordblks> フィールドに対応している)。 また、この関数は、 すべて"
+"の領域のこれら二つの統計情報の合計値と、 B<mmap>(2) を使って同時に割り当てら"
+"れたブロック数とバイト数の最大値を表示する。"
+
+#. type: Plain text
+#: 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 ""
+"B<mallinfo>(3) を使用すると、 メイン領域のメモリー割り当てに関するより詳細な"
+"情報を取得できる。"
+
+#. type: Plain text
+#: 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 ""
+"B<mmap>(2), B<mallinfo>(3), B<malloc>(3), B<malloc_info>(3), B<mallopt>(3)"
+
+#. type: TH
+#: build/C/man3/malloc_trim.3:26
+#, no-wrap
+msgid "MALLOC_TRIM"
+msgstr "MALLOC_TRIM"
+
+#. type: TH
+#: build/C/man3/malloc_trim.3:26 build/C/man2/remap_file_pages.2:28
+#, no-wrap
+msgid "2014-05-28"
+msgstr "2014-05-28"
+
+#. type: Plain text
+#: build/C/man3/malloc_trim.3:29
+msgid "malloc_trim - release free memory from the top of the heap"
+msgstr "malloc_trim - ヒープの一番上から未使用メモリーを解放する"
+
+#. type: Plain text
+#: build/C/man3/malloc_trim.3:33
+msgid "B<int malloc_trim(size_t >I<pad>B<);>"
+msgstr "B<int malloc_trim(size_t >I<pad>B<);>"
+
+#. type: Plain text
+#: 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 ""
+"B<malloc_trim>() 関数は (適切な引き数で B<sbrk>(2) を呼び出して) ヒープの一番"
+"上の未使用メモリーの解放を試みる。"
+
+#. type: Plain text
+#: 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 "
+"memory is maintained at the top of the heap (i.e., one page or less). A "
+"nonzero argument can be used to maintain some trailing space at the top of "
+"the heap in order to allow future allocations to be made without having to "
+"extend the heap with B<sbrk>(2)."
+msgstr ""
+"I<pad> 引き数は、 ヒープの一番上から切り詰める際に残す未使用領域の量を指定す"
+"る。 この引き数が 0 の場合、 ヒープの一番上の最小量のメモリーだけを維持でき"
+"る (つまり 1 ページかそれ未満)。 0 以外の引き数を指定すると、 ヒープの一番上"
+"にある程度の量の未使用領域を残し、 将来の割り当てを B<sbrk>(2) でヒープを拡張"
+"せずに行えるようにできる。"
+
+#. type: Plain text
+#: 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."
+msgstr ""
+"B<malloc_trim>() 関数はメモリーが実際に解放されシステムに戻された場合に 1 を"
+"返し、 どのメモリーも解放できなかった場合は 0 を返す。"
+
+#. .SH VERSIONS
+#. Available already in glibc 2.0, possibly earlier
+#. type: Plain text
+#: build/C/man3/malloc_trim.3:60
+msgid "No errors are defined."
+msgstr "エラーは定義されていない。"
+
+#. type: Plain text
+#: 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 "
+"B<mallopt>(3)."
+msgstr ""
+"この関数は、 特定の状況では B<free>(3) により自動的に呼び出される。 "
+"B<mallopt>(3) の B<M_TOP_PAD> と B<M_TRIM_THRESHOLD> の議論を参照。"
+
+#. type: Plain text
+#: build/C/man3/malloc_trim.3:74
+msgid ""
+"This function cannot release free memory located at places other than the "
+"top of the heap."
+msgstr ""
+"この関数は、 ヒープの一番上以外の場所にある未使用メモリーを解放することはでき"
+"ない。"
+
+#. malloc/malloc.c::mTRIm():
+#. return result | (av == &main_arena ? sYSTRIm (pad, av) : 0);
+#. type: Plain text
+#: 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:82
+msgid "B<sbrk>(2), B<malloc>(3), B<mallopt>(3)"
+msgstr "B<sbrk>(2), B<malloc>(3), B<mallopt>(3)"
+
+#. type: TH
+#: build/C/man3/malloc_usable_size.3:25
+#, no-wrap
+msgid "MALLOC_USABLE_SIZE"
+msgstr "MALLOC_USABLE_SIZE"
+
+#. type: Plain text
+#: build/C/man3/malloc_usable_size.3:28
+msgid "malloc_usable_size - obtain size of block of memory allocated from heap"
+msgstr ""
+"malloc_usable_size - ヒープから確保したメモリーブロックのサイズを取得する"
+
+#. type: Plain text
+#: build/C/man3/malloc_usable_size.3:32
+msgid "B<size_t malloc_usable_size (void *>I<ptr>B<);>"
+msgstr "B<size_t malloc_usable_size (void *>I<ptr>B<);>"
+
+#. type: Plain text
+#: 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 "
+"B<malloc>(3) or a related function."
+msgstr ""
+"B<malloc_usable_size>() 関数は、 I<ptr> が指すブロックで使用可能なバイト数を"
+"返す。 I<ptr> は、B<malloc>(3) や同様の関数で割り当てられたメモリーブロックへ"
+"のポインターである。"
+
+#. type: Plain text
+#: 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 ""
+"B<malloc_usable_size>() は I<ptr> が指す割り当て済みメモリーブロックで使用可"
+"能なバイト数を返す。 I<ptr> が NULL の場合、 0 が返される。"
+
+#. type: Plain text
+#: build/C/man3/malloc_usable_size.3:53
+msgid "The B<malloc_usable_size>() function is thread-safe."
+msgstr "B<malloc_usable_size>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/malloc_usable_size.3:65
+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 "
+"constraints. Although the excess bytes can be overwritten by the "
+"application without ill effects, this is not good programming practice: the "
+"number of excess bytes in an allocation depends on the underlying "
+"implementation."
+msgstr ""
+"B<malloc_usable_size>() が返す値は、 要求された割り当てサイズよりも大きい場合"
+"がある。 これは、メモリーアラインメントと最小サイズの制約のためである。 この"
+"超過バイトをアプリケーションは悪影響なしで上書きすることができるが、 これを行"
+"うのはプログラミングマナーとしてはよいこととは言えない。 アプリケーションの超"
+"過バイトの量は、内部の実装に依存する。"
+
+#. type: Plain text
+#: build/C/man3/malloc_usable_size.3:67
+msgid "The main use of this function is for debugging and introspection."
+msgstr "この関数の主な使用目的はデバッグと内部調査である。"
+
+#. type: Plain text
+#: build/C/man3/malloc_usable_size.3:69
+msgid "B<malloc>(3)"
+msgstr "B<malloc>(3)"
+
+#. type: TH
+#: build/C/man3/mallopt.3:26
+#, no-wrap
+msgid "MALLOPT"
+msgstr "MALLOPT"
+
+#. type: TH
+#: build/C/man3/mallopt.3:26 build/C/man2/shmop.2:41
+#, no-wrap
+msgid "2014-07-08"
+msgstr "2014-07-08"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:29
+msgid "mallopt - set memory allocation parameters"
+msgstr "mallopt - メモリー割り当てパラメーターを設定する"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:33
+msgid "B<int mallopt(int >I<param>B<, int >I<value>B<);>"
+msgstr "B<int mallopt(int >I<param>B<, int >I<value>B<);>"
+
+#. type: Plain text
+#: 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 "
+"specifies the parameter to be modified, and I<value> specifies the new value "
+"for that parameter."
+msgstr ""
+"B<mallopt>() 関数は、メモリー割り当て関数 (B<malloc>(3) を参照) の動作を\n"
+"制御するパラメーターの調整を行う。\n"
+"I<param> 引き数で変更するパラメーターを指定し、\n"
+"I<value> 引き数でそのパラメーターの新しい値を指定する。"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:47
+msgid "The following values can be specified for I<param>:"
+msgstr "I<param> には以下の値を指定することができる。"
+
+#. type: TP
+#: build/C/man3/mallopt.3:47
+#, no-wrap
+msgid "B<M_CHECK_ACTION>"
+msgstr "B<M_CHECK_ACTION>"
+
+#. type: Plain text
+#: 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 "
+"3 least significant bits (2, 1, and 0) of the value assigned to this "
+"parameter determine the glibc behavior, as follows:"
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:54
+#, no-wrap
+msgid "Bit 0"
+msgstr "Bit 0"
+
+#. type: Plain text
+#: 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 "
+"detected\\ ***\", followed by the program name, the name of the memory-"
+"allocation function in which the error was detected, a brief description of "
+"the error, and the memory address where the error was detected."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:64
+#, no-wrap
+msgid "Bit 1"
+msgstr "Bit 1"
+
+#. type: Plain text
+#: 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 "
+"since 2.4, if bit 0 is also set, then, between printing the error message "
+"and aborting, the program also prints a stack trace in the manner of "
+"B<backtrace>(3), and prints the process's memory mapping in the style of I</"
+"proc/[pid]/maps> (see B<proc>(5))."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:79
+#, no-wrap
+msgid "Bit 2 (since glibc 2.4)"
+msgstr "Bit 2 (glibc 2.4 以降)"
+
+#. type: Plain text
+#: 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 "
+"name of the function where the error was detected and the brief description "
+"of the error."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:91
+msgid "The remaining bits in I<value> are ignored."
+msgstr ""
+
+#. type: Plain text
+#: 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:96
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:98
+msgid "Ignore error conditions; continue execution (with undefined results)."
+msgstr ""
+
+#. type: IP
+#: build/C/man3/mallopt.3:98
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:100
+msgid "Print a detailed error message and continue execution."
+msgstr ""
+
+#. type: IP
+#: build/C/man3/mallopt.3:100
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:102
+msgid "Abort the program."
+msgstr ""
+
+#. type: IP
+#: build/C/man3/mallopt.3:102
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: 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:105
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:107
+msgid "Print a simple error message and continue execution."
+msgstr ""
+
+#. type: IP
+#: build/C/man3/mallopt.3:107
+#, no-wrap
+msgid "7"
+msgstr "7"
+
+#. type: Plain text
+#: 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: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: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 "
+"hard to track down."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:121
+#, no-wrap
+msgid "B<M_MMAP_MAX>"
+msgstr "B<M_MMAP_MAX>"
+
+#. The following text adapted from comments in the glibc source:
+#. type: Plain text
+#: 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 "
+"some systems have a limited number of internal tables for use by B<mmap>(2), "
+"and using more than a few of them may degrade performance."
+msgstr ""
+
+#. type: Plain text
+#: 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 "
+"use of B<mmap>(2) for servicing large allocation requests."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:138
+#, no-wrap
+msgid "B<M_MMAP_THRESHOLD>"
+msgstr "B<M_MMAP_THRESHOLD>"
+
+#. type: Plain text
+#: 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 memory-"
+"allocation functions employ B<mmap>(2) instead of increasing the program "
+"break using B<sbrk>(2)."
+msgstr ""
+
+#. type: Plain text
+#: 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 "
+"system. (By contrast, the heap can be trimmed only if memory is freed at "
+"the top end.) On the other hand, there are some disadvantages to the use of "
+"B<mmap>(2): deallocated space is not placed on the free list for reuse by "
+"later allocations; memory may be wasted because B<mmap>(2) allocations must "
+"be page-aligned; and the kernel must perform the expensive task of zeroing "
+"out memory allocated via B<mmap>(2). Balancing these factors leads to a "
+"default setting of 128*1024 for the B<M_MMAP_THRESHOLD> parameter."
+msgstr ""
+
+#. type: Plain text
+#: 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 "
+"I<4*1024*1024*sizeof(long)> on 64-bit systems."
+msgstr ""
+
+#. type: Plain text
+#: 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 "
+"current threshold and less than or equal to B<DEFAULT_MMAP_THRESHOLD_MAX> "
+"are freed, the threshold is adjusted upward to the size of the freed block. "
+"When dynamic mmap thresholding is in effect, the threshold for trimming the "
+"heap is also dynamically adjusted to be twice the dynamic mmap threshold. "
+"Dynamic adjustment of the mmap threshold is disabled if any of the "
+"B<M_TRIM_THRESHOLD>, B<M_TOP_PAD>, B<M_MMAP_THRESHOLD>, or B<M_MMAP_MAX> "
+"parameters is set."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:192
+#, no-wrap
+msgid "B<M_MXFAST> (since glibc 2.3)"
+msgstr "B<M_MXFAST> (glibc 2.3 以降)"
+
+#. The following text adapted from comments in the glibc sources:
+#. type: Plain text
+#: 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 "
+"are storage areas that hold deallocated blocks of memory of the same size "
+"without merging adjacent free blocks. Subsequent reallocation of blocks of "
+"the same size can be handled very quickly by allocating from the fastbin, "
+"although memory fragmentation and the overall memory footprint of the "
+"program can increase. The default value for this parameter is "
+"I<64*sizeof(size_t)/4> (i.e., 64 on 32-bit architectures). The range for "
+"this parameter is 0 to I<80*sizeof(size_t)/4>. Setting B<M_MXFAST> to 0 "
+"disables the use of fastbins."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:212
+#, no-wrap
+msgid "B<M_PERTURB> (since glibc 2.4)"
+msgstr "B<M_PERTURB> (glibc 2.4 以降)"
+
+#. type: Plain text
+#: 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 "
+"of the value in the least significant byte of I<value>, and when allocated "
+"memory is released using B<free>(3), the freed bytes are set to the least "
+"significant byte of I<value>. This can be useful for detecting errors where "
+"programs incorrectly rely on allocated memory being initialized to zero, or "
+"reuse values in memory that has already been freed."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:227
+#, no-wrap
+msgid "B<M_TOP_PAD>"
+msgstr "B<M_TOP_PAD>"
+
+#. type: Plain text
+#: 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 "
+"parameter is bytes.) This parameter has an effect in the following "
+"circumstances:"
+msgstr ""
+
+#. type: Plain text
+#: 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: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 "
+"top of the heap."
+msgstr ""
+
+#. type: Plain text
+#: 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: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 "
+"the top of the heap (when the parameter is set high)."
+msgstr ""
+
+#. DEFAULT_TOP_PAD in glibc source
+#. type: Plain text
+#: build/C/man3/mallopt.3:261
+msgid "The default value for this parameter is 128*1024."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:261
+#, no-wrap
+msgid "B<M_TRIM_THRESHOLD>"
+msgstr "B<M_TRIM_THRESHOLD>"
+
+#. type: Plain text
+#: 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 "
+"back to the system. (This can be useful in programs that continue to "
+"execute for a long period after freeing a significant amount of memory.) "
+"The B<M_TRIM_THRESHOLD> parameter specifies the minimum size (in bytes) that "
+"this block of memory must reach before B<sbrk>(2) is used to trim the heap."
+msgstr ""
+
+#. type: Plain text
+#: 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."
+msgstr ""
+
+#
+#
+#
+#. FIXME Do the arena parameters need to be documented?
+#. .TP
+#. .BR M_ARENA_TEST " (since glibc 2.10)"
+#. .TP
+#. .BR M_ARENA_MAX " (since glibc 2.10)"
+#. Environment variables
+#. MALLOC_ARENA_MAX_
+#. MALLOC_ARENA_TEST_
+#. http://udrepper.livejournal.com/20948.html describes some details
+#. of the MALLOC_ARENA_* environment variables.
+#. These macros aren't enabled in production releases until 2.15?
+#. (see glibc malloc/Makefile)
+#. type: Plain text
+#: 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 "
+"at the top of the heap (when the parameter is set high)."
+msgstr ""
+
+#. type: SS
+#: build/C/man3/mallopt.3:305
+#, no-wrap
+msgid "Environment variables"
+msgstr "環境変数"
+
+#. type: Plain text
+#: 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 "
+"advantage that the source code of the program need not be changed. To be "
+"effective, these variables must be defined before the first call to a memory-"
+"allocation function. (If the same parameters are adjusted via B<mallopt>(), "
+"then the B<mallopt>() settings take precedence.) For security reasons, "
+"these variables are ignored in set-user-ID and set-group-ID programs."
+msgstr ""
+
+#. type: Plain text
+#: 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:323
+#, no-wrap
+msgid "B<MALLOC_CHECK_>"
+msgstr "B<MALLOC_CHECK_>"
+
+#. 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: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 "
+"special implementation of the memory-allocation functions is used. (This is "
+"accomplished using the B<malloc_hook>(3) feature.) This implementation "
+"performs additional error checking, but is slower than the standard set of "
+"memory-allocation functions. (This implementation does not detect all "
+"possible errors; memory leaks can still occur.)"
+msgstr ""
+
+#. type: Plain text
+#: 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 "
+"the initial digit are ignored."
+msgstr ""
+
+#. type: Plain text
+#: 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 I</etc/suid-"
+"debug> exists (the content of the file is irrelevant), then B<MALLOC_CHECK_> "
+"also has an effect for set-user-ID and set-group-ID programs."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mallopt.3:354
+#, no-wrap
+msgid "B<MALLOC_MMAP_MAX_>"
+msgstr "B<MALLOC_MMAP_MAX_>"
+
+#. type: Plain text
+#: 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:359
+#, no-wrap
+msgid "B<MALLOC_MMAP_THRESHOLD_>"
+msgstr "B<MALLOC_MMAP_THRESHOLD_>"
+
+#. type: Plain text
+#: 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:364
+#, no-wrap
+msgid "B<MALLOC_PERTURB_>"
+msgstr "B<MALLOC_PERTURB_>"
+
+#. type: Plain text
+#: 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:369
+#, no-wrap
+msgid "B<MALLOC_TRIM_THRESHOLD_>"
+msgstr "B<MALLOC_TRIM_THRESHOLD_>"
+
+#. type: Plain text
+#: 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:374
+#, no-wrap
+msgid "B<MALLOC_TOP_PAD_>"
+msgstr "B<MALLOC_TOP_PAD_>"
+
+#. type: Plain text
+#: 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:384
+msgid "On success, B<mallopt>() returns 1. On error, it returns 0."
+msgstr "B<mallopt>() は成功すると 1 を返す。エラーの場合は 0 を返す。"
+
+#. .SH VERSIONS
+#. Available already in glibc 2.0, possibly earlier
+#. type: Plain text
+#: build/C/man3/mallopt.3:392
+msgid "On error, I<errno> is I<not> set."
+msgstr "エラーの場合、I<errno> は設定I<されない>。"
+
+#. .SH NOTES
+#. type: Plain text
+#: 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 "
+"I<param> varies across systems. The SVID defined options B<M_MXFAST>, "
+"B<M_NLBLKS>, B<M_GRAIN>, and B<M_KEEP>, but only the first of these is "
+"implemented in glibc."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:410
+msgid "Specifying an invalid value for I<param> does not generate an error."
+msgstr ""
+
+#. FIXME . This looks buggy:
+#. setting the M_MXFAST limit rounds up: (s + SIZE_SZ) & ~MALLOC_ALIGN_MASK)
+#. malloc requests are rounded up:
+#. (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: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:421
+#, no-wrap
+msgid " mallopt(M_MXFAST, n)\n"
+msgstr " mallopt(M_MXFAST, n)\n"
+
+#. Bins are multiples of 2 * sizeof(size_t) + sizeof(size_t)
+#. type: Plain text
+#: 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 "
+"multiple greater than or equal to I<(2k+1)*sizeof(size_t)>, where I<k> is an "
+"integer."
+msgstr ""
+
+#. FIXME . http://sources.redhat.com/bugzilla/show_bug.cgi?id=12140
+#. type: Plain text
+#: build/C/man3/mallopt.3:454
+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 "
+"I<value>, and when that memory is freed, the bytes of the region are "
+"initialized to the byte specified in I<value>. However, there is an off-by-"
+"I<sizeof(size_t)> error in the implementation: instead of initializing "
+"precisely the block of memory being freed by the call I<free(p)>, the block "
+"starting at I<p+sizeof(size_t)> is initialized."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:463
+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 "
+"used to set the B<M_CHECK_ACTION> parameter. The program then allocates a "
+"block of memory, and frees it twice (an error)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/mallopt.3:467
+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:487
+#, no-wrap
+msgid ""
+"$ B<./a.out>\n"
+"main(): returned from first free() call\n"
+"*** glibc detected *** ./a.out: double free or corruption (top): 0x09d30008 ***\n"
+"======= Backtrace: =========\n"
+"/lib/libc.so.6(+0x6c501)[0x523501]\n"
+"/lib/libc.so.6(+0x6dd70)[0x524d70]\n"
+"/lib/libc.so.6(cfree+0x6d)[0x527e5d]\n"
+"\\&./a.out[0x80485db]\n"
+"/lib/libc.so.6(__libc_start_main+0xe7)[0x4cdce7]\n"
+"\\&./a.out[0x8048471]\n"
+"======= Memory map: ========\n"
+"001e4000-001fe000 r-xp 00000000 08:06 1083555 /lib/libgcc_s.so.1\n"
+"001fe000-001ff000 r--p 00019000 08:06 1083555 /lib/libgcc_s.so.1\n"
+"[some lines omitted]\n"
+"b7814000-b7817000 rw-p 00000000 00:00 0\n"
+"bff53000-bff74000 rw-p 00000000 00:00 0 [stack]\n"
+"Aborted (core dumped)\n"
+msgstr ""
+"$ B<./a.out>\n"
+"main(): returned from first free() call\n"
+"*** glibc detected *** ./a.out: double free or corruption (top): 0x09d30008 ***\n"
+"======= Backtrace: =========\n"
+"/lib/libc.so.6(+0x6c501)[0x523501]\n"
+"/lib/libc.so.6(+0x6dd70)[0x524d70]\n"
+"/lib/libc.so.6(cfree+0x6d)[0x527e5d]\n"
+"\\&./a.out[0x80485db]\n"
+"/lib/libc.so.6(__libc_start_main+0xe7)[0x4cdce7]\n"
+"\\&./a.out[0x8048471]\n"
+"======= Memory map: ========\n"
+"001e4000-001fe000 r-xp 00000000 08:06 1083555 /lib/libgcc_s.so.1\n"
+"001fe000-001ff000 r--p 00019000 08:06 1083555 /lib/libgcc_s.so.1\n"
+"[some lines omitted]\n"
+"b7814000-b7817000 rw-p 00000000 00:00 0\n"
+"bff53000-bff74000 rw-p 00000000 00:00 0 [stack]\n"
+"Aborted (core dumped)\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:256
+#: build/C/man3/mallopt.3:492
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 "
-"the top of the heap (when the parameter is set high)."
+"The following runs show the results when employing other values for "
+"B<M_CHECK_ACTION>:"
msgstr ""
-#. DEFAULT_TOP_PAD in glibc source
#. type: Plain text
-#: build/C/man3/mallopt.3:259
-msgid "The default value for this parameter is 128*1024."
-msgstr ""
-
-#. type: TP
-#: build/C/man3/mallopt.3:259
+#: build/C/man3/mallopt.3:505
#, no-wrap
-msgid "B<M_TRIM_THRESHOLD>"
+msgid ""
+"$ B<./a.out 1> # Diagnose error and continue\n"
+"main(): returned from first free() call\n"
+"*** glibc detected *** ./a.out: double free or corruption (top): 0x09cbe008 ***\n"
+"main(): returned from second free() call\n"
+"$ B<./a.out 2> # Abort without error message\n"
+"main(): returned from first free() call\n"
+"Aborted (core dumped)\n"
+"$ B<./a.out 0> # Ignore error and continue\n"
+"main(): returned from first free() call\n"
+"main(): returned from second free() call\n"
msgstr ""
+"$ B<./a.out 1> # Diagnose error and continue\n"
+"main(): returned from first free() call\n"
+"*** glibc detected *** ./a.out: double free or corruption (top): 0x09cbe008 ***\n"
+"main(): returned from second free() call\n"
+"$ B<./a.out 2> # Abort without error message\n"
+"main(): returned from first free() call\n"
+"Aborted (core dumped)\n"
+"$ B<./a.out 0> # Ignore error and continue\n"
+"main(): returned from first free() call\n"
+"main(): returned from second free() call\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:275
+#: build/C/man3/mallopt.3:511
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 "
-"back to the system. (This can be useful in programs that continue to "
-"execute for a long period after freeing a significant amount of memory.) "
-"The B<M_TRIM_THRESHOLD> parameter specifies the minimum size (in bytes) that "
-"this block of memory must reach before B<sbrk>(2) is used to trim the heap."
+"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:280
+#: build/C/man3/mallopt.3:518
+#, no-wrap
msgid ""
-"The default value for this parameter is 128*1024. Setting "
-"B<M_TRIM_THRESHOLD> to -1 disables trimming completely."
+"$ B<MALLOC_CHECK_=1 ./a.out>\n"
+"main(): returned from first free() call\n"
+"*** glibc detected *** ./a.out: free(): invalid pointer: 0x092c2008 ***\n"
+"main(): returned from second free() call\n"
msgstr ""
+"$ B<MALLOC_CHECK_=1 ./a.out>\n"
+"main(): returned from first free() call\n"
+"*** glibc detected *** ./a.out: free(): invalid pointer: 0x092c2008 ***\n"
+"main(): returned from second free() call\n"
-#
-#
-#
-#. FIXME Do the arena parameters need to be documented?
-#. .TP
-#. .BR M_ARENA_TEST " (since glibc 2.10)"
-#. .TP
-#. .BR M_ARENA_MAX " (since glibc 2.10)"
-#. Environment variables
-#. MALLOC_ARENA_MAX_
-#. MALLOC_ARENA_TEST_
-#. http://udrepper.livejournal.com/20948.html describes some details
-#. of the MALLOC_ARENA_* environment variables.
-#. 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:526
+#, no-wrap
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 "
-"at the top of the heap (when the parameter is set high)."
+"#include E<lt>malloc.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
msgstr ""
+"#include E<lt>malloc.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
-#. type: SS
-#: build/C/man3/mallopt.3:303
+#. type: Plain text
+#: build/C/man3/mallopt.3:531 build/C/man3/mcheck.3:187
#, no-wrap
-msgid "Environment Variables"
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *p;\n"
msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *p;\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:318
+#: build/C/man3/mallopt.3:538
+#, no-wrap
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 "
-"advantage that the source code of the program need not be changed. To be "
-"effective, these variables must be defined before the first call to a memory-"
-"allocation function. (If the same parameters are adjusted via B<mallopt>() "
-"then the B<mallopt>() settings take precedence.) For security reasons, "
-"these variables are ignored in set-user-ID and set-group-ID programs."
+" if (argc E<gt> 1) {\n"
+" if (mallopt(M_CHECK_ACTION, atoi(argv[1])) != 1) {\n"
+" fprintf(stderr, \"mallopt() failed\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
msgstr ""
+" if (argc E<gt> 1) {\n"
+" if (mallopt(M_CHECK_ACTION, atoi(argv[1])) != 1) {\n"
+" fprintf(stderr, \"mallopt() failed\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:321
+#: build/C/man3/mallopt.3:544
+#, no-wrap
msgid ""
-"The environment variables are as follows (note the trailing underscore at "
-"the end of the name of each variable):"
+" p = malloc(1000);\n"
+" if (p == NULL) {\n"
+" fprintf(stderr, \"malloc() failed\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
msgstr ""
+" p = malloc(1000);\n"
+" if (p == NULL) {\n"
+" fprintf(stderr, \"malloc() failed\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
-#. type: TP
-#: build/C/man3/mallopt.3:321
-#, no-wrap
-msgid "B<MALLOC_CHECK_>"
-msgstr "B<MALLOC_CHECK_>"
-
-#. 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:547
+#, no-wrap
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 "
-"special implementation of the memory-allocation functions is used. (This is "
-"accomplished using the B<malloc_hook>(3) feature.) This implementation "
-"performs additional error checking, but is slower than the standard set of "
-"memory-allocation functions. (This implementation does not detect all "
-"possible errors; memory leaks can still occur.)"
+" free(p);\n"
+" printf(\"main(): returned from first free() call\\en\");\n"
msgstr ""
+" free(p);\n"
+" printf(\"main(): returned from first free() call\\en\");\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:343
+#: build/C/man3/mallopt.3:550
+#, no-wrap
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 "
-"the initial digit are ignored."
+" free(p);\n"
+" printf(\"main(): returned from second free() call\\en\");\n"
msgstr ""
+" free(p);\n"
+" printf(\"main(): returned from second free() call\\en\");\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:352
+#: build/C/man3/mallopt.3:568
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 I</etc/suid-"
-"debug> exists (the content of the file is irrelevant), then B<MALLOC_CHECK_> "
-"also has an effect for set-user-ID and set-group-ID programs."
+"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 ""
+"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)"
-#. type: TP
-#: build/C/man3/mallopt.3:352
+#. type: TH
+#: build/C/man3/mcheck.3:25
#, no-wrap
-msgid "B<MALLOC_MMAP_MAX_>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man3/mallopt.3:357
-msgid "Controls the same parameter as B<mallopt>() B<M_MMAP_MAX>."
-msgstr ""
+msgid "MCHECK"
+msgstr "MCHECK"
-#. type: TP
-#: build/C/man3/mallopt.3:357
+#. type: TH
+#: build/C/man3/mcheck.3:25
#, no-wrap
-msgid "B<MALLOC_MMAP_THRESHOLD_>"
-msgstr ""
+msgid "2014-01-11"
+msgstr "2014-01-11"
#. type: Plain text
-#: build/C/man3/mallopt.3:362
-msgid "Controls the same parameter as B<mallopt>() B<M_MMAP_THRESHOLD>."
+#: build/C/man3/mcheck.3:28
+msgid ""
+"mcheck, mcheck_check_all, mcheck_pedantic, mprobe - heap consistency checking"
msgstr ""
-#. type: TP
-#: build/C/man3/mallopt.3:362
+#. type: Plain text
+#: build/C/man3/mcheck.3:31
#, no-wrap
-msgid "B<MALLOC_PERTURB_>"
-msgstr ""
+msgid "B<#include E<lt>mcheck.hE<gt>>\n"
+msgstr "B<#include E<lt>mcheck.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:367
-msgid "Controls the same parameter as B<mallopt>() B<M_PERTURB>."
-msgstr ""
-
-#. type: TP
-#: build/C/man3/mallopt.3:367
+#: build/C/man3/mcheck.3:33
#, no-wrap
-msgid "B<MALLOC_TRIM_THRESHOLD_>"
+msgid "B<int mcheck(void (*>I<abortfunc>B<)(enum mcheck_status >I<mstatus>B<));>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:372
-msgid "Controls the same parameter as B<mallopt>() B<M_TRIM_THRESHOLD>."
-msgstr ""
-
-#. type: TP
-#: build/C/man3/mallopt.3:372
+#: build/C/man3/mcheck.3:35
#, no-wrap
-msgid "B<MALLOC_TOP_PAD_>"
-msgstr "B<MALLOC_TOP_PAD_>"
+msgid "B<int mcheck_pedantic(void (*>I<abortfunc>B<)(enum mcheck_status >I<mstatus>B<));>\n"
+msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:377
-msgid "Controls the same parameter as B<mallopt>() B<M_TOP_PAD>."
-msgstr ""
+#: build/C/man3/mcheck.3:37
+#, no-wrap
+msgid "B<void mcheck_check_all(void);>\n"
+msgstr "B<void mcheck_check_all(void);>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:382
-msgid "On success, B<mallopt>() returns 1. On error, it returns 0."
-msgstr "B<mallopt>() は成功すると 1 を返す。エラーの場合は 0 を返す。"
+#: build/C/man3/mcheck.3:39
+#, no-wrap
+msgid "B<enum mcheck_status mprobe(void *>I<ptr>B<);>\n"
+msgstr "B<enum mcheck_status mprobe(void *>I<ptr>B<);>\n"
-#. .SH VERSIONS
-#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/mallopt.3:390
-msgid "On error, I<errno> is I<not> set."
-msgstr "エラーの場合、I<errno> は設定I<されない>。"
+#: 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 "
+"certain consistency checks to be performed on the state of the heap. The "
+"checks can detect application errors such as freeing a block of memory more "
+"than once or corrupting the bookkeeping data structures that immediately "
+"precede a block of allocated memory."
+msgstr ""
-#. .SH NOTES
#. type: Plain text
-#: build/C/man3/mallopt.3:404
+#: build/C/man3/mcheck.3:63
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 "
-"I<param> varies across systems. The SVID defined options B<M_MXFAST>, "
-"B<M_NLBLKS>, B<M_GRAIN>, and B<M_KEEP>, but only the first of these is "
-"implemented in glibc."
+"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 "
+"difficult to ensure, linking the program with I<-lmcheck> inserts an "
+"implicit call to B<mcheck>() (with a NULL argument) before the first call "
+"to a memory-allocation function."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:408
-msgid "Specifying an invalid value for I<param> does not generate an error."
+#: 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 "
+"functions is called. This can be very slow!"
msgstr ""
-#. FIXME This looks buggy:
-#. setting the M_MXFAST limit rounds up: (s + SIZE_SZ) & ~MALLOC_ALIGN_MASK)
-#. malloc requests are rounded up:
-#. (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/mcheck.3:78
msgid ""
-"A calculation error within the glibc implementation means that a call of the "
-"form:"
+"The B<mcheck_check_all>() function causes an immediate check on all "
+"allocated blocks. This call is effective only if B<mcheck>() is called "
+"beforehand."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:419
-#, no-wrap
-msgid " mallopt(M_MXFAST, n)\n"
+#: 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 "
+"argument, I<mstatus>, that indicates what type of inconsistency was "
+"detected. If I<abortfunc> is NULL, a default function prints an error "
+"message on I<stderr> and calls B<abort>(3)."
msgstr ""
-#. Bins are multiples of 2 * sizeof(size_t) + sizeof(size_t)
#. type: Plain text
-#: build/C/man3/mallopt.3:431
+#: build/C/man3/mcheck.3:103
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 "
-"multiple greater than or equal to I<(2k+1)*sizeof(size_t)>, where I<k> is an "
-"integer."
+"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 "
+"called beforehand (otherwise B<mprobe>() returns B<MCHECK_DISABLED>)."
msgstr ""
-#. FIXME MALLOC_MMAP_THRESHOLD_ and MALLOC_MMAP_MAX_
-#. do have an effect for set-user-ID programs (but not
-#. 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/mcheck.3:111
msgid ""
-"The B<MALLOC_MMAP_THRESHOLD_> and B<MALLOC_MMAP_MAX_> variables are I<not> "
-"ignored in set-group-ID programs."
+"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:111
+#, no-wrap
+msgid "B<MCHECK_DISABLED> (B<mprobe>() only)"
msgstr ""
-#. FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12140
#. type: Plain text
-#: build/C/man3/mallopt.3:464
+#: build/C/man3/mcheck.3:116
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 "
-"I<value>, and when that memory is freed, the bytes of the region are "
-"initialized to the byte specified in I<value>. However, there is an off-by-"
-"I<sizeof(size_t)> error in the implementation: instead of initializing "
-"precisely the block of memory being freed by the call I<free(p)>, the block "
-"starting at I<p+sizeof(size_t)> is initialized."
+"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:116
+#, no-wrap
+msgid "B<MCHECK_OK> (B<mprobe>() only)"
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:473
-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 "
-"used to set the B<M_CHECK_ACTION> parameter. The program then allocates a "
-"block of memory, and frees it twice (an error)."
+#: build/C/man3/mcheck.3:119
+msgid "No inconsistency detected."
msgstr ""
+#. type: TP
+#: build/C/man3/mcheck.3:119
+#, no-wrap
+msgid "B<MCHECK_HEAD>"
+msgstr "B<MCHECK_HEAD>"
+
#. type: Plain text
-#: build/C/man3/mallopt.3:477
-msgid ""
-"The following shell session shows what happens when we run this program "
-"under glibc, with the default value for B<M_CHECK_ACTION>:"
+#: build/C/man3/mcheck.3:122
+msgid "Memory preceding an allocated block was clobbered."
msgstr ""
+#. type: TP
+#: build/C/man3/mcheck.3:122
+#, no-wrap
+msgid "B<MCHECK_TAIL>"
+msgstr "B<MCHECK_TAIL>"
+
#. type: Plain text
-#: build/C/man3/mallopt.3:496
+#: build/C/man3/mcheck.3:125
+msgid "Memory following an allocated block was clobbered."
+msgstr ""
+
+#. type: TP
+#: build/C/man3/mcheck.3:125
#, no-wrap
-msgid ""
-"$ B<./a.out>\n"
-"*** glibc detected *** ./a.out: double free or corruption (top): 0x09d30008 ***\n"
-"======= Backtrace: =========\n"
-"/lib/libc.so.6(+0x6c501)[0x523501]\n"
-"/lib/libc.so.6(+0x6dd70)[0x524d70]\n"
-"/lib/libc.so.6(cfree+0x6d)[0x527e5d]\n"
-"\\&./a.out[0x80485db]\n"
-"/lib/libc.so.6(__libc_start_main+0xe7)[0x4cdce7]\n"
-"\\&./a.out[0x8048471]\n"
-"======= Memory map: ========\n"
-"001e4000-001fe000 r-xp 00000000 08:06 1083555 /lib/libgcc_s.so.1\n"
-"001fe000-001ff000 r--p 00019000 08:06 1083555 /lib/libgcc_s.so.1\n"
-"[some lines omitted]\n"
-"b7814000-b7817000 rw-p 00000000 00:00 0\n"
-"bff53000-bff74000 rw-p 00000000 00:00 0 [stack]\n"
-"Aborted (core dumped)\n"
+msgid "B<MCHECK_FREE>"
+msgstr "B<MCHECK_FREE>"
+
+#. type: Plain text
+#: build/C/man3/mcheck.3:129
+msgid "A block of memory was freed twice."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:501
+#: build/C/man3/mcheck.3:134
msgid ""
-"The following runs show the results when employing other values for "
-"B<M_CHECK_ACTION>:"
+"B<mcheck>() and B<mcheck_pedantic>() return 0 on success, or -1 on error."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:514
-#, no-wrap
+#: build/C/man3/mcheck.3:145
msgid ""
-"$ B<./a.out 1> # Diagnose error and continue\n"
-"main(): returned from first free() call\n"
-"*** glibc detected *** ./a.out: double free or corruption (top): 0x09cbe008 ***\n"
-"main(): returned from second free() call\n"
-"$ B<./a.out 2> # Abort without error message\n"
-"main(): returned from first free() call\n"
-"Aborted (core dumped)\n"
-"$ B<./a.out 0> # Ignore error and continue\n"
-"main(): returned from first free() call\n"
-"main(): returned from second free() call\n"
+"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 at least glibc 2.0"
msgstr ""
+#. But is MALLOC_CHECK_ slower?
#. type: Plain text
-#: build/C/man3/mallopt.3:520
+#: build/C/man3/mcheck.3:159
msgid ""
-"The next run shows how to set the same parameter using the B<MALLOC_CHECK_> "
-"environment variable:"
+"Linking a program with I<-lmcheck> and using the B<MALLOC_CHECK_> "
+"environment variable (described in B<mallopt>(3)) cause the same kinds of "
+"errors to be detected. But, using B<MALLOC_CHECK_> does not require the "
+"application to be relinked."
msgstr ""
#. type: Plain text
-#: build/C/man3/mallopt.3:527
-#, no-wrap
+#: build/C/man3/mcheck.3:165
msgid ""
-"$ B<MALLOC_CHECK_=1 ./a.out>\n"
-"main(): returned from first free() call\n"
-"*** glibc detected *** ./a.out: free(): invalid pointer: 0x092c2008 ***\n"
-"main(): returned from second free() call\n"
+"The program below calls B<mcheck>() with a NULL argument and then frees the "
+"same block of memory twice. The following shell session demonstrates what "
+"happens when running the program:"
msgstr ""
-#. type: SS
-#: build/C/man3/mallopt.3:529 build/C/man2/mprotect.2:159
-#: build/C/man3/mcheck.3:176
-#, no-wrap
-msgid "Program source"
-msgstr "プログラムのソース"
-
#. type: Plain text
-#: build/C/man3/mallopt.3:535
+#: build/C/man3/mcheck.3:170
#, no-wrap
msgid ""
-"#include E<lt>malloc.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>stdlib.hE<gt>\n"
+"$B< ./a.out>\n"
+"About to free\n"
msgstr ""
-"#include E<lt>malloc.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>stdlib.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:540 build/C/man3/mcheck.3:187
+#: build/C/man3/mcheck.3:174
#, no-wrap
msgid ""
-"int\n"
-"main(int argc, char *argv[])\n"
-"{\n"
-" char *p;\n"
+"About to free a second time\n"
+"block freed twice\n"
+"Aborted (core dumped)\n"
msgstr ""
-"int\n"
-"main(int argc, char *argv[])\n"
-"{\n"
-" char *p;\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:547
+#: build/C/man3/mcheck.3:182
#, no-wrap
msgid ""
-" if (argc E<gt> 1) {\n"
-" if (argc != 2) {\n"
-" fprintf(stderr, \"%s E<lt>M_CHECK_ACTION-valueE<gt>\\en\", argv[0]);\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
-" }\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>mcheck.hE<gt>\n"
msgstr ""
-" if (argc E<gt> 1) {\n"
-" if (argc != 2) {\n"
-" fprintf(stderr, \"%s E<lt>M_CHECK_ACTION-valueE<gt>\\en\", argv[0]);\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
-" }\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>mcheck.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:552
+#: build/C/man3/mcheck.3:190
#, no-wrap
msgid ""
-" if (mallopt(M_CHECK_ACTION, atoi(argv[1])) != 1) {\n"
-" fprintf(stderr, \"mallopt() failed\");\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
+" if (mcheck(NULL) != 0) {\n"
+" fprintf(stderr, \"mcheck() failed\\en\");\n"
msgstr ""
-" if (mallopt(M_CHECK_ACTION, atoi(argv[1])) != 1) {\n"
-" fprintf(stderr, \"mallopt() failed\");\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:558
+#: build/C/man3/mcheck.3:193
#, no-wrap
msgid ""
-" p = malloc(1000);\n"
-" if (p == NULL) {\n"
-" fprintf(stderr, \"malloc() failed\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
-" p = malloc(1000);\n"
-" if (p == NULL) {\n"
-" fprintf(stderr, \"malloc() failed\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:561
+#: build/C/man3/mcheck.3:195
#, no-wrap
-msgid ""
-" free(p);\n"
-" printf(\"main(): returned from first free() call\\en\");\n"
-msgstr ""
+msgid " p = malloc(1000);\n"
+msgstr " p = malloc(1000);\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:564
+#: build/C/man3/mcheck.3:200
#, no-wrap
msgid ""
+" fprintf(stderr, \"About to free\\en\");\n"
+" free(p);\n"
+" fprintf(stderr, \"\\enAbout to free a second time\\en\");\n"
" free(p);\n"
-" printf(\"main(): returned from second free() call\\en\");\n"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man3/mallopt.3:567 build/C/man2/mmap.2:652
-#: build/C/man3/mcheck.3:203
-#, no-wrap
-msgid ""
-" exit(EXIT_SUCCESS);\n"
-"}\n"
msgstr ""
-" exit(EXIT_SUCCESS);\n"
-"}\n"
#. type: Plain text
-#: build/C/man3/mallopt.3:580
-msgid ""
-"B<mmap>(2) B<sbrk>(2), B<mallinfo>(3), B<malloc>(3), B<malloc_hook>(3), "
-"B<malloc_trim>(3), B<mcheck>(3), B<mtrace>(3), B<posix_memalign>(3)"
-msgstr ""
-"B<mmap>(2) B<sbrk>(2), B<mallinfo>(3), B<malloc>(3),\n"
-"B<malloc_hook>(3), B<malloc_trim>(3), B<mcheck>(3), B<mtrace>(3),\n"
-"B<posix_memalign>(3)"
+#: build/C/man3/mcheck.3:208
+msgid "B<malloc>(3), B<mallopt>(3), B<mtrace>(3)"
+msgstr "B<malloc>(3), B<mallopt>(3), B<mtrace>(3)"
#. type: TH
-#: build/C/man2/mlock.2:27
+#: build/C/man2/mlock.2:26
#, no-wrap
msgid "MLOCK"
msgstr "MLOCK"
#. type: TH
-#: build/C/man2/mlock.2:27
+#: build/C/man2/mlock.2:26
#, no-wrap
-msgid "2011-09-14"
-msgstr "2011-09-14"
+msgid "2014-04-14"
+msgstr "2014-04-14"
#. 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 "mlock - メモリのロックとロック解除を行う"
+msgstr "mlock - ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81¨ã\83ã\83\83ã\82¯è§£é\99¤ã\82\92è¡\8cã\81\86"
#. 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:45 build/C/man2/mremap.2:38
#, no-wrap
msgid "B<#include E<lt>sys/mman.hE<gt>>\n"
msgstr "B<#include E<lt>sys/mman.hE<gt>>\n"
#. 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"
"B<int munlock(const void *>I<addr>B<, size_t >I<len>B<);>\n"
#. 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"
"B<int munlockall(void);>\n"
#. 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 "
"whole pages."
msgstr ""
"B<mlock>() と B<mlockall>() はそれぞれ、呼び出し元プロセスの仮想アドレス空"
-"é\96\93ã\81®ä¸\80é\83¨ã\81¾ã\81\9fã\81¯å\85¨é\83¨ã\82\92 RAM ä¸\8aã\81«ã\83ã\83\83ã\82¯ã\81\97ã\80\81ã\83¡ã\83¢ã\83ªã\81\8cã\82¹ã\83¯ã\83\83ã\83\97ã\82¨ã\83ªã\82¢ã\81«ã\83\9aã\83¼ã\82¸ã\83³ã\82°ã\81\95ã\82\8c"
-"ã\82\8bã\81®ã\82\92é\98²ã\81\90ã\80\82 B<munlock>() ã\81¨ B<munlockall>() ã\81¯é\80\86ã\81®æ\93\8dä½\9cã\81§ã\80\81ã\81\9dã\82\8cã\81\9eã\82\8cå\91¼ã\81³å\87ºã\81\97"
-"元プロセスの仮想アドレス空間の一部または全部を ロック解除する。つまり、指定さ"
-"ã\82\8cã\81\9fä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83\9eã\83\8dã\83¼ã\82¸ã\83£ã\83¼ã\81\8bã\82\89è¦\81æ±\82ã\81\95ã\82\8cã\82\8cã\81°ã\82¹"
-"ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\99ã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\81®ã\83ã\83\83ã\82¯ã\81¨ã\83ã\83\83ã\82¯è§£é\99¤ã\81¯ã\83\9aã\83¼ã\82¸å\8d\98ä½\8dã\81§è¡\8cã\82\8fã\82\8c"
-"る。"
+"é\96\93ã\81®ä¸\80é\83¨ã\81¾ã\81\9fã\81¯å\85¨é\83¨ã\82\92 RAM ä¸\8aã\81«ã\83ã\83\83ã\82¯ã\81\97ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82¹ã\83¯ã\83\83ã\83\97ã\82¨ã\83ªã\82¢ã\81«ã\83\9aã\83¼ã\82¸ã\83³ã\82°ã\81\95"
+"ã\82\8cã\82\8bã\81®ã\82\92é\98²ã\81\90ã\80\82 B<munlock>() ã\81¨ B<munlockall>() ã\81¯é\80\86ã\81®æ\93\8dä½\9cã\81§ã\80\81ã\81\9dã\82\8cã\81\9eã\82\8cå\91¼ã\81³å\87º"
+"し元プロセスの仮想アドレス空間の一部または全部を ロック解除する。つまり、指定"
+"ã\81\95ã\82\8cã\81\9fä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\8dã\83¼ã\82¸ã\83£ã\83¼ã\81\8bã\82\89è¦\81æ±\82ã\81\95ã\82\8cã\82\8cã\81°"
+"ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\99ã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81¨ã\83ã\83\83ã\82¯è§£é\99¤ã\81¯ã\83\9aã\83¼ã\82¸å\8d\98ä½\8dã\81§è¡\8cã\82\8f"
+"ã\82\8cã\82\8bã\80\82"
#. type: SS
-#: build/C/man2/mlock.2:55
+#: build/C/man2/mlock.2:54
#, no-wrap
msgid "mlock() and munlock()"
msgstr "mlock() と munlock()"
#. 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 "
"れるまで RAM に残り続けることが保証される。"
#. 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 "
"the kernel."
msgstr ""
"B<munlock>() は、 I<addr> から始まる長さ I<len> バイトのアドレス範囲のページ"
-"のロックを解除する。 この呼び出しを行った後は、カーネルが、指定されたメモリ範"
-"囲を含む 全てのページを外部のスワップ空間に移動できるようになる。"
+"のロックを解除する。 この呼び出しを行った後は、カーネルが、指定されたメモリー"
+"範囲を含む 全てのページを外部のスワップ空間に移動できるようになる。"
#. type: SS
-#: build/C/man2/mlock.2:74
+#: build/C/man2/mlock.2:73
#, no-wrap
msgid "mlockall() and munlockall()"
msgstr "mlockall() と munlockall()"
#. 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 ""
"B<mlockall>() は呼び出し元プロセスのアドレス空間にマップされている全てのペー"
"ジを ロックする。これにはコード、データ、スタックの 各セグメント、共有ライブ"
-"ã\83©ã\83ªã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\83\87ã\83¼ã\82¿ã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\80\81ã\83¡ã\83¢ã\83ªã\83»ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«"
-"ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82 ã\82·ã\82¹ã\83\86ã\83 ã\83»コールが成功した場合には全てのマップされたページは "
+"ã\83©ã\83ªã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\83\87ã\83¼ã\82¿ã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤"
+"ã\83«ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82 ã\82·ã\82¹ã\83\86ã\83 コールが成功した場合には全てのマップされたページは "
"RAM に 残ることを保証される。 これらのページは後でロック解除されるまで RAM に"
"残り続けることが保証される。"
#. 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 "I<flags> 引数は以下の内容の一つまたは複数のビット OR から構成される:"
#. type: TP
-#: build/C/man2/mlock.2:89
+#: build/C/man2/mlock.2:88
#, no-wrap
msgid "B<MCL_CURRENT>"
msgstr "B<MCL_CURRENT>"
#. 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."
"現在、プロセスのアドレス空間にマップされている全てのページをロックする。"
#. type: TP
-#: build/C/man2/mlock.2:93
+#: build/C/man2/mlock.2:92
#, no-wrap
msgid "B<MCL_FUTURE>"
msgstr "B<MCL_FUTURE>"
#. 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 "
-"growing heap and stack as well as new memory mapped files or shared memory "
+"growing heap and stack as well as new memory-mapped files or shared memory "
"regions."
msgstr ""
"将来、プロセスのアドレス空間にマップされる全てのページをロックする。 例えば、"
"ヒープ (heap) やスタックの成長により新しく必要になったページだけで なく、新し"
-"ã\81\8fã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ª領域もロックされる。"
+"ã\81\8fã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼領域もロックされる。"
#. 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 of "
-"locked bytes to exceed the permitted maximum (see below). In the same "
+"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 "
+"of locked bytes to exceed the permitted maximum (see below). In the same "
"circumstances, stack growth may likewise fail: the kernel will deny stack "
"expansion and deliver a B<SIGSEGV> signal to the process."
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."
"全てのページをロック解除する。"
#. 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 "
"れない。"
#. 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. "
"This limit is not enforced if the process is privileged (B<CAP_IPC_LOCK>)."
msgstr ""
"(Linux 2.6.9 以降) 呼び出し元は非ゼロの ソフト資源制限 B<RLIMIT_MEMLOCK> を持"
-"ã\81¤ã\81\8cã\80\81å\88¶é\99\90ã\81\8c許å\8f¯ã\81\97ã\81¦ã\81\84ã\82\8b以ä¸\8aã\81®ã\83¡ã\83¢ã\83ªã\82\92ã\83ã\83\83ã\82¯ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82 ã\81\93ã\81®å\88¶é\99\90ã\81¯ã\80\81ã\83\97ã\83ã\82»"
-"スが特権 (B<CAP_IPC_LOCK>) を持っている場合は適用されない。"
+"ã\81¤ã\81\8cã\80\81å\88¶é\99\90ã\81\8c許å\8f¯ã\81\97ã\81¦ã\81\84ã\82\8b以ä¸\8aã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83ã\83\83ã\82¯ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82 ã\81\93ã\81®å\88¶é\99\90ã\81¯ã\80\81ã\83\97ã\83"
+"ã\82»ã\82¹ã\81\8cç\89¹æ¨© (B<CAP_IPC_LOCK>) ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯é\81©ç\94¨ã\81\95ã\82\8cã\81ªã\81\84ã\80\82"
#. In the case of mlock(), this check is somewhat buggy: it doesn't
#. take into account whether the to-be-locked range overlaps with
#. 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."
"要求された操作を実行するには特権 (B<CAP_IPC_LOCK>) が必要である。"
#. type: Plain text
-#: build/C/man2/mlock.2:155
+#: build/C/man2/mlock.2:154
msgid "For B<mlock>() and B<munlock>():"
msgstr "B<mlock>() と B<munlock>() 用として:"
#. 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)."
"(例えば、加算でオーバーフローが発生したなど)。"
#. 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 ""
"(Linux ではこの意味で使われない) I<addr> がページサイズの倍数ではない。"
#. 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."
"い。"
#. type: Plain text
-#: build/C/man2/mlock.2:177
+#: build/C/man2/mlock.2:176
msgid "For B<mlockall>():"
msgstr "B<mlockall>() 用として:"
#. type: Plain text
-#: build/C/man2/mlock.2:180
+#: build/C/man2/mlock.2:179
msgid "Unknown I<flags> were specified."
msgstr "未知の I<flags> が指定された。"
#. type: Plain text
-#: build/C/man2/mlock.2:183
+#: build/C/man2/mlock.2:182
msgid "For B<munlockall>():"
msgstr "B<munlockall>() 用として:"
#. 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 ""
"(Linux 2.6.8 以前) 呼び出し元が権限 (B<CAP_IPC_LOCK>) を持っていない。"
#. type: Plain text
-#: build/C/man2/mlock.2:189
+#: build/C/man2/mlock.2:188
msgid "POSIX.1-2001, SVr4."
msgstr "POSIX.1-2001, SVr4."
#. 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:503 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 "
"(B<sysconf>(3) も参照のこと)。"
#. 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 "
"laptops and some desktop computers will save a copy of the system's RAM to "
"disk, regardless of memory locks.)"
msgstr ""
-"メモリのロックの用途としては主に二つある: リアルタイム アルゴリズムと高いセ"
+"ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81®ç\94¨é\80\94ã\81¨ã\81\97ã\81¦ã\81¯ä¸»ã\81«äº\8cã\81¤ã\81\82ã\82\8b: ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\82¢ã\83«ã\82´ã\83ªã\82ºã\83 ã\81¨é«\98ã\81\84ã\82»"
"キュリティの必要なデータ処理である。リアルタイムの アプリケーションは決定的な"
"タイミングやスケジューリングを必要とするが、 ページングは予期しないプログラム"
"の実行遅延をもたらす主要な要因となる。 リアルタイムのアプリケーションはたいて"
"いは B<sched_setscheduler>(2) でリアルタイムスケジューラに変更される。 暗号"
"やセキュリティのソフトウェアはしばしばパスワードや秘密鍵のデータの ような重要"
"なバイト列を扱う。ページングの結果、これらの秘密が スワップ用の固定媒体に転送"
-"されるかもしれない。そして、セキュリティ・ ソフトウェアが RAM 上の秘密を削除"
-"ã\81\97ã\81¦çµ\82äº\86ã\81\97ã\81\9fã\81\9aã\81£ã\81¨å¾\8cã\81«ã\81ªã\81£ã\81¦ã\82\82ã\80\81 ã\81\93ã\81®ã\82¹ã\83¯ã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81«ã\81¯æ\95µã\81\8cã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8d"
-"る可能性がある (しかし、ラップトップといくつかのデスクトップコンピュータの サ"
-"ã\82¹ã\83\9aã\83³ã\83\89ã\83¢ã\83¼ã\83\89ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81® RAM ã\81®å\86\85容ã\82\92ã\83¡ã\83¢ã\83ªのロックに関わらず ディスクに保"
+"されるかもしれない。そして、セキュリティ ソフトウェアが RAM 上の秘密を削除し"
+"ã\81¦çµ\82äº\86ã\81\97ã\81\9fã\81\9aã\81£ã\81¨å¾\8cã\81«ã\81ªã\81£ã\81¦ã\82\82ã\80\81 ã\81\93ã\81®ã\82¹ã\83¯ã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81«ã\81¯æ\95µã\81\8cã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8b"
+"可能性がある (しかし、ラップトップといくつかのデスクトップコンピュータの サス"
+"ã\83\9aã\83³ã\83\89ã\83¢ã\83¼ã\83\89ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81® RAM ã\81®å\86\85容ã\82\92ã\83¡ã\83¢ã\83ªã\83¼のロックに関わらず ディスクに保"
"存することに注意)。"
#. 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 time-"
"ごうとする場合、 関数呼び出しによってページフォールトが発生しないように、 時"
"間制限の厳しい部分 (time-critical section) に入る前に 十分な量のロックされた"
"スタックを確保しておく必要がある。 これを実現するには、十分な大きさの自動変"
-"数 (の配列) を確保し、 これらのスタック用のページがメモリ上に確保されるように"
-"この配列に 書き込みを行う関数を用意し、これを呼び出せばよい。こうすること"
+"数 (の配列) を確保し、 これらのスタック用のページがメモリー上に確保されるよう"
+"ã\81«ã\81\93ã\81®é\85\8då\88\97ã\81« æ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92è¡\8cã\81\86é\96¢æ\95°ã\82\92ç\94¨æ\84\8fã\81\97ã\80\81ã\81\93ã\82\8cã\82\92å\91¼ã\81³å\87ºã\81\9bã\81°ã\82\88ã\81\84ã\80\82ã\81\93ã\81\86ã\81\99ã\82\8bã\81\93ã\81¨"
"で、 十分な量のページがスタックにマッピングされ、RAM にロックされる。 ダミー"
"の書き込みを行うことによって、 時間制限の厳しい部分 (critical section) 内では"
"書き込み時コピーによる ページフォールトさえも発生しないことが保証される。"
#. type: Plain text
-#: build/C/man2/mlock.2:251
+#: build/C/man2/mlock.2:257
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 "
-"terminates."
+"terminates. The B<mlockall>() B<MCL_FUTURE> setting is not inherited by a "
+"child created via B<fork>(2) and is cleared during an B<execve>(2)."
msgstr ""
-"メモリロックは B<fork>(2) で作成された子プロセスには継承されず、 B<execve>"
-"(2) が呼ばれたり、プロセスが終了した場合は 自動的に削除される (ロック解除さ"
-"れる)。"
+"メモリーロックは B<fork>(2) で作成された子プロセスには継承されず、 "
+"B<execve>(2) が呼ばれたり、プロセスが終了した場合は 自動的に削除される (ロッ"
+"ク解除される)。 B<mlockall>() の B<MCL_FUTURE> 設定は B<fork>(2) で作成された"
+"子プロセスには継承されず、 B<execve>(2) の中でクリアされる。"
#. type: Plain text
-#: build/C/man2/mlock.2:255
+#: build/C/man2/mlock.2:261
msgid ""
"The memory lock on an address range is automatically removed if the address "
"range is unmapped via B<munmap>(2)."
msgstr ""
-"あるアドレス範囲に対するメモリロックは、そのアドレス範囲が B<munmap>(2) に"
+"ã\81\82ã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81«å¯¾ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\81¯ã\80\81ã\81\9dã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81\8c B<munmap>(2) ã\81«"
"よってアンマップされた場合は削除される。"
#. type: Plain text
-#: build/C/man2/mlock.2:268
+#: build/C/man2/mlock.2:274
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 "
"locked into RAM as long as they are locked at least at one location or by at "
"least one process."
msgstr ""
-"ã\83¡ã\83¢ã\83ªã\81®ã\83ã\83\83ã\82¯ã\81¯ç´¯ç©\8dã\81\97ã\81ªã\81\84ã\80\82 ã\81\99ã\81ªã\82\8fã\81¡è¤\87æ\95°å\9b\9e B<mlock>() ã\82\84 B<mlockall>() ã\82\92"
-"呼び出してロックされたページでも、 対応する範囲に対して B<munlock>() を 1 回"
-"å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82\8a B<munlockall>() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\81 ã\81\91ã\81§ã\83ã\83\83ã\82¯è§£é\99¤ã\81\95ã\82\8cã\82\8bã\80\82 è¤\87æ\95°"
-"の場所や複数のプロセスにマップされているページは、少なくとも一つの場所、 一つ"
-"のプロセスでロックされている限りは RAM に残り続ける。"
+"ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81¯ç´¯ç©\8dã\81\97ã\81ªã\81\84ã\80\82 ã\81\99ã\81ªã\82\8fã\81¡è¤\87æ\95°å\9b\9e B<mlock>() ã\82\84 B<mlockall>() "
+"を呼び出してロックされたページでも、 対応する範囲に対して B<munlock>() を 1 "
+"å\9b\9eå\91¼ã\81³å\87ºã\81\97ã\81\9fã\82\8a B<munlockall>() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\81 ã\81\91ã\81§ã\83ã\83\83ã\82¯è§£é\99¤ã\81\95ã\82\8cã\82\8bã\80\82 è¤\87"
+"数の場所や複数のプロセスにマップされているページは、少なくとも一つの場所、 一"
+"ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bé\99\90ã\82\8aã\81¯ RAM ã\81«æ®\8bã\82\8aç¶\9aã\81\91ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/mlock.2:279
+#: build/C/man2/mlock.2:285
msgid ""
"Under Linux, B<mlock>() and B<munlock>() automatically round I<addr> down "
"to the nearest page boundary. However, POSIX.1-2001 allows an "
"ケーションではきちんと境界に合わせた方が良い。"
#. type: Plain text
-#: build/C/man2/mlock.2:292
+#: build/C/man2/mlock.2:298
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 B<mlock>"
-"(), B<mlockall>(), and B<mmap>(2) B<MAP_LOCKED>."
+"many kilobytes of memory the process with ID I<PID> has locked using "
+"B<mlock>(), B<mlockall>(), and B<mmap>(2) B<MAP_LOCKED>."
msgstr ""
"Linux 固有の I</proc/PID/status> ファイルの I<VmLck> フィールドには、\n"
"B<mlock>(), B<mlockall>() および B<mmap>(2) B<MAP_LOCKED> を使って、\n"
-"ID が I<PID> のプロセスがロックしているメモリ量 (キロバイト単位) が\n"
+"ID が I<PID> のプロセスがロックしているメモリー量 (キロバイト単位) が\n"
"表示される。"
#. type: SS
-#: build/C/man2/mlock.2:292
+#: build/C/man2/mlock.2:298
#, no-wrap
msgid "Limits and permissions"
msgstr "制限と権限"
#. type: Plain text
-#: build/C/man2/mlock.2:299
+#: build/C/man2/mlock.2:305
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 "
"defines a limit on how much memory the process may lock."
msgstr ""
-"Linux 2.6.8 以å\89\8dã\81§ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\82\92ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ç\89¹æ¨© (B<CAP_IPC_LOCK>) ã\81\8cå¿\85"
-"要で、 ソフト資源制限 B<RLIMIT_MEMLOCK> はプロセスがどれだけのメモリをロック"
-"できるかの制限を定義する。"
+"Linux 2.6.8 以å\89\8dã\81§ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ç\89¹æ¨© (B<CAP_IPC_LOCK>) ã\81\8c"
+"必要で、 ソフト資源制限 B<RLIMIT_MEMLOCK> はプロセスがどれだけのメモリーを"
+"ã\83ã\83\83ã\82¯ã\81§ã\81\8dã\82\8bã\81\8bã\81®å\88¶é\99\90ã\82\92å®\9a義ã\81\99ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/mlock.2:305
+#: build/C/man2/mlock.2:311
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 "
"instead defines a limit on how much memory an unprivileged process may lock."
msgstr ""
-"Linux 2.6.9 以降では、特権を持つプロセスがロックできるメモリ量は無制限とな"
+"Linux 2.6.9 以降では、特権を持つプロセスがロックできるメモリー量は無制限とな"
"り、 代わりにソフト資源制限 B<RLIMIT_MEMLOCK> は特権を持たないプロセスがロッ"
-"クできるメモリ量の制限を定義する。"
+"クできるメモリー量の制限を定義する。"
#. type: Plain text
-#: build/C/man2/mlock.2:313
+#: build/C/man2/mlock.2:319
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:336
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 "
"カーネル 2.6.9 以降では、特権を持ったプロセスが I<mlockall(MCL_FUTURE)> を呼"
"び出した後で、特権をなくした場合 (例えば、 実効 UID を 0 以外の値に変更するな"
"どにより、 B<CAP_IPC_LOCK> ケーパビリティを失った場合)、リソース上限 "
-"B<RLIMIT_MEMLOCK> に達すると、それ以降のメモリ割り当て (例えば B<mmap>(2), "
+"B<RLIMIT_MEMLOCK> に達すると、それ以降のメモリー割り当て (例えば B<mmap>(2), "
"B<brk>(2)) は失敗する。"
#. type: Plain text
-#: build/C/man2/mlock.2:337
+#: build/C/man2/mlock.2:343
msgid ""
"B<mmap>(2), B<setrlimit>(2), B<shmctl>(2), B<sysconf>(3), B<proc>(5), "
"B<capabilities>(7)"
msgid "MMAP"
msgstr "MMAP"
-#. type: TH
-#: build/C/man2/mmap.2:40 build/C/man2/mmap2.2:29
-#, no-wrap
-msgid "2012-04-16"
-msgstr "2012-04-16"
-
#. type: Plain text
#: build/C/man2/mmap.2:43
msgid "mmap, munmap - map or unmap files or devices into memory"
-msgstr "mmap, munmap - ファイルやデバイスをメモリにマップ/アンマップする"
+msgstr "mmap, munmap - ã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97/ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8b"
#. type: Plain text
#: build/C/man2/mmap.2:51
"B<int munmap(void *>I<addr>B<, size_t >I<length>B<);>\n"
#. 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 "
"ングのアドレスは、呼び出しの返り値として返される。"
#. 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 "
"descriptor I<fd>. I<offset> must be a multiple of the page size as returned "
"by I<sysconf(_SC_PAGE_SIZE)>."
msgstr ""
-"ファイルマッピングの内容は、 ファイルディスクリプタ I<fd> で参照されるファイ"
-"ル (もしくは他のオブジェクト) のオフセット I<offset> から開始される "
+"ファイルマッピングの内容は、 ファイルディスクリプター I<fd> で参照されるファ"
+"ã\82¤ã\83« (ã\82\82ã\81\97ã\81\8fã\81¯ä»\96ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88) ã\81®ã\82ªã\83\95ã\82»ã\83\83ã\83\88 I<offset> ã\81\8bã\82\89é\96\8bå§\8bã\81\95ã\82\8cã\82\8b "
"I<length> バイトのデータで初期化される (ファイルマッピングは無名マッピングの"
-"反対語である。 B<MAP_ANONYMOUS> を参照)。 I<offset> は I<sysconf"
-"(_SC_PAGE_SIZE)> が返すページサイズの倍数でなければならない。"
+"反対語である。 B<MAP_ANONYMOUS> を参照)。 I<offset> は "
+"I<sysconf(_SC_PAGE_SIZE)> が返すページサイズの倍数でなければならない。"
#. 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 "
"B<PROT_NONE> or the bitwise OR of one or more of the following flags:"
msgstr ""
-"引き数 I<prot> には、マッピングのメモリ保護をどのように行なうかを指定する "
+"引き数 I<prot> には、マッピングのメモリー保護をどのように行なうかを指定する "
"(ファイルのオープンモードと矛盾してはいけない)。 I<prot> には、 B<PROT_NONE> "
"か、以下のフラグをひとつ以上ビット毎の論理和 (OR) をとったものを 指定できる。"
#. 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:74
#, no-wrap
msgid "B<PROT_EXEC>"
msgstr "B<PROT_EXEC>"
#. 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:68
#, no-wrap
msgid "B<PROT_READ>"
msgstr "B<PROT_READ>"
#. 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:71
#, no-wrap
msgid "B<PROT_WRITE>"
msgstr "B<PROT_WRITE>"
#. 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:65
#, no-wrap
msgid "B<PROT_NONE>"
msgstr "B<PROT_NONE>"
#. 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 "
"I<flags> に含めることで指定する。"
#. type: TP
-#: build/C/man2/mmap.2:116
+#: build/C/man2/mmap.2:118
#, no-wrap
msgid "B<MAP_SHARED>"
msgstr "B<MAP_SHARED>"
#. 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 "
"るまで行われないこともある。"
#. type: TP
-#: build/C/man2/mmap.2:126
+#: build/C/man2/mmap.2:128
#, no-wrap
msgid "B<MAP_PRIVATE>"
msgstr "B<MAP_PRIVATE>"
#. 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 "
"かは規定されていない。"
#. 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 "上記の二つのフラグは POSIX.1-2001 で規定されている。"
#. 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 "B<MAP_32BIT> (Linux 2.4.20, 2.6 以降)"
#. 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 "
+"This flag is supported only on x86-64, for 64-bit programs. It was added to "
"allow thread stacks to be allocated somewhere in the first 2GB of memory, so "
"as to improve context-switch performance on some early 64-bit processors. "
"Modern x86-64 processors no longer have this performance problem, so use of "
"ignored when B<MAP_FIXED> is set."
msgstr ""
"マッピングをプロセスのアドレス空間の先頭 2 ギガバイト以内に配置する。 このフ"
-"ラグがサポートされているのは x86-64 アーキテクチャ上の 64 ビットプログラムの"
-"ã\81¿ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81\8c追å\8a ã\81\95ã\82\8cã\81\9fã\81®ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92ã\83¡ã\83¢ã\83ªã\81®å\85\88é 2GB "
-"以内の どこかに割り当てることで、初期のいくつかの 64 ビットプロセッサにおけ"
-"る コンテキストスイッチの性能問題を改善するためである。 最近の x86-64 プロ"
+"ラグがサポートされているのは x86-64 アーキテクチャー上の 64 ビットプログラム"
+"ã\81®ã\81¿ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81\8c追å\8a ã\81\95ã\82\8cã\81\9fã\81®ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\85\88é "
+"2GB 以内の どこかに割り当てることで、初期のいくつかの 64 ビットプロセッサにお"
+"ã\81\91ã\82\8b ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\82¹ã\82¤ã\83\83ã\83\81ã\81®æ\80§è\83½å\95\8fé¡\8cã\82\92æ\94¹å\96\84ã\81\99ã\82\8bã\81\9fã\82\81ã\81§ã\81\82ã\82\8bã\80\82 æ\9c\80è¿\91ã\81® x86-64 ã\83\97ã\83"
"セッサではこの性能問題はもはや存在せず、 そのようなシステムではこのフラグを使"
"用する必要はない。 B<MAP_FIXED> がセットされている場合は、 B<MAP_32BIT> フラ"
"グは無視される。"
#. type: TP
-#: build/C/man2/mmap.2:156
+#: build/C/man2/mmap.2:158
#, no-wrap
msgid "B<MAP_ANON>"
msgstr "B<MAP_ANON>"
#. type: Plain text
-#: build/C/man2/mmap.2:161
+#: build/C/man2/mmap.2:163
msgid "Synonym for B<MAP_ANONYMOUS>. Deprecated."
msgstr "B<MAP_ANONYMOUS> の同義語。非推奨。"
#. type: TP
-#: build/C/man2/mmap.2:161
+#: build/C/man2/mmap.2:163
#, no-wrap
msgid "B<MAP_ANONYMOUS>"
msgstr "B<MAP_ANONYMOUS>"
#. 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 "
"implementations require I<fd> to be -1 if B<MAP_ANONYMOUS> (or B<MAP_ANON>) "
"is specified, and portable applications should ensure this. The use of "
-"B<MAP_ANONYMOUS> in conjunction with B<MAP_SHARED> is only supported on "
-"Linux since kernel 2.4."
+"B<MAP_ANONYMOUS> in conjunction with B<MAP_SHARED> is supported on Linux "
+"only since kernel 2.4."
msgstr ""
"マッピングはどのファイルとも関連付けされない。 マッピングの内容は 0 で初期化"
"される。 引き数 I<fd> と I<offset> は無視される。 ただし、実装によっては "
"以降の Linux でのみサポートされている。"
#. type: TP
-#: build/C/man2/mmap.2:183
+#: build/C/man2/mmap.2:185
#, no-wrap
msgid "B<MAP_DENYWRITE>"
msgstr "B<MAP_DENYWRITE>"
#. 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 "
"は denial-of-service (サービス拒否) 攻撃の原因となった)。"
#. type: TP
-#: build/C/man2/mmap.2:191
+#: build/C/man2/mmap.2:193
#, no-wrap
msgid "B<MAP_EXECUTABLE>"
msgstr "B<MAP_EXECUTABLE>"
#. 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 "B<MAP_FILE>"
#. 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 "B<MAP_FIXED>"
#. 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 ""
"I<addr> をアドレスのヒントとして使用するのではなく、 I<addr> で指定されたアド"
"レスをそのまま使用してマッピングを配置する。 I<addr> はページサイズの倍数でな"
-"ければならない。 I<addr> と I<len> で指定されたメモリ領域が既存のマッピングの"
-"ã\83\9aã\83¼ã\82¸ã\81¨é\87\8dã\81ªã\82\8bå ´å\90\88ã\80\81 æ\97¢å\98ã\81®ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®é\87\8dã\81ªã\81£ã\81\9fé\83¨å\88\86ã\81¯æ\8d¨ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 ã\82\82ã\81\97æ\8c\87å®\9aã\81\95"
-"ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81\8c使ç\94¨ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\80\81 B<mmap>() ã\81¯å¤±æ\95\97ã\81\99ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«å¯¾ã\81\97ã\81¦å\9bº"
-"å®\9aã\82¢ã\83\89ã\83¬ã\82¹ã\82\92è¦\81æ±\82ã\81\99ã\82\8bã\81®ã\81¯ç§»æ¤\8dæ\80§ã\81®é\9d¢ã\81§å\8a£ã\82\8bã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ä½¿ç\94¨ã\81\97ã\81ªã\81\84ã\81\93ã\81¨"
-"を推奨する。"
+"ければならない。 I<addr> と I<len> で指定されたメモリー領域が既存のマッピング"
+"ã\81®ã\83\9aã\83¼ã\82¸ã\81¨é\87\8dã\81ªã\82\8bå ´å\90\88ã\80\81 æ\97¢å\98ã\81®ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®é\87\8dã\81ªã\81£ã\81\9fé\83¨å\88\86ã\81¯æ\8d¨ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 ã\82\82ã\81\97æ\8c\87å®\9a"
+"ã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81\8c使ç\94¨ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\80\81 B<mmap>() ã\81¯å¤±æ\95\97ã\81\99ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«å¯¾ã\81\97ã\81¦"
+"å\9bºå®\9aã\82¢ã\83\89ã\83¬ã\82¹ã\82\92è¦\81æ±\82ã\81\99ã\82\8bã\81®ã\81¯ç§»æ¤\8dæ\80§ã\81®é\9d¢ã\81§å\8a£ã\82\8bã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ä½¿ç\94¨ã\81\97ã\81ªã\81\84ã\81\93"
+"ã\81¨ã\82\92æ\8e¨å¥¨ã\81\99ã\82\8bã\80\82"
#. type: TP
-#: build/C/man2/mmap.2:223
+#: build/C/man2/mmap.2:225
#, no-wrap
msgid "B<MAP_GROWSDOWN>"
msgstr "B<MAP_GROWSDOWN>"
#. 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 "B<MAP_HUGETLB> (Linux 2.6.32 以降)"
#. 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 ""
-"\"huge page\" を使ってマッピングを割り当てる。 詳しい情報は、カーネル・ソース"
-"の I<Documentation/vm/hugetlbpage.txt> を参照。"
+"\"huge page\" を使ってマッピングを割り当てる。詳しい情報は、Linux カーネル"
+"ã\82½ã\83¼ã\82¹ã\81® I<Documentation/vm/hugetlbpage.txt> ã\82\92å\8f\82ç\85§ã\80\82"
#. 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 "B<MAP_LOCKED> (Linux 2.5.37 以降)"
#. 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."
+"Lock the pages of the mapped region into memory in the manner of "
+"B<mlock>(2). This flag is ignored in older kernels."
msgstr ""
-"マップされた領域のページを B<mlock>(2) の方法でメモリ内にロックする。 それ以"
-"前のカーネルでは、このフラグは無視される。"
+"マップされた領域のページを B<mlock>(2) の方法でメモリー内にロックする。 それ"
+"以前のカーネルでは、このフラグは無視される。"
#. 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 "B<MAP_NONBLOCK> (Linux 2.5.46 以降)"
#. 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 present in "
+"ahead: create page tables entries only for pages that are already present in "
"RAM. Since Linux 2.6.23, this flag causes B<MAP_POPULATE> to do nothing. "
"One day the combination of B<MAP_POPULATE> and B<MAP_NONBLOCK> may be "
"reimplemented."
msgstr ""
"B<MAP_POPULATE> と組み合わせた場合のみ意味を持つ。 read-ahead (前もって読み込"
-"むこと) を実行しない。 単に、すでに RAM 上に存在するページに対して ページテー"
-"ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81 ã\81\91ã\81§ã\81\82る。 Linux 2.6.23 以降では、このフラグは "
+"むこと) を実行しない。 単に、すでに RAM 上に存在するページに対してのみページ"
+"ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ä½\9cæ\88\90ã\81\99る。 Linux 2.6.23 以降では、このフラグは "
"B<MAP_POPULATE> に何の影響も与えない。 いつか B<MAP_POPULATE> と "
"B<MAP_NONBLOCK> を組み合わせた場合の動作は実装し直されるかもしれない。"
#. type: TP
-#: build/C/man2/mmap.2:255
+#: build/C/man2/mmap.2:257
#, no-wrap
msgid "B<MAP_NORESERVE>"
msgstr "B<MAP_NORESERVE>"
#. 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 "
"space is not reserved one might get B<SIGSEGV> upon a write if no physical "
"memory is available. See also the discussion of the file I</proc/sys/vm/"
-"overcommit_memory> in B<proc>(5). In kernels before 2.6, this flag only had "
-"effect for private writable mappings."
+"overcommit_memory> in B<proc>(5). In kernels before 2.6, this flag had "
+"effect only for private writable mappings."
msgstr ""
"このマッピングに対するスワップ空間の予約を行わない。 スワップ空間を予約した場"
"合は、このマッピングの変更が必ず可能なことが 保証される。予約を行わなかった場"
-"å\90\88ã\80\81ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\81«ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\81¨ æ\9b¸ã\81\8dè¾¼ã\81¿æ\99\82ã\81« B<SIGSEGV> ã\82¨ã\83©ã\83¼ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82"
-"ã\82\8bã\80\82 B<proc>(5) ã\81® I</proc/sys/vm/overcommit_memory> ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¤ã\81\84ã\81¦ã\81®è°è«\96"
-"も参照。 バージョン 2.6 より前のカーネルでは、このフラグは書き込み可能な プラ"
-"ã\82¤ã\83\99ã\83¼ã\83\88ã\83»マッピングについてのみ効果があった。"
+"å\90\88ã\80\81ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81«ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\81¨ æ\9b¸ã\81\8dè¾¼ã\81¿æ\99\82ã\81« B<SIGSEGV> ã\82¨ã\83©ã\83¼ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8c"
+"ã\81\82ã\82\8bã\80\82 B<proc>(5) ã\81® I</proc/sys/vm/overcommit_memory> ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¤ã\81\84ã\81¦ã\81®è°"
+"論も参照。 バージョン 2.6 より前のカーネルでは、このフラグは書き込み可能な プ"
+"ã\83©ã\82¤ã\83\99ã\83¼ã\83\88マッピングについてのみ効果があった。"
#. 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 "B<MAP_POPULATE> (Linux 2.5.46 以降)"
#. 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 "
-"blocked by page faults. B<MAP_POPULATE> is only supported for private "
-"mappings since Linux 2.6.23."
+"blocked by page faults. B<MAP_POPULATE> is supported for private mappings "
+"only since Linux 2.6.23."
msgstr ""
"マッピング用のページテーブルを配置 (populate) する ファイルマッピングの場合に"
"は、これによりファイルが先読み (read-ahead) が行われる。この以後は、マッピン"
-"グに対するアクセスがページフォールトで ブロックされることがなくなる。 "
-"B<MAP_POPULATE> は Linux 2.6.23 以降でプライベート・マッピングについてのみ サ"
-"ã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82"
+"グに対するアクセスがページフォールトで ブロックされることがなくなる。 Linux "
+"2.6.23 以降でのみプライベートマッピングについて B<MAP_POPULATE> がサポートさ"
+"れている。"
#. 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 "B<MAP_STACK> (Linux 2.6.27 以降)"
#. "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 ""
"プロセスやスレッドのスタックに適したアドレスにマッピングを割り当てる。 現在の"
"ところ、このフラグは何もしないが、 glibc のスレッド実装では使用されている。 "
-"ã\81\93ã\82\8cã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«é\96¢ã\81\97ã\81¦ç\89¹å\88¥ã\81ªæ\89±ã\81\84 ã\81\8cå¿\85"
-"要な場合に、glibc にそのサポートを後で透過的に実装できるようにする ためであ"
+"ã\81\93ã\82\8cã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«é\96¢ã\81\97ã\81¦ç\89¹å\88¥ã\81ªæ\89±ã\81\84 ã\81\8c"
+"必要な場合に、glibc にそのサポートを後で透過的に実装できるようにする ためであ"
"る。"
#. 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 "B<MAP_UNINITIALIZED> (Linux 2.6.33 以降)"
#. 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 "
+"on embedded devices. This flag is honored only if the kernel was configured "
"with the B<CONFIG_MMAP_ALLOW_UNINITIALIZED> option. Because of the security "
"implications, that option is normally enabled only on embedded devices (i."
"e., devices where one has complete control of the contents of user memory)."
"B<CONFIG_MMAP_ALLOW_UNINITIALIZED> オプションが有効になっている場合のみ、\n"
"このフラグは効果を持つ。\n"
"セキュリティ面の考慮から、このオプションは通常組み込みデバイス (すなわち、\n"
-"ユーザメモリの内容を完全に制御化におけるデバイス) においてのみ有効にされる。"
+"ユーザーメモリーの内容を完全に制御化におけるデバイス) においてのみ有効にされ"
+"る。"
#. 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 "
"B<MAP_ANON>) もサポートされている。"
#. 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>."
"B<MAP_AUTORESRV>, B<MAP_COPY>, B<MAP_LOCAL> が規定されている。"
#. 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 ""
-"B<mmap>() によってマップされたメモリの属性は B<fork>(2) の際に継承される。"
+"B<mmap>() によってマップされたメモリーの属性は B<fork>(2) の際に継承され"
+"る。"
#. 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 "
"マップされたページに対してどのような影響があるかは規定されていない。"
#. type: SS
-#: build/C/man2/mmap.2:329
+#: build/C/man2/mmap.2:331
#, no-wrap
msgid "munmap()"
msgstr "munmap()"
#. 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 "
"file descriptor does not unmap the region."
msgstr ""
"システムコール B<munmap>() は指定されたアドレス範囲のマップを消去し、 これ以"
-"降のその範囲内へのメモリ参照は不正となる。 この領域は、プロセスが終了したとき"
-"ã\81«ã\82\82è\87ªå\8b\95ç\9a\84ã\81«ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\82\8bã\80\82 ä¸\80æ\96¹ã\80\81ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°å\90ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\82\82ã\80\81ã\81\93ã\81®é \98å\9f\9f"
-"はアンマップされない。"
+"降のその範囲内へのメモリー参照は不正となる。 この領域は、プロセスが終了したと"
+"ã\81\8dã\81«ã\82\82è\87ªå\8b\95ç\9a\84ã\81«ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\82\8bã\80\82 ä¸\80æ\96¹ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦"
+"ã\82\82ã\80\81ã\81\93ã\81®é \98å\9f\9fã\81¯ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81ªã\81\84ã\80\82"
#. 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 "
"ていない場合でも エラーにならない。"
#. 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; "
"ページへの最初の参照があった 際に更新される。"
#. 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 "
"B<msync>(2) が呼ばれる前までに更新される。"
#. 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> "
"is set appropriately. On success, B<munmap>() returns 0, on failure -1, "
"and I<errno> is set (probably to B<EINVAL>)."
msgstr ""
-"B<mmap>() は成功するとマップされた領域へのポインタを返す。 失敗すると値 "
+"B<mmap>() ã\81¯æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\99ã\82\8bã\81¨å\80¤ "
"B<MAP_FAILED> (つまり I<(void\\ *)\\ -1>) を返し、 I<errno> がエラーの内容に"
"したがってセットされる。 B<munmap>() は成功すると 0 を返す。失敗すると -1 を"
"返し、 I<errno> がセットされる (多くの場合 B<EINVAL> になるだろう)。"
#. 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:85
+#: build/C/man3/shm_open.3:187 build/C/man3/shm_open.3:192
+#: build/C/man2/shmctl.2:306 build/C/man2/shmget.2:192
+#: build/C/man2/shmop.2:188
#, no-wrap
msgid "B<EACCES>"
msgstr "B<EACCES>"
#. type: Plain text
#: build/C/man2/mmap.2:411
msgid ""
-"A file descriptor refers to a non-regular file. Or B<MAP_PRIVATE> was "
+"A file descriptor refers to a non-regular file. Or a file mapping was "
"requested, but I<fd> is not open for reading. Or B<MAP_SHARED> was "
"requested and B<PROT_WRITE> is set, but I<fd> is not open in read/write "
"(B<O_RDWR>) mode. Or B<PROT_WRITE> is set, but the file is append-only."
msgstr ""
-"以下のいずれかの場合。 ファイル記述子の参照先が通常のファイルではない (non-"
-"regular file) 。 B<MAP_PRIVATE> を要求したが I<fd> は読み込み用にオープンされ"
-"ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 B<MAP_SHARED> ã\82\92è¦\81æ±\82ã\81\97ã\81¦ B<PROT_WRITE> ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81\9fã\81\8c I<fd> ã\81¯èªã\81¿"
-"書きモード (B<O_RDWR>) でオープンされていない、 B<PROT_WRITE> をセットした"
-"が、ファイルは追加 (append) 専用である。"
+"以下のいずれかの場合。 ファイルディスクリプターの参照先が通常のファイルではな"
+"い (non-regular file) 。 ファイルマッピングを要求したが I<fd> は読み込み用に"
+"ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 B<MAP_SHARED> ã\82\92è¦\81æ±\82ã\81\97ã\81¦ B<PROT_WRITE> ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81\9fã\81\8c "
+"I<fd> は読み書きモード (B<O_RDWR>) でオープンされていない、 B<PROT_WRITE> を"
+"ã\82»ã\83\83ã\83\88ã\81\97ã\81\9fã\81\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81¯è¿½å\8a (append) å°\82ç\94¨ã\81§ã\81\82ã\82\8bã\80\82"
#. type: Plain text
#: build/C/man2/mmap.2:415
"The file has been locked, or too much memory has been locked (see "
"B<setrlimit>(2))."
msgstr ""
-"ファイルがロックされている。またはロックされているメモリが多すぎる "
+"ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ã\81¾ã\81\9fã\81¯ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå¤\9aã\81\99ã\81\8eã\82\8b "
"(B<setrlimit>(2) を参照)。"
#. type: Plain text
msgid ""
"I<fd> is not a valid file descriptor (and B<MAP_ANONYMOUS> was not set)."
msgstr ""
-"I<fd> が有効なファイル記述子 (file descriptor) ではない (かつ "
+"I<fd> が有効なファイルディスクリプター (file descriptor) ではない (かつ "
"B<MAP_ANONYMOUS> がセットされていない)。"
#. type: Plain text
"しくは その両方が含まれていた。"
#. 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:442 build/C/man3/shm_open.3:229
+#: build/C/man2/shmget.2:221 build/C/man2/memfd_create.2:149
#, no-wrap
msgid "B<ENFILE>"
msgstr "B<ENFILE>"
#. [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:450 build/C/man2/shmget.2:225
msgid "The system limit on the total number of open files has been reached."
msgstr "システム全体でオープンされているファイルの総数が上限に達した。"
#. type: Plain text
#: build/C/man2/mmap.2:454
msgid ""
-"The underlying file system of the specified file does not support memory "
+"The underlying filesystem of the specified file does not support memory "
"mapping."
msgstr ""
-"æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81\8cç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ã\82µã\83\9dã\83¼ã\83\88 "
-"していない。"
+"æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81\8cç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ã\82µã\83\9dã\83¼"
+"ã\83\88 ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82"
#. type: Plain text
#: build/C/man2/mmap.2:458
"No memory is available, or the process's maximum number of mappings would "
"have been exceeded."
msgstr ""
-"メモリに空きがない、または処理中のプロセスのマッピング数が最大数を超過した。"
+"メモリーに空きがない、または処理中のプロセスのマッピング数が最大数を超過し"
+"た。"
#. (Since 2.4.25 / 2.6.0.)
#. type: Plain text
#: build/C/man2/mmap.2:467
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."
+"file on a filesystem that was mounted no-exec."
msgstr ""
"I<prot> 引き数は B<PROT_EXEC> を行うように指定されているが、 no-exec でマウン"
"トされたファイルシステム上のファイルに マップ領域が対応している。"
-#. type: TP
-#: build/C/man2/mmap.2:467
-#, no-wrap
-msgid "B<ETXTBSY>"
-msgstr "B<ETXTBSY>"
-
#. type: Plain text
-#: build/C/man2/mmap.2:473
+#: build/C/man2/mmap.2:477
msgid ""
"B<MAP_DENYWRITE> was set but the object specified by I<fd> is open for "
"writing."
"B<MAP_DENYWRITE> がセットされているが I<fd> で指定されているオブジェクトは書"
"き込み用に開かれている。"
+#. type: TP
+#: build/C/man2/mmap.2:477 build/C/man2/shmctl.2:348
+#, no-wrap
+msgid "B<EOVERFLOW>"
+msgstr "B<EOVERFLOW>"
+
+#. type: Plain text
+#: build/C/man2/mmap.2:489
+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 ""
+"32 ビットアーキテクチャーで large file 拡張を使っている場合 (つまり 64 ビット"
+"の I<off_t> を使う場合)、 I<length> で使うページ数と I<offset> で使うページ数"
+"を足した値は I<unsigned long> (32 ビット) を超えてしまう (オーバーフローして"
+"しまう) 場合がある。"
+
#. type: Plain text
-#: build/C/man2/mmap.2:475
+#: build/C/man2/mmap.2:491
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:491
#, no-wrap
msgid "B<SIGSEGV>"
msgstr "B<SIGSEGV>"
#. type: Plain text
-#: build/C/man2/mmap.2:478
+#: build/C/man2/mmap.2:494
msgid "Attempted write into a region mapped as read-only."
msgstr "読み込み専用で mmap された領域へ書き込みを行おうとした。"
#. type: TP
-#: build/C/man2/mmap.2:478
+#: build/C/man2/mmap.2:494
#, no-wrap
msgid "B<SIGBUS>"
msgstr "B<SIGBUS>"
#. type: Plain text
-#: build/C/man2/mmap.2:483
+#: build/C/man2/mmap.2:499
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 "
"another process has truncated the file)."
msgstr ""
-"ã\83\90ã\83\83ã\83\95ã\82¡ã\81®ã\81\86ã\81¡ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81ªã\81\84é\83¨å\88\86 (ä¾\8bã\81\88ã\81°ã\83\95ã\82¡ã\82¤ã\83«æ\9c«å°¾ã\82\92è¶\8aã\81\88"
-"ã\81\9fé\83¨å\88\86ã\81ªã\81©ã\80\82ã\81\93ã\82\8cã\81«ã\81¯ ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\88\87ã\82\8aè©°ã\82\81ã\81\9få ´å\90\88ã\81ªã\81©ã\82\82å\90«ã\81¾ã\82\8cã\82\8b) "
-"にアクセスしようとした。"
+"ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81ªã\81\84é\83¨å\88\86 (ä¾\8bã\81\88ã\81°ã\83\95ã\82¡ã\82¤ã\83«æ\9c«å°¾ã\82\92è¶\8a"
+"ã\81\88ã\81\9fé\83¨å\88\86ã\81ªã\81©ã\80\82ã\81\93ã\82\8cã\81«ã\81¯ ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\88\87ã\82\8aè©°ã\82\81ã\81\9få ´å\90\88ã\81ªã\81©ã\82\82å\90«ã\81¾ã\82\8c"
+"ã\82\8b) ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82"
#. 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:503
msgid "SVr4, 4.4BSD, POSIX.1-2001."
msgstr "SVr4, 4.4BSD, POSIX.1-2001."
#. -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:517
msgid ""
-"On POSIX systems on which B<mmap>(), B<msync>(2) and B<munmap>() are "
+"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 "
"value greater than 0. (See also B<sysconf>(3).)"
msgstr ""
"B<_POSIX_MAPPED_FILES> は E<lt>unistd.hE<gt> で 0 より大きな値に定義される "
"(B<sysconf>(3) も参照のこと)。"
-#. Since around glibc 2.1/2.2, depending on the platform.
-#. type: Plain text
-#: build/C/man2/mmap.2:516
-msgid ""
-"This page describes the interface provided by the glibc B<mmap>() wrapper "
-"function. Originally, this function invoked a system call of the same "
-"name. Since kernel 2.4, that system call has been superseded by B<mmap2>"
-"(2), and nowadays the glibc B<mmap>() wrapper function invokes B<mmap2>(2) "
-"with a suitably adjusted value for I<offset>."
-msgstr ""
-"このページでは glibc の B<mmap>() のラッパー関数が提供するインターフェース"
-"に\n"
-"ついて説明している。元々は、この関数は同じ名前のシステムコールを起動してい"
-"た。\n"
-"カーネル 2.4 以降、このシステムコールは B<mmap2>(2) に取って代わられ、現在\n"
-"では、 glibc の B<mmap>() のラッパー関数は I<offset> を適切に調整してから\n"
-"B<mmap2>(2) を起動する。"
-
#. type: Plain text
-#: build/C/man2/mmap.2:529
+#: build/C/man2/mmap.2:530
msgid ""
"On some hardware architectures (e.g., i386), B<PROT_WRITE> implies "
"B<PROT_READ>. It is architecture dependent whether B<PROT_READ> implies "
"B<PROT_EXEC> or not. Portable programs should always set B<PROT_EXEC> if "
"they intend to execute code in the new mapping."
msgstr ""
-"(i386 ã\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81¯ã\80\81 B<PROT_WRITE> ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81æ\9a\97"
-"黙のうちに B<PROT_READ> がセットされる。 B<PROT_READ> をセットした際に暗黙の"
-"ã\81\86ã\81¡ã\81« B<PROT_EXEC> ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ä¾\9då\98ã\81§ã\81\82ã\82\8bã\80\82 移æ¤\8d"
-"性を考慮したプログラムでは、 新規にマップした領域でコードを実行したい場合は、"
-"常に B<PROT_EXEC> をセットすべきである。"
+"(i386 ã\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 B<PROT_WRITE> ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81"
+"暗黙のうちに B<PROT_READ> がセットされる。 B<PROT_READ> をセットした際に暗黙"
+"ã\81®ã\81\86ã\81¡ã\81« B<PROT_EXEC> ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ä¾\9då\98ã\81§ã\81\82ã\82\8bã\80\82 "
+"移植性を考慮したプログラムでは、 新規にマップした領域でコードを実行したい場合"
+"は、常に B<PROT_EXEC> をセットすべきである。"
#. type: Plain text
-#: build/C/man2/mmap.2:544
+#: build/C/man2/mmap.2:545
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 "
"I<addr> が 0 (NULL) の場合には、マップされるアドレスが 0 (NULL) になる。"
#. type: Plain text
-#: build/C/man2/mmap.2:549
+#: build/C/man2/mmap.2:575
+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 ""
+"特定の I<flags> 定数は B<_BSD_SOURCE> か B<_SVID_SOURCE> のいずれかが定義され"
+"た場合にのみ定義される。 (B<_GNU_SOURCE> も定義されている必要がある。これらの"
+"フラグはすべて Linux 固有のものなので、 特に B<_GNU_SOURCE> を必要とする点は"
+"もっと論理的に決められるべきであった。) 関係するフラグは B<MAP_32BIT>, "
+"B<MAP_ANONYMOUS> (とその同義語の 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>, "
+"B<MAP_STACK> である。"
+
+#. type: SS
+#: build/C/man2/mmap.2:575
+#, no-wrap
+msgid "C library/kernel ABI differences"
+msgstr "C ライブラリとカーネル ABI の違い"
+
+#. Since around glibc 2.1/2.2, depending on the platform.
+#. type: Plain text
+#: build/C/man2/mmap.2:590
+msgid ""
+"This page describes the interface provided by the glibc B<mmap>() wrapper "
+"function. Originally, this function invoked a system call of the same "
+"name. Since kernel 2.4, that system call has been superseded by "
+"B<mmap2>(2), and nowadays the glibc B<mmap>() wrapper function invokes "
+"B<mmap2>(2) with a suitably adjusted value for I<offset>."
+msgstr ""
+"このページでは glibc の B<mmap>() のラッパー関数が提供するインターフェース"
+"に\n"
+"ついて説明している。元々は、この関数は同じ名前のシステムコールを起動してい"
+"た。\n"
+"カーネル 2.4 以降、このシステムコールは B<mmap2>(2) に取って代わられ、現在\n"
+"では、 glibc の B<mmap>() のラッパー関数は I<offset> を適切に調整してから\n"
+"B<mmap2>(2) を起動する。"
+
+#. type: Plain text
+#: build/C/man2/mmap.2:595
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 "
"the system runs out of memory."
msgstr ""
"Linux においては、上記の B<MAP_NORESERVE> で述べられているような保証はない。 "
-"ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83¡ã\83¢ã\83ªã\82\92使ã\81\84å\88\87ã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 ã\81©ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\84ã\81¤å¼·å\88¶"
-"終了されるか分からないからである。"
+"ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ã\81\84å\88\87ã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 ã\81©ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\84ã\81¤å¼·"
+"制終了されるか分からないからである。"
#. type: Plain text
-#: build/C/man2/mmap.2:556
+#: build/C/man2/mmap.2:602
msgid ""
-"In kernels before 2.6.7, the B<MAP_POPULATE> flag only has effect if I<prot> "
+"In kernels before 2.6.7, the B<MAP_POPULATE> flag has effect only if I<prot> "
"is specified as B<PROT_NONE>."
msgstr ""
"2.6.7 より前のカーネルでは、 I<prot> に B<PROT_NONE> が指定された場合にの"
"み、 B<MAP_POPULATE> フラグが効力を持つ。"
#. type: Plain text
-#: build/C/man2/mmap.2:571
+#: build/C/man2/mmap.2:617
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 "
"では、 B<mmap>() はエラー B<EINVAL> で失敗する。"
#. type: Plain text
-#: build/C/man2/mmap.2:583
+#: build/C/man2/mmap.2:633
+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 ""
+"POSIX では、 システムはオブジェクト末尾の部分ページを常に 0 で埋め、 末尾より"
+"後ろのオブジェクトを決して変更してはならない、と規定している。 Linux では、 "
+"オブジェクト末尾より後ろの部分ページにデータを書き込んだ場合、 そのファイルを"
+"クローズしてアンマップした後であってもページキャッシュにデータが残り続け、 "
+"データがファイル自体に書き込まれていなくても、 それ以降のマッピングで変更され"
+"た内容が見える可能性がある。 いくつかの場合では、 アンマップを行う前に "
+"B<msync>(2) を呼び出すことで、 この状況を修正することができる。 しかし、 これ"
+"は tmpfs では機能しない (例えば、 B<shm_overview>(7) で説明されている POSIX "
+"共有メモリーインターフェースを使った場合)。"
+
+#. type: Plain text
+#: build/C/man2/mmap.2:645
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 is "
"以下のプログラムは、一番目のコマンドライン引き数で指定された ファイルの一部を"
"標準出力に表示する。 表示する範囲は、二番目、三番目のコマンドライン引き数で渡"
"される オフセットと長さで指定される。 このプログラムは、指定されたファイルの"
-"å¿\85è¦\81ã\81ªã\83\9aã\83¼ã\82¸ã\81®ã\83¡ã\83¢ã\83ªã\83» マッピングを作成し、 B<write>(2) を使って所望のバイト"
+"å¿\85è¦\81ã\81ªã\83\9aã\83¼ã\82¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼ マッピングを作成し、 B<write>(2) を使って所望のバイト"
"を出力する。"
#. type: Plain text
-#: build/C/man2/mmap.2:591
+#: build/C/man2/mmap.2:653
#, no-wrap
msgid ""
"#include E<lt>sys/mman.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/mmap.2:594 build/C/man2/mprotect.2:172
+#: build/C/man2/mmap.2:656 build/C/man2/mprotect.2:177
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
#. type: Plain text
-#: build/C/man2/mmap.2:604
+#: build/C/man2/mmap.2:666
#, no-wrap
msgid ""
"int\n"
" ssize_t s;\n"
#. type: Plain text
-#: build/C/man2/mmap.2:609
+#: build/C/man2/mmap.2:671
#, no-wrap
msgid ""
" if (argc E<lt> 3 || argc E<gt> 4) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/mmap.2:613
+#: build/C/man2/mmap.2:675
#, no-wrap
msgid ""
" fd = open(argv[1], O_RDONLY);\n"
" handle_error(\"open\");\n"
#. type: Plain text
-#: build/C/man2/mmap.2:616
+#: build/C/man2/mmap.2:678
#, no-wrap
msgid ""
" if (fstat(fd, &sb) == -1) /* To obtain file size */\n"
" handle_error(\"fstat\");\n"
#. type: Plain text
-#: build/C/man2/mmap.2:620
+#: build/C/man2/mmap.2:682
#, no-wrap
msgid ""
" offset = atoi(argv[2]);\n"
" /* offset for mmap() must be page aligned */\n"
#. type: Plain text
-#: build/C/man2/mmap.2:625
+#: build/C/man2/mmap.2:687
#, no-wrap
msgid ""
" if (offset E<gt>= sb.st_size) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/mmap.2:631
+#: build/C/man2/mmap.2:693
#, no-wrap
msgid ""
" if (argc == 4) {\n"
" /* Can\\(aqt display bytes past end of file */\n"
#. type: Plain text
-#: build/C/man2/mmap.2:635
+#: build/C/man2/mmap.2:697
#, no-wrap
msgid ""
" } else { /* No length arg ==E<gt> display to end of file */\n"
" }\n"
#. type: Plain text
-#: build/C/man2/mmap.2:640
+#: build/C/man2/mmap.2:702
#, no-wrap
msgid ""
" addr = mmap(NULL, length + offset - pa_offset, PROT_READ,\n"
" handle_error(\"mmap\");\n"
#. type: Plain text
-#: build/C/man2/mmap.2:645
+#: build/C/man2/mmap.2:707
#, no-wrap
msgid ""
" s = write(STDOUT_FILENO, addr + offset - pa_offset, length);\n"
" handle_error(\"write\");\n"
#. type: Plain text
-#: build/C/man2/mmap.2:649
+#: build/C/man2/mmap.2:711
#, no-wrap
msgid ""
" fprintf(stderr, \"partial write\");\n"
" }\n"
#. type: Plain text
-#: build/C/man2/mmap.2:666
+#: build/C/man2/mmap.2:729
+msgid ""
+"B<getpagesize>(2), B<memfd_create>(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), B<shmat>(2), B<shm_open>(3), "
+"B<shm_overview>(7)"
+msgstr ""
+"B<getpagesize>(2), B<memfd_create>(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), B<shmat>(2), B<shm_open>(3), "
+"B<shm_overview>(7)"
+
+#. type: Plain text
+#: build/C/man2/mmap.2:736
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), B<shmat>"
-"(2), B<shm_open>(3), B<shm_overview>(7)"
+"The descriptions of the following files in B<proc>(5): I</proc/[pid]/maps>, "
+"I</proc/[pid]/map_files>, and I</proc/[pid]/smaps>."
msgstr ""
-"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), B<shmat>"
-"(2), B<shm_open>(3), B<shm_overview>(7)"
+"B<proc>(5) の I</proc/[pid]/maps>, I</proc/[pid]/map_files>, I</proc/[pid]/"
+"smaps> の説明。"
#. type: Plain text
-#: build/C/man2/mmap.2:671 build/C/man2/msync.2:122
+#: build/C/man2/mmap.2:741 build/C/man2/msync.2:151
msgid "B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391."
msgstr "B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391."
msgid "MMAP2"
msgstr "MMAP2"
+#. type: TH
+#: build/C/man2/mmap2.2:29
+#, no-wrap
+msgid "2014-02-25"
+msgstr "2014-02-25"
+
#. type: Plain text
#: build/C/man2/mmap2.2:32
msgid "mmap2 - map files or devices into memory"
-msgstr "mmap2 - ファイルやデバイスをメモリにマップする"
+msgstr "mmap2 - ã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8b"
#. type: Plain text
#: build/C/man2/mmap2.2:38
#. type: Plain text
#: build/C/man2/mmap2.2:43
msgid ""
-"This is probably not the system call you are interested; instead, see B<mmap>"
-"(2), which describes the glibc wrapper function that invokes this system "
-"call."
+"This is probably not the system call that you are interested in; instead, "
+"see B<mmap>(2), which describes the glibc wrapper function that invokes this "
+"system call."
msgstr ""
"これはおそらくあなたが興味のあるシステムコールではないだろう。代わりに\n"
"B<mmap>(2) を見るとよい。そのページにはこのシステムコールを起動する glibc "
#. type: Plain text
#: build/C/man2/mmap2.2:61
msgid ""
-"On success, B<mmap2>() returns a pointer to the mapped area. On error -1 "
+"On success, B<mmap2>() returns a pointer to the mapped area. On error, -1 "
"is returned and I<errno> is set appropriately."
msgstr ""
-"æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 B<mmap2>() ã\81¯ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´"
-"合は -1 が返されて、 I<errno> が適切に設定される。"
+"æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 B<mmap2>() ã\81¯ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®"
+"å ´å\90\88ã\81¯ -1 ã\81\8cè¿\94ã\81\95ã\82\8cã\81¦ã\80\81 I<errno> ã\81\8cé\81©å\88\87ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82"
#. type: Plain text
#: build/C/man2/mmap2.2:65
-msgid "Problem with getting the data from userspace."
-msgstr "ユーザ空間からデータを取得するときに問題があった。"
+msgid "Problem with getting the data from user space."
+msgstr "ユーザー空間からデータを取得するときに問題があった。"
#. type: Plain text
#: build/C/man2/mmap2.2:70
msgid ""
-"(Various platforms where the page size is not 4096 bytes.) I<offset * 4096> "
-"is not a multiple of the system page size."
+"(Various platforms where the page size is not 4096 bytes.) I<offset\\ *\\ "
+"4096> is not a multiple of the system page size."
msgstr ""
-"(ページサイズが 4096 バイトでないプラットフォームにおいて) I<offset * 4096> "
-"がシステムのページサイズの倍数ではない。"
+"(ページサイズが 4096 バイトでないプラットフォームにおいて) I<offset\\ *\\ "
+"4096> がシステムのページサイズの倍数ではない。"
#. type: Plain text
#: build/C/man2/mmap2.2:74
msgstr "B<mmap2>() は、Linux 2.3.31 以降で使用可能である。"
#. 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 "このシステムコールは Linux 独自である。"
#. type: Plain text
-#: build/C/man2/mmap2.2:85
+#: build/C/man2/mmap2.2:86
msgid ""
-"Nowadays, the glibc B<mmap>() wrapper function invokes this system call "
-"rather than the B<mmap>(2) system call."
+"On architectures where this system call is present, the glibc B<mmap>() "
+"wrapper function invokes this system call rather than the B<mmap>(2) system "
+"call."
msgstr ""
-"現在では、glibc の B<mmap>() のラッパー関数は、 B<mmap>(2) システムコールで"
-"はなく、このシステムコール (B<mmap2>(2)) を起動する。"
+"このシステムコールが存在するアーキテクチャーでは、glibc の B<mmap>() のラッ"
+"パー関数は、 B<mmap>(2) システムコールではなく、このシステムコール "
+"(B<mmap2>(2)) を起動する。"
+
+#. type: Plain text
+#: build/C/man2/mmap2.2:88
+msgid "This system call does not exist on x86-64."
+msgstr "このシステムコールは x86-64 には存在しない。"
#. ia64 can have page sizes ranging from 4kB to 64kB.
#. On cris, it looks like the unit might also be the page size,
#. which is 8192 bytes. -- mtk, June 2007
#. type: Plain text
-#: build/C/man2/mmap2.2:92
+#: build/C/man2/mmap2.2:95
msgid ""
"On ia64, the unit for I<offset> is actually the system page size, rather "
"than 4096 bytes."
"バイトではない。"
#. type: Plain text
-#: build/C/man2/mmap2.2:98
+#: build/C/man2/mmap2.2:101
msgid ""
"B<getpagesize>(2), B<mmap>(2), B<mremap>(2), B<msync>(2), B<shm_open>(3)"
msgstr ""
"B<getpagesize>(2), B<mmap>(2), B<mremap>(2), B<msync>(2), B<shm_open>(3)"
#. type: TH
-#: build/C/man2/mprotect.2:32
+#: build/C/man2/mprotect.2:39
#, no-wrap
msgid "MPROTECT"
msgstr "MPROTECT"
#. type: TH
-#: build/C/man2/mprotect.2:32
+#: build/C/man2/mprotect.2:39
#, no-wrap
-msgid "2011-09-08"
-msgstr "2011-09-08"
+msgid "2014-01-05"
+msgstr "2014-01-05"
#. type: Plain text
-#: build/C/man2/mprotect.2:35
+#: build/C/man2/mprotect.2:42
msgid "mprotect - set protection on a region of memory"
-msgstr "mprotect - メモリ領域の保護を設定する"
+msgstr "mprotect - メモリー領域の保護を設定する"
#. type: Plain text
-#: build/C/man2/mprotect.2:40
+#: build/C/man2/mprotect.2:47
#, no-wrap
-msgid "B<int mprotect(const void *>I<addr>B<, size_t >I<len>B<, int >I<prot>B<);>\n"
-msgstr "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 "B<int mprotect(void *>I<addr>B<, size_t >I<len>B<, int >I<prot>B<);>\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:48
+#: build/C/man2/mprotect.2:55
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>,\\ I<addr>"
"+I<len>-1]. I<addr> must be aligned to a page boundary."
msgstr ""
"B<mprotect>() は、区間 [I<addr>,\\ I<addr>+I<len>-1] のアドレス範囲を含む 呼"
-"ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83\9aã\83¼ã\82¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè·ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 I<addr> ã\81¯ã\83\9aã\83¼ã\82¸å¢\83"
-"界に一致していなければならない。"
+"ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè·ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 I<addr> ã\81¯ã\83\9aã\83¼ã\82¸"
+"境界に一致していなければならない。"
#. type: Plain text
-#: build/C/man2/mprotect.2:53
+#: build/C/man2/mprotect.2:60
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 ""
-"å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè·ã\81«é\81\95å\8f\8dã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\83¡ã\83¢ã\83ªã\82¢ã\82¯ã\82»ã\82¹ã\82\92 è¡\8cã\81\8aã\81\86ã\81¨ã\81\99"
-"ると、カーネルはシグナル B<SIGSEGV> をそのプロセスに対して生成する。"
+"å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè·ã\81«é\81\95å\8f\8dã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\82\92 è¡\8cã\81\8aã\81\86ã\81¨"
+"ã\81\99ã\82\8bã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\82·ã\82°ã\83\8aã\83« B<SIGSEGV> ã\82\92ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/mprotect.2:58
+#: build/C/man2/mprotect.2:65
msgid ""
"I<prot> is either B<PROT_NONE> or a bitwise-or of the other values in the "
"following list:"
"毎の論理和 (bitwize-or) で指定する:"
#. type: Plain text
-#: build/C/man2/mprotect.2:61
+#: build/C/man2/mprotect.2:68
msgid "The memory cannot be accessed at all."
-msgstr "そのメモリには全くアクセスできない。"
+msgstr "ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¯å\85¨ã\81\8fã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man2/mprotect.2:64
+#: build/C/man2/mprotect.2:71
msgid "The memory can be read."
-msgstr "そのメモリを読み取ることができる。"
+msgstr "ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92èªã\81¿å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/mprotect.2:67
+#: build/C/man2/mprotect.2:74
msgid "The memory can be modified."
-msgstr "そのメモリを変更できる。"
+msgstr "ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\80\82"
-#. FIXME
-#. Document PROT_GROWSUP and PROT_GROWSDOWN
#. type: Plain text
-#: build/C/man2/mprotect.2:72
+#: build/C/man2/mprotect.2:77
msgid "The memory can be executed."
-msgstr "そのメモリは実行可能である。"
+msgstr "ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯å®\9fè¡\8cå\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/mprotect.2:79
+#: build/C/man2/mprotect.2:84
msgid ""
"On success, B<mprotect>() returns zero. On error, -1 is returned, and "
"I<errno> is set appropriately."
"I<errno> が適切に設定される。"
#. type: Plain text
-#: build/C/man2/mprotect.2:89
+#: build/C/man2/mprotect.2:94
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 "
"ask B<mprotect>() to mark it B<PROT_WRITE>."
msgstr ""
-"æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\82¯ã\82»ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\81«è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81ä¾\8bã\81\88ã\81° ã\83\95ã\82¡ã\82¤ã\83«"
-"ã\82\92èªã\81¿å\8f\96ã\82\8aå°\82ç\94¨ã\81§ B<mmap>(2) ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81ã\81\9dã\81®é \98å\9f\9fã\81«å¯¾ã\81\97ã\81¦ B<mprotect>() ã\82\92å\91¼ã\81³"
-"出して B<PROT_WRITE> に設定しようとした場合に発生する。"
+"æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\82¯ã\82»ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81ä¾\8bã\81\88ã\81° ã\83\95ã\82¡ã\82¤"
+"ã\83«ã\82\92èªã\81¿å\8f\96ã\82\8aå°\82ç\94¨ã\81§ B<mmap>(2) ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81ã\81\9dã\81®é \98å\9f\9fã\81«å¯¾ã\81\97ã\81¦ B<mprotect>() ã\82\92å\91¼"
+"び出して B<PROT_WRITE> に設定しようとした場合に発生する。"
#. 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:99
msgid ""
"I<addr> is not a valid pointer, or not a multiple of the system page size."
msgstr ""
-"I<addr> が有効なポインタでないか、 システムのページサイズの倍数でない。"
+"I<addr> ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man2/mprotect.2:97
+#: build/C/man2/mprotect.2:102
msgid "Internal kernel structures could not be allocated."
msgstr "カーネル内部の構造体を割り当てることができなかった。"
#. type: Plain text
-#: build/C/man2/mprotect.2:107
+#: build/C/man2/mprotect.2:112
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:121
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 "
"B<mmap>(2)."
msgstr ""
-"SVr4, POSIX.1-2001. POSIX では、 B<mmap>(2) 経由で獲得していないメモリ領域"
-"に対して B<mprotect>() を行った場合の B<mprotect>() の動作は未定義であると"
-"されている。"
+"SVr4, POSIX.1-2001. POSIX では、 B<mmap>(2) 経由で獲得していないメモリー領"
+"域に対して B<mprotect>() を行った場合の B<mprotect>() の動作は未定義である"
+"ã\81¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/mprotect.2:123
+#: build/C/man2/mprotect.2:128
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 "
"マッピングを書き込み可能にするために使われる。"
#. type: Plain text
-#: build/C/man2/mprotect.2:133
+#: build/C/man2/mprotect.2:138
msgid ""
"Whether B<PROT_EXEC> has any effect different from B<PROT_READ> is "
"architecture- and kernel version-dependent. On some hardware architectures "
"(e.g., i386), B<PROT_WRITE> implies B<PROT_READ>."
msgstr ""
-"B<PROT_EXEC> ã\81\8c B<PROT_READ> ã\81¨ç\95°ã\81ªã\82\8bå½±é\9f¿ã\82\92æ\8c\81ã\81¤ã\81\8bå\90¦ã\81\8bã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81¨ã\82«ã\83¼"
-"ã\83\8dã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 (i386 ã\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81¯ã\80\81 "
-"B<PROT_WRITE> をセットすると、暗黙のうちに B<PROT_READ> がセットされる。"
+"B<PROT_EXEC> ã\81\8c B<PROT_READ> ã\81¨ç\95°ã\81ªã\82\8bå½±é\9f¿ã\82\92æ\8c\81ã\81¤ã\81\8bå\90¦ã\81\8bã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81¨"
+"ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 (i386 ã\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§"
+"は、 B<PROT_WRITE> をセットすると、暗黙のうちに B<PROT_READ> がセットされる。"
#. type: Plain text
-#: build/C/man2/mprotect.2:142
+#: build/C/man2/mprotect.2:147
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 "
+"specified in I<prot>, but at a minimum can allow write access only if "
"B<PROT_WRITE> has been set, and must not allow any access if B<PROT_NONE> "
"has been set."
msgstr ""
"ない点だけは 満たす必要がある。"
#. type: Plain text
-#: build/C/man2/mprotect.2:148
+#: build/C/man2/mprotect.2:153
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 "
"allocated region modifying bytes."
msgstr ""
-"以ä¸\8bã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83\9aã\83¼ã\82¸ã\82\92 4ã\81¤ç¢ºä¿\9dã\81\97ã\80\81ã\81\9dã\81®ã\81\86ã\81¡ 3ç\95ªç\9b®ã\81®ã\83\9aã\83¼ã\82¸ã\82\92 èªã\81¿è¾¼"
-"み専用に設定する。その後で、確保した領域のアドレスの小さい方から 大きな方に向"
-"かって順番にバイト値を変更するループを実行する。"
+"以ä¸\8bã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\82\92 4ã\81¤ç¢ºä¿\9dã\81\97ã\80\81ã\81\9dã\81®ã\81\86ã\81¡ 3ç\95ªç\9b®ã\81®ã\83\9aã\83¼ã\82¸ã\82\92 èªã\81¿"
+"込み専用に設定する。その後で、確保した領域のアドレスの小さい方から 大きな方に"
+"向かって順番にバイト値を変更するループを実行する。"
#. type: Plain text
-#: build/C/man2/mprotect.2:151
+#: build/C/man2/mprotect.2:156
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:162
#, no-wrap
msgid ""
"$B< ./a.out>\n"
"Got SIGSEGV at address: 0x804e000\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:169
+#: build/C/man2/mprotect.2:174
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>sys/mman.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:174
+#: build/C/man2/mprotect.2:179
#, no-wrap
-msgid "char *buffer;\n"
-msgstr "char *buffer;\n"
+msgid "static char *buffer;\n"
+msgstr "static char *buffer;\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:182
+#: build/C/man2/mprotect.2:187
#, no-wrap
msgid ""
"static void\n"
"}\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:189
+#: build/C/man2/mprotect.2:194
#, no-wrap
msgid ""
"int\n"
" struct sigaction sa;\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:195
+#: build/C/man2/mprotect.2:200
#, no-wrap
msgid ""
" sa.sa_flags = SA_SIGINFO;\n"
" handle_error(\"sigaction\");\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:199
+#: build/C/man2/mprotect.2:204
#, no-wrap
msgid ""
" pagesize = sysconf(_SC_PAGE_SIZE);\n"
" handle_error(\"sysconf\");\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:202
+#: build/C/man2/mprotect.2:207
#, no-wrap
msgid ""
" /* Allocate a buffer aligned on a page boundary;\n"
" initial protection is PROT_READ | PROT_WRITE */\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:206
+#: build/C/man2/mprotect.2:211
#, no-wrap
msgid ""
" buffer = memalign(pagesize, 4 * pagesize);\n"
" handle_error(\"memalign\");\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:208
+#: build/C/man2/mprotect.2:213
#, no-wrap
msgid " printf(\"Start of region: 0x%lx\\en\", (long) buffer);\n"
msgstr " printf(\"Start of region: 0x%lx\\en\", (long) buffer);\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:212
+#: build/C/man2/mprotect.2:217
#, no-wrap
msgid ""
" if (mprotect(buffer + pagesize * 2, pagesize,\n"
" handle_error(\"mprotect\");\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:215
+#: build/C/man2/mprotect.2:220
#, no-wrap
msgid ""
" for (p = buffer ; ; )\n"
" *(p++) = \\(aqa\\(aq;\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:219
+#: build/C/man2/mprotect.2:224
#, no-wrap
msgid ""
" printf(\"Loop completed\\en\"); /* Should never happen */\n"
"}\n"
#. type: Plain text
-#: build/C/man2/mprotect.2:223
+#: build/C/man2/mprotect.2:228
msgid "B<mmap>(2), B<sysconf>(3)"
msgstr "B<mmap>(2), B<sysconf>(3)"
#. type: TH
-#: build/C/man2/mremap.2:31
+#: build/C/man2/mremap.2:30
#, no-wrap
msgid "MREMAP"
msgstr "MREMAP"
#. type: TH
-#: build/C/man2/mremap.2:31
+#: build/C/man2/mremap.2:30
#, no-wrap
msgid "2010-06-10"
msgstr "2010-06-10"
#. type: Plain text
-#: build/C/man2/mremap.2:34
+#: build/C/man2/mremap.2:33
msgid "mremap - remap a virtual memory address"
-msgstr "mremap - ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»アドレスを再マッピングする"
+msgstr "mremap - ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼アドレスを再マッピングする"
#. 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 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
#. 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"
"B< size_t >I<new_size>B<, int >I<flags>B<, ... /* void *>I<new_address>B< */);>\n"
#. 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 "
"available virtual address space)."
msgstr ""
-"B<mremap>() ã\81¯æ\97¢å\98ã\81®ã\83¡ã\83¢ã\83ªã\83»マッピングの拡張 (または縮小) を行う。 同時に移"
+"B<mremap>() ã\81¯æ\97¢å\98ã\81®ã\83¡ã\83¢ã\83ªã\83¼マッピングの拡張 (または縮小) を行う。 同時に移"
"動されることもある (I<flags> 引き数と利用可能な仮想アドレス空間によって決ま"
"る)。"
#. 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. "
"fifth argument, I<new_address>, may be provided; see the description of "
"B<MREMAP_FIXED> below."
msgstr ""
-"I<old_address> ã\81¯æ\8b¡å¼µ (ã\81¾ã\81\9fã\81¯ç¸®å°\8f) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»ブロック の元のア"
+"I<old_address> ã\81¯æ\8b¡å¼µ (ã\81¾ã\81\9fã\81¯ç¸®å°\8f) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ブロック の元のア"
"ドレスである。I<old_address> はページ境界に合っていなければ ならない点に注意"
-"ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82I<old_size> ã\81¯å\85\83ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»ブロックの サイズである。 "
-"I<new_size> ã\81¯è¦\81æ±\82ã\81\99ã\82\8bå¤\89æ\9b´å¾\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»ブロックのサイズである。 5 番目の引"
+"ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82I<old_size> ã\81¯å\85\83ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ブロックの サイズである。 "
+"I<new_size> ã\81¯è¦\81æ±\82ã\81\99ã\82\8bå¤\89æ\9b´å¾\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ブロックのサイズである。 5 番目の引"
"き数として I<new_address> を指定することができる。下記の B<MREMAP_FIXED> の説"
"明を参照のこと。"
#. 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 "
"to a read-only segment). Accessing virtual memory outside of the segments "
"will also cause a segmentation violation."
msgstr ""
-"Linux ã\81§ã\81¯ã\83¡ã\83¢ã\83ªã\81¯ã\83\9aã\83¼ã\82¸ã\81«å\88\86å\89²ã\81\95ã\82\8cã\82\8bã\80\82ã\83¦ã\83¼ã\82¶ã\83¼ã\83»プロセスは (一つまたは) 複数"
-"ã\81®ã\83ªã\83\8bã\82¢ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92æ\8c\81ã\81¤ã\80\82 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯ä¸\80ã\81¤ä»¥"
-"上の実メモリ・ページ にマッピングされている (マッピング情報はページ・テーブル"
-"ã\81§ç®¡ç\90\86ã\81\95ã\82\8cã\82\8b)ã\80\82 ä»®æ\83³ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\81¯ã\82»ã\82°ã\83¡ã\83³ã\83\88æ¯\8eã\81®ä¿\9dè· (ã\82¢ã\82¯ã\82»ã\82¹æ¨©) ã\81\8cè¨"
-"定されており、 メモリが不正にアクセスされた場合 (例えば読み込み専用のセグメン"
-"ã\83\88ã\81« æ\9b¸ã\81\8dè¾¼ã\82\93ã\81 å ´å\90\88)ã\80\81ã\82»ã\82°ã\83¡ã\83³ã\83\86ã\83¼ã\82·ã\83§ã\83³ä¾µå®³ (segmentation violation) ã\82\92 å¼\95ã\81\8d"
-"起こす。また、セグメント外の仮想メモリにアクセスした場合にも セグメンテーショ"
-"ン侵害が発生する。"
+"Linux ã\81§ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\83\9aã\83¼ã\82¸ã\81«å\88\86å\89²ã\81\95ã\82\8cã\82\8bã\80\82ã\83¦ã\83¼ã\82¶ã\83¼プロセスは (一つまたは) 複数"
+"ã\81®ã\83ªã\83\8bã\82¢ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92æ\8c\81ã\81¤ã\80\82 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯ä¸\80"
+"つ以上の実メモリーページ にマッピングされている (マッピング情報はページテーブ"
+"ã\83«ã\81§ç®¡ç\90\86ã\81\95ã\82\8cã\82\8b)ã\80\82 ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\81¯ã\82»ã\82°ã\83¡ã\83³ã\83\88æ¯\8eã\81®ä¿\9dè· (ã\82¢ã\82¯ã\82»ã\82¹æ¨©) "
+"が設定されており、 メモリーが不正にアクセスされた場合 (例えば読み込み専用のセ"
+"ã\82°ã\83¡ã\83³ã\83\88ã\81« æ\9b¸ã\81\8dè¾¼ã\82\93ã\81 å ´å\90\88)ã\80\81ã\82»ã\82°ã\83¡ã\83³ã\83\86ã\83¼ã\82·ã\83§ã\83³ä¾µå®³ (segmentation violation) "
+"を 引き起こす。また、セグメント外の仮想メモリーにアクセスした場合にも セグメ"
+"ンテーション侵害が発生する。"
#. 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 "
"implement a very efficient B<realloc>(3)."
msgstr ""
-"B<mremap>() ã\81¯ Linux ã\81®ã\83\9aã\83¼ã\82¸ã\83»ã\83\86ã\83¼ã\83\96ã\83«æ\96¹å¼\8fã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 B<mremap>() ã\81¯ä»®æ\83³"
-"ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\83¡ã\83¢ã\83ªã\83»ページのマッピングを変更する。これは非常に効率的な "
+"B<mremap>() ã\81¯ Linux ã\81®ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«æ\96¹å¼\8fã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 B<mremap>() ã\81¯ä»®æ\83³ã\82¢"
+"ã\83\89ã\83¬ã\82¹ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ページのマッピングを変更する。これは非常に効率的な "
"B<realloc>(3) を実装するのに使用されている。"
#. 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 "I<flags> ビットマスク引数は 0 または以下のフラグを含む:"
#. type: TP
-#: build/C/man2/mremap.2:84
+#: build/C/man2/mremap.2:83
#, no-wrap
msgid "B<MREMAP_MAYMOVE>"
msgstr "B<MREMAP_MAYMOVE>"
#. 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 "
"デフォルトでは、現在の位置にマッピングを拡張するための 十分な空きがなければ "
"B<mremap>() は失敗する。 このフラグが指定されると、カーネルは必要があれば"
"マッピングを 新しい仮想アドレスに再配置することができる マッピングが再配置さ"
-"ã\82\8cã\82\8bã\81¨ã\80\81å\8f¤ã\81\84ã\83\9eã\83\83ã\83\94ã\83³ã\82°ä½\8dç½®ã\81¸ã\81®çµ¶å¯¾ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ ç\84¡å\8a¹ã\81«ã\81ªã\82\8b (ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®é\96\8bå§\8bã\82¢ã\83\89"
-"レスからの相対オフセットは有効のままである)。"
+"ã\82\8cã\82\8bã\81¨ã\80\81å\8f¤ã\81\84ã\83\9eã\83\83ã\83\94ã\83³ã\82°ä½\8dç½®ã\81¸ã\81®çµ¶å¯¾ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ ç\84¡å\8a¹ã\81«ã\81ªã\82\8b (ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®é\96\8bå§\8bã\82¢"
+"ã\83\89ã\83¬ã\82¹ã\81\8bã\82\89ã\81®ç\9b¸å¯¾ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81¯æ\9c\89å\8a¹ã\81®ã\81¾ã\81¾ã\81§ã\81\82ã\82\8b)ã\80\82"
#. 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 "B<MREMAP_FIXED> (Linux 2.3.31 以降)"
#. 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, "
-"I<void *new_address>, which specifies a page-aligned address to which the "
+"If this flag is specified, then B<mremap>() accepts a fifth argument, I<void"
+"\\ *new_address>, which specifies a page-aligned address to which the "
"mapping must be moved. Any previous mapping at the address range specified "
"by I<new_address> and I<new_size> is unmapped. If B<MREMAP_FIXED> is "
"specified, then B<MREMAP_MAYMOVE> must also be specified."
msgstr ""
"このフラグは B<mmap>(2) の B<MAP_FIXED> フラグと似たような目的で用いられ"
-"る。 このフラグが指定されると、 B<mremap>() は 5 番目の引き数 I<void "
+"る。 このフラグが指定されると、 B<mremap>() は 5 番目の引き数 I<void\\ "
"*new_address> を受け取り、この引数はマッピングが移動されるべきアドレスを指定"
"する。 このアドレスはページ境界に合っていなければならない。 I<new_address> "
"と I<new_size> で指定されるアドレス範囲に過去のマッピングがあった場合、 その"
"B<MREMAP_MAYMOVE> も指定しなければならない。"
#. 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 "
"segment is resized and/or relocated. As a consequence, the amount of memory "
"locked by the process may change."
msgstr ""
-"I<old_address> ã\81¨ I<old_size> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8c (B<mlock>(2) ã\82\84"
-"同様のもので) ロックされている場合、セグメントのサイズが変わったり 再配置され"
-"ã\81\9fã\82\8aã\81\97ã\81\9fæ\99\82ã\81«ã\83ã\83\83ã\82¯ã\82\82ç¶æ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®çµ\90æ\9e\9cã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ª"
-"の量は変化する。"
+"I<old_address> ã\81¨ I<old_size> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8c (B<mlock>(2) "
+"や同様のもので) ロックされている場合、セグメントのサイズが変わったり 再配置さ"
+"ã\82\8cã\81\9fã\82\8aã\81\97ã\81\9fæ\99\82ã\81«ã\83ã\83\83ã\82¯ã\82\82ç¶æ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®çµ\90æ\9e\9cã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢"
+"ã\83ªã\83¼ã\81®é\87\8fã\81¯å¤\89å\8c\96ã\81\99ã\82\8bã\80\82"
#. 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, "
"and I<errno> is set appropriately."
msgstr ""
-"成功した場合は B<mremap>() は新しい仮想メモリ領域へのポインタを返す。 エラー"
-"ã\81®å ´å\90\88ã\81¯ B<MAP_FAILED> (ã\81\99ã\81ªã\82\8fã\81¡ I<(void\\ *)\\ -1>) ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 I<errno> ã\81\8cé\81©"
-"切に設定される。"
+"成功した場合は B<mremap>() は新しい仮想メモリー領域へのポインターを返す。 エ"
+"ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ B<MAP_FAILED> (ã\81\99ã\81ªã\82\8fã\81¡ I<(void\\ *)\\ -1>) ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 I<errno> "
+"が適切に設定される。"
#. 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 ""
-"呼び出し元がロックされているメモリセグメントを拡張しようとしたが、 "
+"å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92æ\8b¡å¼µã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8cã\80\81 "
"B<RLIMIT_MEMLOCK> リソース制限を越えずにこれを行うことができない。"
#. 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 ""
"「セグメンテーション違反(segmentation fault)」 I<old_address> から "
"I<old_address>+I<old_size> の 範囲のアドレスのどれかがこのプロセスにおいて不"
-"æ£ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»アドレスである。 たとえ要求したアドレス空間全体を含むような"
+"æ£ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼アドレスである。 たとえ要求したアドレス空間全体を含むような"
"マッピングがあったとしても、 それらのマッピングが異なった型ならば B<EFAULT> "
"を受け取るだろう。"
#. 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 "
"されていない。"
#. 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 "
"(virtual) memory available."
msgstr ""
-"現在の仮想アドレスではメモリ領域が拡張できず、 B<MREMAP_MAYMOVE> フラグが "
-"I<flags> に設定されていない。 または十分な (仮想) メモリが存在しない。"
+"現在の仮想アドレスではメモリー領域が拡張できず、 B<MREMAP_MAYMOVE> フラグが "
+"I<flags> ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\81¾ã\81\9fã\81¯å\8d\81å\88\86ã\81ª (ä»®æ\83³) ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82"
#. 4.2BSD had a (never actually implemented)
#. .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."
"い。"
#. 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 "
"ず、 B<mremap>() のプロトタイプは I<new_address> 引き数を取らなかった。"
#. 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 ""
-"ページ分割されたメモリについてもっと詳しく知りたいならば あなたの好みの OS "
-"の\n"
-"教科書を参照すること。 (I<Modern Operating Systems> by Andrew S. Tanenbaum,\n"
-"I<Inside Linux> by Randolf Bentson, I<The Design of the UNIX Operating\n"
-"System> by Maurice J. Bach.)"
+"ページ分割されたメモリーについてもっと詳しく知りたいならば、あなたのお気に入"
+"りのオペレーティングシステムの教科書を参照してほしい (例えば、 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.)"
#. type: TH
#: build/C/man2/msync.2:25
msgstr "MSYNC"
#. type: TH
-#: build/C/man2/msync.2:25 build/C/man2/remap_file_pages.2:26
+#: build/C/man2/msync.2:25
#, no-wrap
-msgid "2008-04-22"
-msgstr "2008-04-22"
+msgid "2014-04-20"
+msgstr "2014-04-20"
#. type: Plain text
#: build/C/man2/msync.2:28
msgid "msync - synchronize a file with a memory map"
-msgstr "msync - ファイルをマップしたメモリと同期させる"
+msgstr "msync - ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¨å\90\8cæ\9c\9fã\81\95ã\81\9bã\82\8b"
#. type: Plain text
#: build/C/man2/msync.2:32
#: build/C/man2/msync.2:48
msgid ""
"B<msync>() flushes changes made to the in-core copy of a file that was "
-"mapped into memory using B<mmap>(2) back to disk. Without use of this call "
-"there is no guarantee that changes are written back before B<munmap>(2) is "
-"called. To be more precise, the part of the file that corresponds to the "
-"memory area starting at I<addr> and having length I<length> is updated."
+"mapped into memory using B<mmap>(2) back to the filesystem. Without use of "
+"this call there is no guarantee that changes are written back before "
+"B<munmap>(2) is called. To be more precise, the part of the file that "
+"corresponds to the memory area starting at I<addr> and having length "
+"I<length> is updated."
msgstr ""
-"B<msync>() ã\81¯ B<mmap>(2) ã\82\92使ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\80\81 ã\83¡ã\83¢ã\83ªä¸\8a"
-"ã\81®ã\82³ã\83\94ã\83¼ã\81«ã\81ªã\81\95ã\82\8cã\81\9få¤\89æ\9b´ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«å\8f\8dæ\98 ã\81\95ã\81\9bã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\82\92使ç\94¨ã\81\97ã\81ªã\81\84ã\81¨ã\80\81 "
-"B<munmap>(2) が呼び出されるまで変更が書き戻される保証はない。 より正確には、"
-"ファイルのうち I<addr> から始まり長さ I<length> のメモリ領域に対応する部分が"
-"更新される。"
+"B<msync>() ã\81¯ B<mmap>(2) ã\82\92使ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\80\81 ã\83¡ã\83¢"
+"ã\83ªã\83¼ä¸\8aã\81®ã\82³ã\83\94ã\83¼ã\81«ã\81ªã\81\95ã\82\8cã\81\9få¤\89æ\9b´ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81«å\8f\8dæ\98 ã\81\95ã\81\9bã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\82\92使ç\94¨ã\81\97"
+"ないと、 B<munmap>(2) が呼び出されるまで変更が書き戻される保証はない。 より"
+"正確には、ファイルのうち I<addr> から始まり長さ I<length> のメモリー領域に対"
+"応する部分が更新される。"
#. type: Plain text
#: build/C/man2/msync.2:68
#. type: Plain text
#: build/C/man2/msync.2:96
msgid "The indicated memory (or part of it) was not mapped."
-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:110
+#: build/C/man3/shm_open.3:253 build/C/man7/shm_overview.7:103
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#: build/C/man2/msync.2:105
msgid ""
"This call was introduced in Linux 1.3.21, and then used B<EFAULT> instead of "
-"B<ENOMEM>. In Linux 2.4.19 this was changed to the POSIX value B<ENOMEM>."
+"B<ENOMEM>. In Linux 2.4.19, this was changed to the POSIX value B<ENOMEM>."
msgstr ""
"この関数は Linux 1.3.21 で導入されたが、 B<ENOMEM> ではなく B<EFAULT> が使わ"
"れていた。 これは Linux 2.4.19 で POSIX における値 B<ENOMEM> に変更された。"
#. -1: unavailable, 0: ask using sysconf().
#. glibc defines them to 1.
#. type: Plain text
-#: build/C/man2/msync.2:118
+#: build/C/man2/msync.2:120
msgid ""
"On POSIX systems on which B<msync>() is available, both "
"B<_POSIX_MAPPED_FILES> and B<_POSIX_SYNCHRONIZED_IO> are defined in "
"B<_POSIX_SYNCHRONIZED_IO> の両方が I<E<lt>unistd.hE<gt>> で 0 より大きい値に"
"定義される。 (B<sysconf>(3) を参照すること。 )"
+#. commit 204ec841fbea3e5138168edbc3a76d46747cc987
+#. type: Plain text
+#: build/C/man2/msync.2:147
+msgid ""
+"According to POSIX, either B<MS_SYNC> or B<MS_ASYNC> must be specified in "
+"I<flags>, and indeed failure to include one of these flags will cause "
+"B<msync>() to fail on some systems. However, Linux permits a call to "
+"B<msync>() that specifies neither of these flags, with semantics that are "
+"(currently) equivalent to specifying B<MS_ASYNC>. (Since Linux 2.6.19, "
+"B<MS_ASYNC> is in fact a no-op, since the kernel properly tracks dirty pages "
+"and flushes them to storage as necessary.) Notwithstanding the Linux "
+"behavior, portable, future-proof applications should ensure that they "
+"specify either B<MS_SYNC> or B<MS_ASYNC> in I<flags>."
+msgstr ""
+"POSIX では B<MS_SYNC> と B<MS_ASYNC> のいずれかは必ず I<flags> に指定しなけれ"
+"ばならないとされており、 実際にこれらのフラグのいずれかを指定しなかった場合 "
+"B<msync>() が失敗するシステムもある。 しかし、 Linux ではこれらのフラグのいず"
+"れも指定せずに B<msync>() を呼び出すことができ、 その場合の動作は (現在のとこ"
+"ろ) B<MS_ASYNC> を指定した場合と等価である。 (Linux 2.6.19 以降では "
+"B<MS_ASYNC> は実際には no-op (何もしない命令) である。 これはカーネルが正し"
+"く dirty ページを追跡し、必要に応じてストレージにそれらをフラッシュするからで"
+"ある。) Linux の動作に関係なく、アプリケーションの移植性を考慮し、将来も確実"
+"に動くようにするには、 B<MS_SYNC> か B<MS_ASYNC> のいずれかを必ず I<flags> に"
+"指定するようにすべきである。"
+
#. type: TP
-#: build/C/man2/msync.2:120 build/C/man7/shm_overview.7:46
+#: build/C/man2/msync.2:149 build/C/man7/shm_overview.7:46
#, no-wrap
msgid "B<mmap>(2)"
msgstr "B<mmap>(2)"
#. type: TH
-#: build/C/man3/mtrace.3:23
+#: build/C/man3/mtrace.3:25
#, no-wrap
msgid "MTRACE"
msgstr "MTRACE"
+#. type: TH
+#: build/C/man3/mtrace.3:25
+#, no-wrap
+msgid "2012-04-18"
+msgstr "2012-04-18"
+
#. type: Plain text
-#: build/C/man3/mtrace.3:26
+#: build/C/man3/mtrace.3:28
msgid "mtrace, muntrace - malloc tracing"
msgstr "mtrace, muntrace - malloc のトレース"
#. type: Plain text
-#: build/C/man3/mtrace.3:28
+#: build/C/man3/mtrace.3:30
msgid "B<#include E<lt>mcheck.hE<gt>>"
msgstr "B<#include E<lt>mcheck.hE<gt>>"
#. type: Plain text
-#: build/C/man3/mtrace.3:30
+#: build/C/man3/mtrace.3:32
msgid "B<void mtrace(void);>"
msgstr "B<void mtrace(void);>"
#. type: Plain text
-#: build/C/man3/mtrace.3:32
+#: build/C/man3/mtrace.3:34
msgid "B<void muntrace(void);>"
msgstr "B<void muntrace(void);>"
#. 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 (non-"
-"blank) line of the source code."
+"the line number references may refer to the previous or following "
+"(nonblank) line of the source code."
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"
"#include E<lt>stdio.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/mtrace.3:125
+#: build/C/man3/mtrace.3:127
#, no-wrap
msgid ""
"int\n"
" int j;\n"
#. type: Plain text
-#: build/C/man3/mtrace.3:127
+#: build/C/man3/mtrace.3:129
#, no-wrap
msgid " mtrace();\n"
msgstr " mtrace();\n"
#. 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"
" malloc(100); /* Never freed--a memory leak */\n"
#. 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"
"}\n"
#. 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"
"0x084c9448 0x100 at /home/cecilia/t_mtrace.c:16\n"
#. 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 to the "
-"call to B<calloc>(3) (which in turn calls B<malloc>(3))."
+"The first two messages about unfreed memory correspond to the two "
+"B<malloc>(3) calls inside the I<for> loop. The final message corresponds "
+"to the call to B<calloc>(3) (which in turn calls B<malloc>(3))."
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 "B<mtrace>(1), B<malloc>(3), B<malloc_hook>(3), B<mcheck>(3)"
#. type: TH
-#: build/C/man2/posix_fadvise.2:27
+#: build/C/man2/posix_fadvise.2:28
#, no-wrap
msgid "POSIX_FADVISE"
msgstr "POSIX_FADVISE"
-#. type: TH
-#: build/C/man2/posix_fadvise.2:27 build/C/man2/sync_file_range.2:30
-#, no-wrap
-msgid "2010-10-09"
-msgstr "2010-10-09"
-
#. 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 "posix_fadvise - ファイルデータのアクセスパターンをあらかじめ宣言する"
#. 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 "B<#include E<lt>fcntl.hE<gt>>\n"
#. 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 >I<advice>B<);>\n"
msgstr "B<int posix_fadvise(int >I<fd>B<, off_t >I<offset>B<, off_t >I<len>B<, int >I<advice>B<);>\n"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:45
+#: build/C/man2/posix_fadvise.2:46
msgid "B<posix_fadvise>():"
msgstr "B<posix_fadvise>():"
#. 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 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
#. 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 "
"適化を実行することが可能になる。"
#. 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 "
"ションのために可能性を構成するだけである。"
#. 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 "I<advice> に許される値には、以下のものが含まれる:"
#. type: TP
-#: build/C/man2/posix_fadvise.2:64
+#: build/C/man2/posix_fadvise.2:65
#, no-wrap
msgid "B<POSIX_FADV_NORMAL>"
msgstr "B<POSIX_FADV_NORMAL>"
#. 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, "
"合、 これがデフォルトで仮定される。"
#. type: TP
-#: build/C/man2/posix_fadvise.2:70
+#: build/C/man2/posix_fadvise.2:71
#, no-wrap
msgid "B<POSIX_FADV_SEQUENTIAL>"
msgstr "B<POSIX_FADV_SEQUENTIAL>"
#. 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)."
"小さなオフセットのデータを読むように) アクセスされることを期待する。"
#. type: TP
-#: build/C/man2/posix_fadvise.2:74
+#: build/C/man2/posix_fadvise.2:75
#, no-wrap
msgid "B<POSIX_FADV_RANDOM>"
msgstr "B<POSIX_FADV_RANDOM>"
#. 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 "B<POSIX_FADV_NOREUSE>"
#. 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 "指定されたデータは 1 度しかアクセスされない。"
#. type: TP
-#: build/C/man2/posix_fadvise.2:80
+#: build/C/man2/posix_fadvise.2:81
#, no-wrap
msgid "B<POSIX_FADV_WILLNEED>"
msgstr "B<POSIX_FADV_WILLNEED>"
#. 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 "B<POSIX_FADV_DONTNEED>"
#. 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 "成功した場合は 0 が返される。 失敗した場合はエラー番号が返される。"
#. 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 "I<fd> 引き数が有効なファイルディスクリプタでない。"
+msgstr "I<fd> å¼\95ã\81\8dæ\95°ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82"
#. 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 "無効な値が I<advice> に指定された。"
+#. commit 87ba81dba431232548ce29d5d224115d0c2355ac
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:103
+#: build/C/man2/posix_fadvise.2:107
msgid ""
-"The specified file descriptor refers to a pipe or FIFO. (Linux actually "
-"returns B<EINVAL> in this case.)"
+"The specified file descriptor refers to a pipe or FIFO. (B<ESPIPE> is the "
+"error specified by POSIX, but before kernel version 2.16, Linux returned "
+"B<EINVAL> in this case.)"
msgstr ""
-"指定されたファイルディスクリプタがパイプまたは FIFO を参照している (この場"
-"合、Linux は実際には B<EINVAL> を返す)。"
+"指定されたファイルディスクリプターがパイプまたは FIFO を参照している "
+"(B<ESPIPE> は POSIX で規定されているエラーだが、 バージョン 2.16 より前のカー"
+"ネルでは、 この場合に B<EINVAL> を返していた。)"
#. of fadvise64_64()
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:111
+#: build/C/man2/posix_fadvise.2:115
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 "
"ライブラリによるサポートは glibc バージョン 2.2 以降で提供されており、\n"
"ラッパー関数は B<posix_fadvise>() という名前である。"
+#. commit d3ac21cacc24790eb45d735769f35753f5b56ceb
+#. type: Plain text
+#: build/C/man2/posix_fadvise.2:122
+msgid ""
+"Since Linux 3.18, support for the underlying system call is optional, "
+"depending on the setting of the B<CONFIG_ADVISE_SYSCALLS> configuration "
+"option."
+msgstr ""
+"Linux 3.18 以降では、対応するシステムコールのサポートは任意となり、利用できる"
+"かはカーネルが B<CONFIG_ADVISE_SYSCALLS> オプションを有効にしてコンパイルされ"
+"ているかに依存する。"
+
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:120
+#: build/C/man2/posix_fadvise.2:131
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."
"I<off_t> に変更された点に注意すること。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:126
+#: build/C/man2/posix_fadvise.2:137
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 "
"ファイルに対する他のオープンファイルハンドルは影響を受けない)。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:133
+#: build/C/man2/posix_fadvise.2:144
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 "
"satisfied, and more is rarely useful.)"
msgstr ""
"B<POSIX_FADV_WILLNEED> は、 ページキャッシュに指定領域のブロックされない読み"
-"è¾¼ã\81¿ã\82\92é\96\8bå§\8bã\81\99ã\82\8bã\80\82 èªã\81¿è¾¼ã\81¾ã\82\8cã\82\8bã\83\87ã\83¼ã\82¿ã\81®ç·\8fé\87\8fã\81¯ã\80\81 ä»®æ\83³ã\83¡ã\83¢ã\83ªã\81®è² è\8d·ã\81«ä¾\9dã\81£ã\81¦ã\82«ã\83¼ã\83\8d"
-"ã\83«ã\81\8cæ¸\9bã\82\89ã\81\99ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84 (æ\95°ã\83¡ã\82¬ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8cã\81°é\80\9a常ã\81¯å\85¨ã\81\8få\8d\81å\88\86ã\81§ã\81\82ã\82\8aã\80\81 ã\81\9dã\82\8cã\82\88ã\82\8aå¤\9a"
-"くてもめったに役に立たない)。"
+"è¾¼ã\81¿ã\82\92é\96\8bå§\8bã\81\99ã\82\8bã\80\82 èªã\81¿è¾¼ã\81¾ã\82\8cã\82\8bã\83\87ã\83¼ã\82¿ã\81®ç·\8fé\87\8fã\81¯ã\80\81 ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81®è² è\8d·ã\81«ä¾\9dã\81£ã\81¦ã\82«ã\83¼"
+"ã\83\8dã\83«ã\81\8cæ¸\9bã\82\89ã\81\99ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84 (æ\95°ã\83¡ã\82¬ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8cã\81°é\80\9a常ã\81¯å\85¨ã\81\8få\8d\81å\88\86ã\81§ã\81\82ã\82\8aã\80\81 ã\81\9dã\82\8cã\82\88ã\82\8a"
+"多くてもめったに役に立たない)。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:137
+#: build/C/man2/posix_fadvise.2:148
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 "
"フラグは何も行わない。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:145
+#: build/C/man2/posix_fadvise.2:156
msgid ""
"B<POSIX_FADV_DONTNEED> attempts to free cached pages associated with the "
"specified region. This is useful, for example, while streaming large "
"されたページが、 代わりに破棄されることはない。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:153
+#: build/C/man2/posix_fadvise.2:164
+msgid ""
+"Requests to discard partial pages are ignored. It is preferable to preserve "
+"needed data than discard unneeded data. If the application requires that "
+"data be considered for discarding then I<offset> and I<len> must be page-"
+"aligned."
+msgstr ""
+"ページの一部分の破棄要求は無視される。 不要なデータを破棄するよりも必要なデー"
+"タを保持する方がよい。 アプリケーションがデータを破棄した方がよいと思う場合"
+"は、 I<offset> と I<len> がページ境界に合っていなければならない。"
+
+#. type: Plain text
+#: build/C/man2/posix_fadvise.2:172
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 "
"B<fdatasync>(2) を呼ぶべきである。"
#. type: SS
-#: build/C/man2/posix_fadvise.2:153
+#: build/C/man2/posix_fadvise.2:172
#, no-wrap
-msgid "arm_fadvise()"
-msgstr "arm_fadvise()"
+msgid "Architecture-specific variants"
+msgstr "アーキテクチャー固有の派生バージョン"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:165
+#: build/C/man2/posix_fadvise.2:189
msgid ""
-"The ARM architecture needs 64-bit arguments to be aligned in a suitable pair "
-"of registers. On this architecture, the call signature of B<posix_fadvise>"
-"() is flawed, since it forces a register to be wasted as padding between "
-"the I<fd> and I<len> arguments. Therefore, since Linux 2.6.14, ARM defines "
-"a different system call that orders the arguments suitably:"
+"Some architectures require 64-bit arguments to be aligned in a suitable pair "
+"of registers (see B<syscall>(2) for further detail). On such "
+"architectures, the call signature of B<posix_fadvise>() shown in the "
+"SYNOPSIS would force a register to be wasted as padding between the I<fd> "
+"and I<offset> arguments. Therefore, these architectures define a version of "
+"the system call that orders the arguments suitably, but otherwise is "
+"otherwise exactly the same as B<posix_fadvise>()."
msgstr ""
+"いくつかのアーキテクチャーでは、 64 ビットの引き数は適切なレジスターの組に割"
+"り当てる必要がある (B<syscall>(2) 参照)。 このようなアーキテクチャーでは、 "
+"「書式」に書かれている B<posix_fadvise>() の呼び出しシグネチャーで、 引き数 "
+"I<fd> と I<offset> の間のパディング (詰めもの) でレジスターが一つ消費されてし"
+"まう。 そのため、 これらのアーキテクチャーでは引き数が適切な順序になった別の"
+"システムコールが定義されているが、 それ以外は B<posix_fadvise>() と全く同じで"
+"ある。"
+
+#. type: Plain text
+#: build/C/man2/posix_fadvise.2:191
+msgid "For example, since Linux 2.6.14, ARM has the following system call:"
+msgstr ""
+"例えば、 Linux 2.6.14 以降では、 ARM には以下のシステムコールが存在する。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:170
+#: build/C/man2/posix_fadvise.2:196
#, no-wrap
msgid ""
"B<long arm_fadvise64_64(int >I<fd>B<, int >I<advice>B<,>\n"
"B<long arm_fadvise64_64(int >I<fd>B<, int >I<advice>B<,>\n"
"B< loff_t >I<offset>B<, loff_t >I<len>B<);>\n"
-#. No ARM support in glibc.
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:177
+#: build/C/man2/posix_fadvise.2:204
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 "
-"glibc."
+"These architecture-specific details are generally hidden from applications "
+"by the glibc B<posix_fadvise>() wrapper function, which invokes the "
+"appropriate architecture-specific system call."
msgstr ""
+"通常、 glibc の B<posix_fadvise>() ラッパー関数により、 これらのアーキテク"
+"チャー固有の詳細はアプリケーションには見えない。 glibc のラッパー関数では、適"
+"切なアーキテクチャー固有のシステムコールが呼び出される。"
#. type: Plain text
-#: build/C/man2/posix_fadvise.2:182
+#: build/C/man2/posix_fadvise.2:209
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:215
msgid ""
"B<readahead>(2), B<sync_file_range>(2), B<posix_fallocate>(3), "
"B<posix_madvise>(3)"
"B<posix_madvise>(3)"
#. type: TH
-#: build/C/man3/posix_fallocate.3:23
+#: build/C/man3/posix_fallocate.3:25
#, no-wrap
msgid "POSIX_FALLOCATE"
msgstr "POSIX_FALLOCATE"
-#. type: TH
-#: build/C/man3/posix_fallocate.3:23
-#, no-wrap
-msgid "2010-09-20"
-msgstr "2010-09-20"
-
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:26
+#: build/C/man3/posix_fallocate.3:28
msgid "posix_fallocate - allocate file space"
msgstr "posix_fallocate - ファイルのスペースを確保する"
#. 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 "B<int posix_fallocate(int >I<fd>B<, off_t >I<offset>B<, off_t >I<len>B<);>\n"
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:40
+#: build/C/man3/posix_fallocate.3:42
msgid "B<posix_fallocate>():"
msgstr "B<posix_fallocate>():"
#. 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 "
"call to B<posix_fallocate>(), subsequent writes to bytes in the specified "
"range are guaranteed not to fail because of lack of disk space."
msgstr ""
-"関数 B<posix_fallocate>() は、ディスクリプタ I<fd> で参照されるファイルに対"
-"して、ディスクスペースを確実に確保する。 ディスクスペースは I<offset> から始"
-"まる I<len> バイトの範囲のバイトである。 B<posix_fallocate>() の呼び出しが成"
-"功した後、指定された範囲のバイトに対する書き込みは、 ディスクスペースの不足で"
-"失敗しないことが保証される。"
+"関数 B<posix_fallocate>() は、ディスクリプター I<fd> で参照されるファイルに"
+"対して、ディスクスペースを確実に確保する。 ディスクスペースは I<offset> から"
+"始まる I<len> バイトの範囲のバイトである。 B<posix_fallocate>() の呼び出しが"
+"成功した後、指定された範囲のバイトに対する書き込みは、 ディスクスペースの不足"
+"で失敗しないことが保証される。"
#. 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."
"るように拡大される。 それ以外の場合、ファイルサイズは変わらない。"
#. 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."
"す。 I<errno> が設定されない点に注意すること。"
#. 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 "I<offset+len> が最大ファイルサイズを超えている。"
#. 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 "I<fd> が通常のファイルとして参照されていない。"
#. 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 "I<fd> がパイプを参照している。"
#. 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 "B<posix_fallocate>() は glibc 2.1.94 以降で利用可能である。"
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:126
+#: build/C/man3/posix_fallocate.3:108
+msgid "The B<posix_fallocate>() function is thread-safe."
+msgstr "B<posix_fallocate>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/posix_fallocate.3:133
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 "
"る。"
#. type: Plain text
-#: build/C/man3/posix_fallocate.3:130
-msgid "B<fallocate>(2), B<lseek>(2), B<posix_fadvise>(2)"
-msgstr "B<fallocate>(2), B<lseek>(2), B<posix_fadvise>(2)"
+#: build/C/man3/posix_fallocate.3:138
+msgid ""
+"In the glibc implementation, B<posix_fallocate>() is implemented using "
+"B<fallocate>(2)."
+msgstr ""
+"glibc の実装では、 B<posix_fallocate>() は B<fallocate>() を使って実装されて"
+"いる。"
+
+#. type: Plain text
+#: build/C/man3/posix_fallocate.3:143
+msgid "B<fallocate>(1), B<fallocate>(2), B<lseek>(2), B<posix_fadvise>(2)"
+msgstr "B<fallocate>(1), B<fallocate>(2), B<lseek>(2), B<posix_fadvise>(2)"
#. type: TH
-#: build/C/man3/posix_memalign.3:28
+#: build/C/man3/posix_memalign.3:29
#, no-wrap
msgid "POSIX_MEMALIGN"
msgstr "POSIX_MEMALIGN"
#. type: TH
-#: build/C/man3/posix_memalign.3:28
+#: build/C/man3/posix_memalign.3:29
#, no-wrap
-msgid "2012-03-23"
-msgstr "2012-03-23"
+msgid "2013-09-02"
+msgstr "2013-09-02"
#. 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 ""
"posix_memalign, aligned_alloc, memalign, valloc, pvalloc - アラインメント\n"
-"されたメモリの割り当てを行う"
+"ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:34 build/C/man3/malloc_get_state.3:29
+#: build/C/man3/posix_memalign.3:35
#, no-wrap
msgid "B<#include E<lt>stdlib.hE<gt>>\n"
msgstr "B<#include E<lt>stdlib.hE<gt>>\n"
#. 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 >I<size>B<);>\n"
"B<void *valloc(size_t >I<size>B<);>\n"
#. 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"
"B<void *pvalloc(size_t >I<size>B<);>\n"
#. 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"
"E<gt>=\\ 600"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:56
+#: build/C/man3/posix_memalign.3:57
msgid "B<aligned_alloc>(): _ISOC11_SOURCE"
msgstr "B<aligned_alloc>(): _ISOC11_SOURCE"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:58
+#: build/C/man3/posix_memalign.3:59
msgid "B<valloc>():"
msgstr "B<valloc>():"
#. type: TP
-#: build/C/man3/posix_memalign.3:61
+#: build/C/man3/posix_memalign.3:62
#, no-wrap
msgid "Since glibc 2.12:"
msgstr "glibc 2.12 以降:"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:68
+#: build/C/man3/posix_memalign.3:69
#, no-wrap
msgid ""
"_BSD_SOURCE ||\n"
" !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
#. type: TP
-#: build/C/man3/posix_memalign.3:70
+#: build/C/man3/posix_memalign.3:71
#, no-wrap
msgid "Before glibc 2.12:"
msgstr "glibc 2.12 より前:"
#. 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"
"_XOPEN_SOURCE_EXTENDED"
#. 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.)"
msgstr ""
-"((非標準の) ヘッダファイル I<E<lt>malloc.hE<gt>> も\n"
+"((é\9d\9eæ¨\99æº\96ã\81®) ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« I<E<lt>malloc.hE<gt>> ã\82\82\n"
"B<valloc>() の宣言も公開する。機能検査マクロは不要である。"
#. glibc does this:
#. type: Plain text
-#: build/C/man3/posix_memalign.3:102
+#: build/C/man3/posix_memalign.3:104
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 "
"memory will be a multiple of I<alignment>, which must be a power of two and "
-"a multiple of I<sizeof(void *)>. If I<size> is 0, then B<posix_memalign>() "
-"returns either NULL, or a unique pointer value that can later be "
+"a multiple of I<sizeof(void\\ *)>. If I<size> is 0, then the value placed "
+"in I<*memptr> is either NULL, or a unique pointer value that can later be "
"successfully passed to B<free>(3)."
msgstr ""
-"é\96¢æ\95° B<posix_memalign>() ã\81¯ã\80\81 I<size> ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8c"
-"ã\81\9fã\83¡ã\83¢ã\83ªã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 I<*memptr> ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81®ã\82¢ã\83\89ã\83¬ã\82¹"
-"ã\81¯ I<alignment> ã\81®å\80\8dæ\95°ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¯ã\81\9aã\81§ã\81\82ã\82\8bã\80\82 I<alignment> ã\81¯ 2 ã\81®ã\81¹ã\81\8dä¹\97ã\81§ã\80\81"
-"ã\81\8bã\81¤ I<sizeof(void *)> ã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 I<size> ã\81\8c 0 ã\81®å ´å\90\88ã\80\81 "
-"B<posix_memalign>() は NULL か一意なポインタ値を返す。 このポインタ値は、後"
-"で B<free>(3) に問題なく渡すことができる。"
+"é\96¢æ\95° B<posix_memalign>() ã\81¯ã\80\81 I<size> ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89"
+"ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 I<*memptr> ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\83\89"
+"ã\83¬ã\82¹ã\81¯ I<alignment> ã\81®å\80\8dæ\95°ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¯ã\81\9aã\81§ã\81\82ã\82\8bã\80\82 I<alignment> ã\81¯ 2 ã\81®ã\81¹ã\81\8dä¹\97"
+"ã\81§ã\80\81ã\81\8bã\81¤ I<sizeof(void\\ *)> ã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 I<size> ã\81\8c 0 ã\81®å ´"
+"合、 I<*memptr> には NULL か一意なポインター値が書かれる。 このポインター値"
+"ã\81¯ã\80\81å¾\8cã\81§ B<free>(3) ã\81«å\95\8fé¡\8cã\81ªã\81\8f渡ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82"
#. 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:115
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 "
"I<alignment>, which must be a power of two."
msgstr ""
-"廃止された関数である B<memalign>() は、 I<size> バイトのメモリを割り当て、\n"
-"割り当てられたメモリへのポインタを返す。 メモリのアドレスは I<alignment> \n"
+"廃止された関数である B<memalign>() は、 I<size> バイトのメモリーを割り当"
+"て、\n"
+"割り当てられたメモリーへのポインターを返す。 メモリーのアドレスは "
+"I<alignment> \n"
"の倍数になっているはずである。 I<alignment> は 2 のべき乗でなければならない。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:122
+#: build/C/man3/posix_memalign.3:124
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>."
"の倍数でなければならないという追加の制限がある点が異なる。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:132
+#: build/C/man3/posix_memalign.3:133
msgid ""
"The obsolete function B<valloc>() allocates I<size> bytes and returns a "
"pointer to the allocated memory. The memory address will be a multiple of "
"the page size. It is equivalent to I<memalign(sysconf(_SC_PAGESIZE),size)>."
msgstr ""
-"å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b B<valloc>() ã\81¯ I<size> ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93"
-"てられたメモリへのポインタを返す。 メモリのアドレスはページサイズの倍数になっ"
-"ているはずである。 これは I<memalign(sysconf(_SC_PAGESIZE),size)> と等価であ"
-"る。"
+"å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b B<valloc>() ã\81¯ I<size> ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8a"
+"当てられたメモリーへのポインターを返す。 メモリーのアドレスはページサイズの倍"
+"数になっているはずである。 これは I<memalign(sysconf(_SC_PAGESIZE),size)> と"
+"等価である。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:139
+#: build/C/man3/posix_memalign.3:140
msgid ""
"The obsolete function B<pvalloc>() is similar to B<valloc>(), but rounds "
"the size of the allocation up to the next multiple of the system page size."
"割り当てられるサイズがシステムのページサイズの倍数に切り上げられる。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:141
+#: build/C/man3/posix_memalign.3:142
msgid "For all of these functions, the memory is not zeroed."
-msgstr "これらの関数はいずれもメモリのゼロクリアを行わない。"
+msgstr "ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\81\84ã\81\9aã\82\8cã\82\82ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¼ã\83ã\82¯ã\83ªã\82¢ã\82\92è¡\8cã\82\8fã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:148
+#: build/C/man3/posix_memalign.3:149
msgid ""
"B<aligned_alloc>(), B<memalign>(), B<valloc>(), and B<pvalloc>() return a "
"pointer to the allocated memory, or NULL if the request fails."
msgstr ""
"B<aligned_alloc>(), B<memalign>(), B<valloc>(), B<pvalloc>() は割り当てられ"
"た\n"
-"ã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 割り当てに失敗した場合は NULL を返す。"
+"ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 割り当てに失敗した場合は NULL を返す。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:155
+#: build/C/man3/posix_memalign.3:157
msgid ""
"B<posix_memalign>() returns zero on success, or one of the error values "
-"listed in the next section on failure. Note that I<errno> is not set."
+"listed in the next section on failure. The value of I<errno> is "
+"indeterminate after a call to B<posix_memalign>()."
msgstr ""
"B<posix_memalign>() は成功した場合は 0 を返し、 失敗した場合は次のセクション"
-"に記載されたエラー値のいずれかを返す。 I<errno> はセットされないことに注意す"
-"ること。"
+"に記載されたエラー値のいずれかを返す。 B<posix_memalign>() の呼び出し後は "
+"I<errno> の値は不定である。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:162
+#: build/C/man3/posix_memalign.3:164
msgid ""
"The I<alignment> argument was not a power of two, or was not a multiple of "
-"I<sizeof(void *)>."
+"I<sizeof(void\\ *)>."
msgstr ""
-"I<alignment> 引き数が 2 のべき乗でなかったか、 I<sizeof(void *)> の倍数でな"
+"I<alignment> 引き数が 2 のべき乗でなかったか、 I<sizeof(void\\ *)> の倍数でな"
"かった。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:165
+#: build/C/man3/posix_memalign.3:167
msgid "There was insufficient memory to fulfill the allocation request."
-msgstr "割り当て要求を満たすのに十分なメモリがなかった。"
+msgstr "å\89²ã\82\8aå½\93ã\81¦è¦\81æ±\82ã\82\92æº\80ã\81\9fã\81\99ã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:172
+#: build/C/man3/posix_memalign.3:174
msgid ""
"The functions B<memalign>(), B<valloc>(), and B<pvalloc>() have been "
"available in all Linux libc libraries."
"すべての Linux libc ライブラリで使用可能である。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:176
+#: build/C/man3/posix_memalign.3:178
msgid "The function B<aligned_alloc>() was added to glibc in version 2.16."
msgstr "関数 B<aligned_alloc>() は glibc バージョン 2.16 で追加された。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:180
+#: build/C/man3/posix_memalign.3:182
msgid "The function B<posix_memalign>() is available since glibc 2.1.91."
msgstr "関数 B<posix_fallocate>() は glibc 2.1.91 以降で利用可能である。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:187
+#: build/C/man3/posix_memalign.3:189
msgid ""
"The function B<valloc>() appeared in 3.0BSD. It is documented as being "
"obsolete in 4.3BSD, and as legacy in SUSv2. It does not appear in "
"SUSv2 では過去の名残だと記載されている。 POSIX.1-2001 には存在しない。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:191
+#: build/C/man3/posix_memalign.3:193
msgid "The function B<pvalloc>() is a GNU extension."
msgstr "関数 B<pvalloc>() は GNU による拡張である。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:195
+#: build/C/man3/posix_memalign.3:197
msgid "The function B<memalign>() appears in SunOS 4.1.3 but not in 4.4BSD."
msgstr "関数 B<memalign>() は SunOS 4.1.3 で登場したが、4.4BSD にはない。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:199
+#: build/C/man3/posix_memalign.3:201
msgid "The function B<posix_memalign>() comes from POSIX.1d."
msgstr "関数 B<posix_memalign>() は POSIX.1d に由来する。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:204
+#: build/C/man3/posix_memalign.3:206
msgid "The function B<aligned_alloc>() is specified in the C11 standard."
msgstr "関数 I<aligned_alloc>() は C11 標準で規定されている。"
#. type: SS
-#: build/C/man3/posix_memalign.3:204
+#: build/C/man3/posix_memalign.3:206
#, no-wrap
msgid "Headers"
-msgstr "ヘッダ"
+msgstr "ヘッダー"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:208
+#: build/C/man3/posix_memalign.3:210
msgid ""
"Everybody agrees that B<posix_memalign>() is declared in I<E<lt>stdlib."
"hE<gt>>."
"の意見が一致している。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:212
+#: build/C/man3/posix_memalign.3:214
msgid ""
"On some systems B<memalign>() is declared in I<E<lt>stdlib.hE<gt>> instead "
"of I<E<lt>malloc.hE<gt>>."
"I<E<lt>stdlib.hE<gt>> で宣言されている。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:219
+#: build/C/man3/posix_memalign.3:221
msgid ""
"According to SUSv2, B<valloc>() is declared in I<E<lt>stdlib.hE<gt>>. "
"Libc4,5 and glibc declare it in I<E<lt>malloc.hE<gt>>, and also in "
"マクロが定義された場合には I<E<lt>stdlib.hE<gt>> でも宣言される(上記を参照)。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:228
+#: build/C/man3/posix_memalign.3:230
msgid ""
"On many systems there are alignment restrictions, for example, on buffers "
"used for direct block device I/O. POSIX specifies the I<pathconf(path,"
"use B<posix_memalign>() to satisfy this requirement."
msgstr ""
"多くのシステムでは、アラインメントに関して制限がある。例えば、 ブロックデバイ"
-"ã\82¹ã\81«å¯¾ã\81\99ã\82\8bã\83\80ã\82¤ã\83¬ã\82¯ã\83\88 I/O ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\81¯ ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\99ã\82\8bå\88¶é\99\90ã\81\8c"
-"ã\81\82ã\82\8bã\80\82 POSIX ã\81§ã\81¯ã\80\81ã\81©ã\82\93ã\81ªã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81\8cå¿\85è¦\81ã\81\8bã\82\92ç\9f¥ã\82\8bã\81\9fã\82\81ã\81« I<pathconf(path,"
-"_PC_REC_XFER_ALIGN)> コールを規定している。ここで B<posix_memalign>() を使う"
-"と、この必要条件を満たすことができる。"
+"ã\82¹ã\81«å¯¾ã\81\99ã\82\8bã\83\80ã\82¤ã\83¬ã\82¯ã\83\88 I/O ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¯ ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\99ã\82\8bå\88¶é\99\90"
+"ã\81\8cã\81\82ã\82\8bã\80\82 POSIX ã\81§ã\81¯ã\80\81ã\81©ã\82\93ã\81ªã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81\8cå¿\85è¦\81ã\81\8bã\82\92ç\9f¥ã\82\8bã\81\9fã\82\81ã\81« "
+"I<pathconf(path,_PC_REC_XFER_ALIGN)> コールを規定している。ここで "
+"B<posix_memalign>() を使うと、この必要条件を満たすことができる。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:237
+#: build/C/man3/posix_memalign.3:239
msgid ""
"B<posix_memalign>() verifies that I<alignment> matches the requirements "
"detailed above. B<memalign>() may not check that the I<alignment> argument "
#. but not to
#. .IR realloc (3).
#. type: Plain text
-#: build/C/man3/posix_memalign.3:265
+#: build/C/man3/posix_memalign.3:267
msgid ""
"POSIX requires that memory obtained from B<posix_memalign>() can be freed "
"using B<free>(3). Some systems provide no way to reclaim memory allocated "
-"with B<memalign>() or B<valloc>() (because one can only pass to B<free>"
-"(3) a pointer gotten from B<malloc>(3), while, for example, B<memalign>() "
-"would call B<malloc>(3) and then align the obtained value). The glibc "
-"implementation allows memory obtained from any of these these functions to "
-"be reclaimed with B<free>(3)."
+"with B<memalign>() or B<valloc>() (because one can pass to B<free>(3) "
+"only a pointer obtained from B<malloc>(3), while, for example, "
+"B<memalign>() would call B<malloc>(3) and then align the obtained value). "
+"The glibc implementation allows memory obtained from any of these functions "
+"to be reclaimed with B<free>(3)."
msgstr ""
-"POSIX では B<posix_memalign>() によって獲得したメモリは B<free>(3) を使って\n"
-"解放することができる必要がある。 いくつかのシステムでは B<memalign>() や\n"
-"B<valloc>() で割り当てられたメモリを再利用する手段が提供されていない。\n"
-"(なぜなら B<free>(3) に渡すことができるのは B<malloc>(3) から受け取った\n"
-"ポインタだけだが、 例えば B<memalign>() は B<malloc>(3) を呼び出し、\n"
-"得た値をアラインメントしてしまうからである) glibc の実装では、 ここに述べた\n"
-"関数のいずれで獲得したメモリも B<free>(3) で再利用することができる。"
+"POSIX では B<posix_memalign>() によって獲得したメモリーは B<free>(3) を\n"
+"使って解放することができる必要がある。 いくつかのシステムでは\n"
+"B<memalign>() やB<valloc>() で割り当てられたメモリーを再利用する手段が\n"
+"提供されていない(なぜなら B<free>(3) に渡すことができるのは\n"
+"B<malloc>(3) から受け取ったポインターだけだが、例えば B<memalign>() は\n"
+"B<malloc>(3) を呼び出し、得た値をアラインメントしてしまうからである)。\n"
+"glibc の実装では、 ここに述べた関数のいずれで獲得したメモリーも\n"
+"B<free>(3) で再利用することができる。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:270
+#: build/C/man3/posix_memalign.3:272
msgid ""
"The glibc B<malloc>(3) always returns 8-byte aligned memory addresses, so "
-"these functions are only needed if you require larger alignment values."
+"these functions are needed only if you require larger alignment values."
msgstr ""
-"glibc の B<malloc>(3) は常に 8 バイトにアラインメントされたメモリアドレスを\n"
+"glibc の B<malloc>(3) は常に 8 バイトにアラインメントされたメモリーアドレス"
+"を\n"
"返すので、ここで述べた関数が必要になるのは 8 バイトよりも大きなアラインメン"
"ト\n"
"が必要な場合だけである。"
#. type: Plain text
-#: build/C/man3/posix_memalign.3:275
+#: build/C/man3/posix_memalign.3:277
msgid "B<brk>(2), B<getpagesize>(2), B<free>(3), B<malloc>(3)"
msgstr "B<brk>(2), B<getpagesize>(2), B<free>(3), B<malloc>(3)"
msgstr "READAHEAD"
#. type: TH
-#: build/C/man2/readahead.2:28 build/C/man7/shm_overview.7:27
+#: build/C/man2/readahead.2:28
#, no-wrap
-msgid "2010-09-10"
-msgstr "2010-09-10"
+msgid "2014-03-15"
+msgstr "2014-03-15"
#. type: Plain text
#: build/C/man2/readahead.2:31
-msgid "readahead - perform file readahead into page cache"
-msgstr "readahead - å\89\8dã\82\82ã\81£ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\9aã\83¼ã\82¸ã\83»ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81«èªã\81¿è¾¼ã\82\80"
+msgid "readahead - initiate file readahead into page cache"
+msgstr "readahead - 前もってファイルをページキャッシュに読み込む"
#. type: Plain text
#: build/C/man2/readahead.2:37
msgstr "B<ssize_t readahead(int >I<fd>B<, off64_t >I<offset>B<, size_t >I<count>B<);>\n"
#. type: Plain text
-#: build/C/man2/readahead.2:65
+#: build/C/man2/readahead.2:44
+msgid ""
+"B<readahead>() initiates readahead on a file so that subsequent reads from "
+"that file will be satisfied from the cache, and not block on disk I/O "
+"(assuming the readahead was initiated early enough and that other activity "
+"on the system did not in the meantime flush pages from the cache)."
+msgstr ""
+"B<readahead>() はファイルの先読みを行い、そのファイルに対する後の読み込みが"
+"キャッシュから行われ、ディスク I/O で停止しないようにする (この条件を満たせる"
+"のは、先読みは十分早く行われ、システムの他の動作によりその後にキャッシュから"
+"ページがフラッシュされない場合である)。"
+
+#. type: Plain text
+#: build/C/man2/readahead.2:66
msgid ""
-"B<readahead>() populates the page cache with data from a file so that "
-"subsequent reads from that file will not block on disk I/O. The I<fd> "
-"argument is a file descriptor identifying the file which is to be read. The "
-"I<offset> argument specifies the starting point from which data is to be "
-"read and I<count> specifies the number of bytes to be read. I/O is "
+"The I<fd> argument is a file descriptor identifying the file which is to be "
+"read. The I<offset> argument specifies the starting point from which data "
+"is to be read and I<count> specifies the number of bytes to be read. I/O is "
"performed in whole pages, so that I<offset> is effectively rounded down to a "
"page boundary and bytes are read up to the next page boundary greater than "
"or equal to I<(offset+count)>. B<readahead>() does not read beyond the end "
-"of the file. B<readahead>() blocks until the specified data has been "
-"read. The current file offset of the open file referred to by I<fd> is left "
-"unchanged."
+"of the file. The current file offset of the open file referred to by I<fd> "
+"is left unchanged."
msgstr ""
-"B<readahead>() は、この後の同じファイルからのデータ読み込み時にディスク I/O "
-"で 動作が停止 (block) しないように、前もってファイルの内容を ページ・キャッ"
-"シュに読み込む。 I<fd> 引き数は読み込みを行うファイルを識別するファイル・ディ"
-"スクリプタである。 I<offset> 引き数はデータの読み込み開始位置を指定し、 "
-"I<count> は読み込むデータのバイト数を指定する。 ディスク I/O はページ単位で実"
-"行されるので、 実際には I<offset> はページ境界に切り下げられ、読み込みバイト"
-"数は I<(offset+count)> より小さくない次のページ境界まで切り上げられる。 "
-"B<readahead>() はファイルの末尾を越えた範囲まで読み出しを行うことはない。ま"
-"た、 B<readahead>() は指定したデータの読み込みが終わるまで停止 (block) す"
-"る。 I<fd> で参照されたオープン済のファイルのファイルオフセットの現在値は 変"
-"更されない。"
+"I<fd> 引き数は読み込みを行うファイルを識別するファイルディスクリプターであ"
+"る。 I<offset> 引き数はデータの読み込み開始位置を指定し、 I<count> は読み込む"
+"データのバイト数を指定する。 ディスク I/O はページ単位で実行されるので、 実際"
+"には I<offset> はページ境界に切り下げられ、読み込みバイト数は I<(offset"
+"+count)> より小さくない次のページ境界まで切り上げられる。 B<readahead>() は"
+"ファイルの末尾を越えた範囲まで読み出しを行うことはない。 I<fd> で参照された"
+"オープン済のファイルのファイルオフセットの現在値は 変更されない。"
#. type: Plain text
-#: build/C/man2/readahead.2:71
+#: build/C/man2/readahead.2:72
msgid ""
"On success, B<readahead>() returns 0; on failure, -1 is returned, with "
"I<errno> set to indicate the cause of the error."
"ラーの原因を示す値を設定する。"
#. type: Plain text
-#: build/C/man2/readahead.2:76
+#: build/C/man2/readahead.2:77
msgid "I<fd> is not a valid file descriptor or is not open for reading."
msgstr ""
-"I<fd> ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿でない、または 読み込み用にオープンされ"
+"I<fd> ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼でない、または 読み込み用にオープンされ"
"ていない。"
#. type: Plain text
-#: build/C/man2/readahead.2:82
+#: build/C/man2/readahead.2:83
msgid ""
"I<fd> does not refer to a file type to which B<readahead>() can be applied."
msgstr ""
"ファイルであった。"
#. type: Plain text
-#: build/C/man2/readahead.2:87
+#: build/C/man2/readahead.2:88
msgid ""
"The B<readahead>() system call appeared in Linux 2.4.13; glibc support has "
"been provided since version 2.3."
"は glibc バージョン 2.3 以降で行われている。"
#. type: Plain text
-#: build/C/man2/readahead.2:92
+#: build/C/man2/readahead.2:93
msgid ""
"The B<readahead>() system call is Linux-specific, and its use should be "
"avoided in portable applications."
#. type: Plain text
#: build/C/man2/readahead.2:98
+msgid ""
+"On some 32-bit architectures, the calling signature for this system call "
+"differs, for the reasons described in B<syscall>(2)."
+msgstr ""
+"いくつかの 32 ビットアーキテクチャーでは、このシステムコールの呼び出しシグネ"
+"チャーが違っている。 理由は B<syscall>(2) で説明されている。"
+
+#. type: Plain text
+#: build/C/man2/readahead.2:107
+msgid ""
+"B<readahead>() attempts to schedule the reads in the background and return "
+"immediately. However, it may block while it reads the filesystem metadata "
+"needed to locate the requested blocks. This occurs frequently with ext[234] "
+"on large files using indirect blocks instead of extents, giving the "
+"appearance that the call blocks until the requested data has been read."
+msgstr ""
+"B<readahead>() は読み込みをバックグラウンドで行うようにスケジューリングを行"
+"い、すぐに返る。 しかしながら、要求されたブロックの位置を知るために必要なファ"
+"イルシステムのメタデータを読み込む間は B<readahead>() は停止することがある。 "
+"これは ext[234] で大きなファイルをエクステントではなく間接ブロックを使う場合"
+"にしばしば発生し、 要求したデータが読み込まれるまで呼び出しが停止しているよう"
+"に見える。"
+
+#. type: Plain text
+#: build/C/man2/readahead.2:113
msgid "B<lseek>(2), B<madvise>(2), B<mmap>(2), B<posix_fadvise>(2), B<read>(2)"
msgstr ""
"B<lseek>(2), B<madvise>(2), B<mmap>(2), B<posix_fadvise>(2), B<read>(2)"
#. 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 "REMAP_FILE_PAGES"
#. 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 "remap_file_pages - 非線形ファイルマッピングを作成する。"
#. 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"
"B<#include E<lt>sys/mman.hE<gt>>\n"
#. 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 >I<prot>B<,>\n"
-"B< ssize_t >I<pgoff>B<, int >I<flags>B<);>\n"
+"B< size_t >I<pgoff>B<, int >I<flags>B<);>\n"
msgstr ""
"B<int remap_file_pages(void *>I<addr>B<, size_t >I<size>B<, int >I<prot>B<,>\n"
-"B< ssize_t >I<pgoff>B<, int >I<flags>B<);>\n"
+"B< size_t >I<pgoff>B<, int >I<flags>B<);>\n"
+
+#. commit 33041a0d76d3c3e0aff28ac95a2ffdedf1282dbc
+#. http://lwn.net/Articles/597632/
+#. type: Plain text
+#: build/C/man2/remap_file_pages.2:47
+msgid ""
+"B<Note>: this system call is (since Linux 3.16) deprecated and will "
+"eventually be replaced by a slower in-kernel emulation. Those few "
+"applications that use this system call should consider migrating to "
+"alternatives."
+msgstr ""
+"B<注意>: このシステムコールは (Linux 3.16 以降で) 非推奨となっており、 やがて"
+"より低速なカーネル内でのエミュレーションに置き換えられる予定である。 このシス"
+"テムコールを使用しているアプリケーションは少ないが、こうしたアプリケーション"
+"は代替手段への移行を検討すべきである。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:49
+#: build/C/man2/remap_file_pages.2:59
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 "
-"nonsequential order in memory. The advantage of using B<remap_file_pages>"
-"() over using repeated calls to B<mmap>(2) is that the former approach "
-"does not require the kernel to create additional VMA (Virtual Memory Area) "
-"data structures."
+"nonsequential order in memory. The advantage of using "
+"B<remap_file_pages>() over using repeated calls to B<mmap>(2) is that the "
+"former approach does not require the kernel to create additional VMA "
+"(Virtual Memory Area) data structures."
msgstr ""
"B<remap_file_pages>() システムコールは非線形なマッピング、 つまりファイルの"
-"ページがメモリ上で連続しない順番でマップされる マッピングを作成するために使わ"
-"ã\82\8cã\82\8bã\80\82 B<remap_file_pages>() ã\82\92使ã\81\86æ\96¹ã\81\8c B<mmap>(2) ã\82\92ç¹°ã\82\8aè¿\94ã\81\97ã\81¦ä½¿ã\81\86ã\82\88ã\82\8aå\84ªã\82\8c"
-"ã\81¦ã\81\84ã\82\8bç\82¹ã\81¯ã\80\81 å\89\8dè\80\85ã\81®æ\96¹æ³\95ã\81§ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81\8c VMA (Virtual Memory Area, ä»®æ\83³ã\83¡ã\83¢ã\83ªé \98"
-"域) データ構造体を追加で作成する必要がないことである。"
+"ページがメモリー上で連続しない順番でマップされる マッピングを作成するために使"
+"ã\82\8fã\82\8cã\82\8bã\80\82 B<remap_file_pages>() ã\82\92使ã\81\86æ\96¹ã\81\8c B<mmap>(2) ã\82\92ç¹°ã\82\8aè¿\94ã\81\97ã\81¦ä½¿ã\81\86ã\82\88ã\82\8aå\84ª"
+"ã\82\8cã\81¦ã\81\84ã\82\8bç\82¹ã\81¯ã\80\81 å\89\8dè\80\85ã\81®æ\96¹æ³\95ã\81§ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81\8c VMA (Virtual Memory Area, ä»®æ\83³ã\83¡ã\83¢"
+"リー領域) データ構造体を追加で作成する必要がないことである。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:51
+#: build/C/man2/remap_file_pages.2:61
msgid "To create a nonlinear mapping we perform the following steps:"
msgstr "非線形マッピングを作成するためには、 以下のようなステップを実行する:"
-#. type: TP
-#: build/C/man2/remap_file_pages.2:51
+#. type: IP
+#: build/C/man2/remap_file_pages.2:61 build/C/man2/memfd_create.2:219
#, no-wrap
msgid "1."
msgstr "1."
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:59
+#: build/C/man2/remap_file_pages.2:69
msgid ""
"Use B<mmap>(2) to create a mapping (which is initially linear). This "
"mapping must be created with the B<MAP_SHARED> flag."
"る)。 このマッピングは B<MAP_SHARED> フラグを指定して作成されなければならな"
"い。"
-#. type: TP
-#: build/C/man2/remap_file_pages.2:59
+#. type: IP
+#: build/C/man2/remap_file_pages.2:69 build/C/man2/memfd_create.2:225
#, no-wrap
msgid "2."
msgstr "2."
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:67
+#: build/C/man2/remap_file_pages.2:77
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. "
"所に マップすることが可能である。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:78
+#: build/C/man2/remap_file_pages.2:88
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 "
"る。 I<size> は領域の長さであり、単位はバイトである。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:96
+#: build/C/man2/remap_file_pages.2:106
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 "
"and I<size> will be placed."
msgstr ""
"I<addr> 引き数は 2 つの目的で使われる。 第 1 の目的は、この引き数によって再編"
-"成したいページの マッピングを識別することである。 よって I<addr> は B<mmap>"
-"(2) の呼び出しで過去にマップされた領域内のアドレスでなければならない。 第 2 "
-"ã\81®ç\9b®ç\9a\84ã\81¯ã\80\81 I<pgoff> ã\81¨ I<size> ã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\9aã\83¼ã\82¸ã\81\8cç½®ã\81\8bã\82\8cã\82\8bäº\88å®\9aã\81®ã\82¢ã\83\89"
-"レスを、 I<addr> によって指定することである。"
+"成したいページの マッピングを識別することである。 よって I<addr> は "
+"B<mmap>(2) の呼び出しで過去にマップされた領域内のアドレスでなければならな"
+"ã\81\84ã\80\82 第 2 ã\81®ç\9b®ç\9a\84ã\81¯ã\80\81 I<pgoff> ã\81¨ I<size> ã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\9aã\83¼ã\82¸ã\81\8cç½®ã\81\8bã\82\8cã\82\8b"
+"予定のアドレスを、 I<addr> によって指定することである。"
#. This rounding is weird, and not consistent with the treatment of
#. 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:120
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 "
"「切り下げる」。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:114
+#: build/C/man2/remap_file_pages.2:124
msgid "The I<prot> argument must be specified as 0."
msgstr "I<prot> 引き数は 0 に指定されなければならない。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:122
+#: build/C/man2/remap_file_pages.2:132
msgid ""
"The I<flags> argument has the same meaning as for B<mmap>(2), but all flags "
"other than B<MAP_NONBLOCK> are ignored."
"の全てのフラグは無視される。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:129
+#: build/C/man2/remap_file_pages.2:139
msgid ""
"On success, B<remap_file_pages>() returns 0. On error, -1 is returned, and "
"I<errno> is set appropriately."
"れ、 I<errno> が適切に設定される。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:137
+#: build/C/man2/remap_file_pages.2:147
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:156
msgid "I<addr>, I<size>, I<prot>, or I<pgoff> is invalid."
msgstr "I<addr>, I<size>, I<prot>, I<pgoff> のいずれかが不正である。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:151
+#: build/C/man2/remap_file_pages.2:161
msgid ""
"The B<remap_file_pages>() system call appeared in Linux 2.5.46; glibc "
"support was added in version 2.3.3."
"サポートは glibc バージョン 2.3.3 で追加された。"
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:155
+#: build/C/man2/remap_file_pages.2:165
msgid "The B<remap_file_pages>() system call is Linux-specific."
msgstr "B<remap_file_pages>() システムコールは Linux 固有のものである。"
+#. commit 3ee6dafc677a68e461a7ddafc94a580ebab80735
+#. type: Plain text
+#: build/C/man2/remap_file_pages.2:176
+msgid ""
+"Since Linux 2.6.23, B<remap_file_pages>() creates non-linear mappings only "
+"on in-memory file systems such as tmpfs, hugetlbfs or ramfs. On filesystems "
+"with a backing store, B<remap_file_pages>() is not much more efficient than "
+"using B<mmap>(2) to adjust which parts of the file are mapped to which "
+"addresses."
+msgstr ""
+"Linux 2.6.23 以降、 B<remap_file_pages>() は tmpfs, hugetlbfs, ramfs などのイ"
+"ンメモリーファイルシステム上にのみ非線形マッピングを作成する。 裏にデータスト"
+"アを持つファイルシステム上では、 B<remap_file_pages>() は、 ファイルのどの部"
+"分がどのアドレスにマッピングされているかの調整が、 B<mmap>(2) を使った場合ほ"
+"ど効率的ではない。"
+
#. type: Plain text
-#: build/C/man2/remap_file_pages.2:162
+#: build/C/man2/remap_file_pages.2:183
msgid ""
"B<getpagesize>(2), B<mmap>(2), B<mmap2>(2), B<mprotect>(2), B<mremap>(2), "
"B<msync>(2)"
msgid "SHM_OPEN"
msgstr "SHM_OPEN"
-#. type: TH
-#: build/C/man3/shm_open.3:26
-#, no-wrap
-msgid "2009-02-25"
-msgstr "2009-02-25"
-
#. type: Plain text
#: build/C/man3/shm_open.3:29
msgid ""
-"shm_open, shm_unlink - Create/open or unlink POSIX shared memory objects"
+"shm_open, shm_unlink - create/open or unlink POSIX shared memory objects"
msgstr ""
-"shm_open, shm_unlink - POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ä½\9cæ\88\90/ã\82ªã\83¼ã\83\97ã\83³ã\80\81 å\89\8aé\99¤ã\82\92"
-"行う"
+"shm_open, shm_unlink - POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ä½\9cæ\88\90/ã\82ªã\83¼ã\83\97ã\83³/å\89\8aé\99¤ã\82\92è¡\8c"
+"う"
#. type: Plain text
#: build/C/man3/shm_open.3:33
msgid ""
"B<int shm_open(const char *>I<name>B<, int >I<oflag>B<, mode_t >I<mode>B<);>"
msgstr ""
-"B<void * shm_open(const char *>I<name>B<, int >I<oflag>B<, mode_t "
-">I<mode>B<);>"
+"B<int shm_open(const char *>I<name>B<, int >I<oflag>B<, mode_t >I<mode>B<);>"
#. type: Plain text
#: build/C/man3/shm_open.3:39
"memory. The B<shm_unlink>() function performs the converse operation, "
"removing an object previously created by B<shm_open>()."
msgstr ""
-"B<shm_open>() ã\81¯ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトを新規に作成/オープンした"
-"ã\82\8aã\80\81 ã\81\99ã\81§ã\81«å\98å\9c¨ã\81\99ã\82\8bã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\80\82 POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブ"
-"ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81å®\9fé\9a\9bã\81«ã\81¯ã\80\81é\96¢ä¿\82ã\81®ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81®å\90\8cã\81\98é \98å\9f\9fã\82\92 B<mmap>"
-"(2) するために使用することができる手段である。 B<shm_unlink>() は、逆の操"
-"作、つまり以前に B<shm_open>() で作成されたオブジェクトの削除を行う。"
+"B<shm_open>() ã\81¯ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトを新規に作成/オープンした"
+"ã\82\8aã\80\81 ã\81\99ã\81§ã\81«å\98å\9c¨ã\81\99ã\82\8bã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\80\82 POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブ"
+"ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81å®\9fé\9a\9bã\81«ã\81¯ã\80\81é\96¢ä¿\82ã\81®ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\90\8cã\81\98é \98å\9f\9fã\82\92 "
+"B<mmap>(2) するために使用することができる手段である。 B<shm_unlink>() は、"
+"逆の操作、つまり以前に B<shm_open>() で作成されたオブジェクトの削除を行う。"
#. glibc allows the initial slash to be omitted, and makes
#. multiple initial slashes equivalent to a single slash.
"characters, none of which are slashes."
msgstr ""
"B<shm_open>() の動作は B<open>(2) とよく似ている。 I<name> で作成したりオー"
-"ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトを指定する。 移植性を持たせるためには、"
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは I</somename> という形式の名前で識別し、 その名前"
-"は、最大で B<NAME_MAX> (すなわち 255) 文字の NULL 終端された文字列で、 スラッ"
+"ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトを指定する。 移植性を持たせるためには、"
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは I</somename> という形式の名前で識別し、 その名前"
+"は、最大で B<NAME_MAX> (すなわち 255) 文字のヌル終端された文字列で、 スラッ"
"シュで始まり、スラッシュ以外の文字が 1 文字以上続く形式 にすべきである。"
#. type: Plain text
msgstr "B<O_RDONLY>"
#. type: Plain text
-#: build/C/man3/shm_open.3:87
+#: build/C/man3/shm_open.3:89
msgid ""
"Open the object for read access. A shared memory object opened in this way "
-"can only be B<mmap>(2)ed for read (B<PROT_READ>) access."
+"can be B<mmap>(2)ed only for read (B<PROT_READ>) access."
msgstr ""
"読み出しアクセス用にオブジェクトをオープンする。 このフラグを指定してオープン"
-"ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは、 読み出し (B<PROT_READ>) アクセスでのみ "
+"ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは、 読み出し (B<PROT_READ>) アクセスでのみ "
"B<mmap>(2) することができる。"
#. type: TP
-#: build/C/man3/shm_open.3:87
+#: build/C/man3/shm_open.3:89
#, no-wrap
msgid "B<O_RDWR>"
msgstr "B<O_RDWR>"
#. type: Plain text
-#: build/C/man3/shm_open.3:90
+#: build/C/man3/shm_open.3:92
msgid "Open the object for read-write access."
msgstr "読み書きアクセス用にオブジェクトをオープンする。"
#. type: TP
-#: build/C/man3/shm_open.3:90
+#: build/C/man3/shm_open.3:92
#, no-wrap
msgid "B<O_CREAT>"
msgstr "B<O_CREAT>"
-#. In truth it is actually the file system IDs on Linux, but these
+#. In truth it is actually the filesystem IDs on Linux, but these
#. are nearly always the same as the effective IDs. (MTK, Jul 05)
#. type: Plain text
-#: build/C/man3/shm_open.3:110
+#: build/C/man3/shm_open.3:112
msgid ""
"Create the shared memory object if it does not exist. The user and group "
"ownership of the object are taken from the corresponding effective IDs of "
"B<open>(2). (Symbolic definitions of these constants can be obtained by "
"including I<E<lt>sys/stat.hE<gt>>.)"
msgstr ""
-"å\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83¦ã\83¼ã\82¶ã\81¨ã\82°"
-"ã\83«ã\83¼ã\83\97ã\81®æ\89\80æ\9c\89権ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81®å¯¾å¿\9cã\81\99ã\82\8bå®\9få\8a¹ ID ã\81\8c使ã\82\8fã\82\8cã\80\81 ã\82ªã\83\96ã\82¸ã\82§ã\82¯"
-"ã\83\88ã\81®è¨±å\8f¯ã\83\93ã\83\83ã\83\88ã\81¯ I<mode> ã\81®ä¸\8bä½\8d 9 ã\83\93ã\83\83ã\83\88ã\81«å\9fºã\81¥ã\81\84ã\81¦è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82ã\81\9fã\81 ã\81\97ã\80\81 ã\83\95ã\82¡ã\82¤"
-"ã\83«ã\83¢ã\83¼ã\83\89ä½\9cæ\88\90ã\83\9eã\82¹ã\82¯ (B<umask>(2) å\8f\82ç\85§) ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\80¤ã\81¯ã\80\81æ\96°è¦\8fã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88"
-"ã\81«é\96¢ã\81\97ã\81¦ã\81¯ã\82¯ã\83ªã\82¢ã\81\95ã\82\8cã\82\8bã\80\82 I<mode> ã\82\92å®\9a義ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\83\9eã\82¯ã\83å®\9aæ\95°(群)ã\81¯ "
-"B<open>(2) に記載されている (これらの定数のシンボル定義は I<E<lt>sys/stat."
-"hE<gt>> のインクルードにより得られる)。"
+"å\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81¨"
+"ã\82°ã\83«ã\83¼ã\83\97ã\81®æ\89\80æ\9c\89権ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81®å¯¾å¿\9cã\81\99ã\82\8bå®\9få\8a¹ ID ã\81\8c使ã\82\8fã\82\8cã\80\81 ã\82ªã\83\96ã\82¸ã\82§"
+"ã\82¯ã\83\88ã\81®è¨±å\8f¯ã\83\93ã\83\83ã\83\88ã\81¯ I<mode> ã\81®ä¸\8bä½\8d 9 ã\83\93ã\83\83ã\83\88ã\81«å\9fºã\81¥ã\81\84ã\81¦è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82ã\81\9fã\81 ã\81\97ã\80\81 ã\83\95ã\82¡"
+"ã\82¤ã\83«ã\83¢ã\83¼ã\83\89ä½\9cæ\88\90ã\83\9eã\82¹ã\82¯ (B<umask>(2) å\8f\82ç\85§) ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\80¤ã\81¯ã\80\81æ\96°è¦\8fã\82ªã\83\96ã\82¸ã\82§ã\82¯"
+"ã\83\88ã\81«é\96¢ã\81\97ã\81¦ã\81¯ã\82¯ã\83ªã\82¢ã\81\95ã\82\8cã\82\8bã\80\82 I<mode> ã\82\92å®\9a義ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\83\9eã\82¯ã\83å®\9aæ\95°(群)"
+"は B<open>(2) に記載されている (これらの定数のシンボル定義は I<E<lt>sys/"
+"stat.hE<gt>> のインクルードにより得られる)。"
#. type: Plain text
-#: build/C/man3/shm_open.3:116
+#: build/C/man3/shm_open.3:118
msgid ""
"A new shared memory object initially has zero length\\(emthe size of the "
"object can be set using B<ftruncate>(2). The newly allocated bytes of a "
"shared memory object are automatically initialized to 0."
msgstr ""
-"æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは長さ 0 で初期化される。 オブジェク"
-"ã\83\88ã\81®å¤§ã\81\8dã\81\95ã\81¯ B<ftruncate>(2) ã\82\92使ã\81£ã\81¦è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトと"
+"æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは長さ 0 で初期化される。 オブジェク"
+"ã\83\88ã\81®å¤§ã\81\8dã\81\95ã\81¯ B<ftruncate>(2) ã\82\92使ã\81£ã\81¦è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトと"
"して新規に確保されたバイトは自動的に 0 に初期化される。"
#. type: TP
-#: build/C/man3/shm_open.3:116
+#: build/C/man3/shm_open.3:118
#, no-wrap
msgid "B<O_EXCL>"
msgstr "B<O_EXCL>"
#. type: Plain text
-#: build/C/man3/shm_open.3:125
+#: build/C/man3/shm_open.3:127
msgid ""
"If B<O_CREAT> was also specified, and a shared memory object with the given "
"I<name> already exists, return an error. The check for the existence of the "
"object, and its creation if it does not exist, are performed atomically."
msgstr ""
-"B<O_CREAT> ã\81\8cä¸\80ç·\92ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 I<name> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェ"
+"B<O_CREAT> ã\81\8cä¸\80ç·\92ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 I<name> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェ"
"クトが既に存在した場合、 エラーを返す。 オブジェクトの存在確認と、存在しな"
"かった場合のオブジェクト作成は、 必ず一連の操作として実行される (performed "
"atomically)。"
#. type: TP
-#: build/C/man3/shm_open.3:125
+#: build/C/man3/shm_open.3:127
#, no-wrap
msgid "B<O_TRUNC>"
msgstr "B<O_TRUNC>"
#. type: Plain text
-#: build/C/man3/shm_open.3:128
+#: build/C/man3/shm_open.3:130
msgid "If the shared memory object already exists, truncate it to zero bytes."
msgstr ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトがすでに存在した場合、 そのオブジェクトを 0 バイトに"
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトがすでに存在した場合、 そのオブジェクトを 0 バイトに"
"切り詰める。"
#. type: Plain text
-#: build/C/man3/shm_open.3:131
+#: build/C/man3/shm_open.3:133
msgid ""
"Definitions of these flag values can be obtained by including I<E<lt>fcntl."
"hE<gt>>."
"これらのフラグ値の定義は I<E<lt>fcntl.hE<gt>> のインクルードにより得られる。"
#. type: Plain text
-#: build/C/man3/shm_open.3:142
+#: build/C/man3/shm_open.3:144
msgid ""
"On successful completion B<shm_open>() returns a new file descriptor "
"referring to the shared memory object. This file descriptor is guaranteed "
"process. The B<FD_CLOEXEC> flag (see B<fcntl>(2)) is set for the file "
"descriptor."
msgstr ""
-"æ\88\90å\8a\9fã\81\97ã\81¦å®\8cäº\86ã\81\97ã\81\9få ´å\90\88ã\80\81 B<shm_open>() ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトを参照する新"
-"ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、そのプロ"
-"ã\82»ã\82¹å\86\85ã\81§é\81\8eå\8e»ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の中で最も小さな数"
+"æ\88\90å\8a\9fã\81\97ã\81¦å®\8cäº\86ã\81\97ã\81\9få ´å\90\88ã\80\81 B<shm_open>() ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトを参照する新"
+"ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、そのプロ"
+"ã\82»ã\82¹å\86\85ã\81§é\81\8eå\8e»ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の中で最も小さな数"
"になることが保証される。 B<FD_CLOEXEC> フラグ (B<fcntl>(2) を参照) が、この"
-"ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に設定される。"
+"ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に設定される。"
#. type: Plain text
-#: build/C/man3/shm_open.3:151
+#: build/C/man3/shm_open.3:153
msgid ""
"The file descriptor is normally used in subsequent calls to B<ftruncate>(2) "
"(for a newly created object) and B<mmap>(2). After a call to B<mmap>(2) "
"the file descriptor may be closed without affecting the memory mapping."
msgstr ""
-"通常、これらのファイル・ディスクリプタは、この後続けて実行される B<ftruncate>"
-"(2) (新規に作成されたオブジェクトの場合のみ) と B<mmap>(2) の呼び出しに使用"
-"される。 B<mmap>(2) を呼び出した後は、ファイル・ディスクリプタをクローズして"
-"もよく、 クローズしてもメモリ・マッピングに影響を与えることはない。"
+"通常、これらのファイルディスクリプターは、この後続けて実行される "
+"B<ftruncate>(2) (新規に作成されたオブジェクトの場合のみ) と B<mmap>(2) の呼"
+"び出しに使用される。 B<mmap>(2) を呼び出した後は、ファイルディスクリプターを"
+"クローズしてもよく、 クローズしてもメモリーマッピングに影響を与えることはな"
+"い。"
#. type: Plain text
-#: build/C/man3/shm_open.3:169
+#: build/C/man3/shm_open.3:171
msgid ""
"The operation of B<shm_unlink>() is analogous to B<unlink>(2): it removes a "
"shared memory object name, and, once all processes have unmapped the object, "
"with the same I<name> will fail (unless B<O_CREAT> was specified, in which "
"case a new, distinct object is created)."
msgstr ""
-"B<shm_unlink>() ã\81®å\8b\95ä½\9cã\81¯ B<unlink>(2) ã\81¨ã\82\88ã\81\8fä¼¼ã\81¦ã\81\84ã\82\8b: å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェ"
+"B<shm_unlink>() ã\81®å\8b\95ä½\9cã\81¯ B<unlink>(2) ã\81¨ã\82\88ã\81\8fä¼¼ã\81¦ã\81\84ã\82\8b: å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェ"
"クト名を削除し、すべてのプロセスが処理対象の オブジェクトをアンマップした時点"
-"でオブジェクトの割り当てを解除し、 対応するメモリ領域の内容を破棄する。 "
+"でオブジェクトの割り当てを解除し、 対応するメモリー領域の内容を破棄する。 "
"B<shm_unlink>() が成功した後で、同じ I<name> を持つオブジェクトに対して "
"B<shm_open>() を行うと、 (B<O_CREAT> が指定されていない場合) 失敗する。 "
"(B<O_CREAT> が指定されている場合、新しく別のオブジェクトが作成される)。"
#. type: Plain text
-#: build/C/man3/shm_open.3:178
+#: build/C/man3/shm_open.3:180
msgid ""
"On success, B<shm_open>() returns a nonnegative file descriptor. On "
"failure, B<shm_open>() returns -1. B<shm_unlink>() returns 0 on success, "
"or -1 on error."
msgstr ""
-"æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 B<shm_open>() ã\81¯é\9d\9eè² ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。 失敗し"
+"æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 B<shm_open>() ã\81¯é\9d\9eè² ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。 失敗し"
"た場合、 B<shm_open>() は -1 を返す。 B<shm_unlink>() は、成功した場合 0 "
"を、エラーが起こった場合 -1 を返す。"
#. type: Plain text
-#: build/C/man3/shm_open.3:185
+#: build/C/man3/shm_open.3:187
msgid ""
"On failure, I<errno> is set to indicate the cause of the error. Values "
"which may appear in I<errno> include the following:"
"される値は以下の通りである:"
#. type: Plain text
-#: build/C/man3/shm_open.3:190
+#: build/C/man3/shm_open.3:192
msgid "Permission to B<shm_unlink>() the shared memory object was denied."
-msgstr "共有メモリオブジェクトを B<shm_unlink>() する権限がなかった。"
+msgstr "å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92 B<shm_unlink>() ã\81\99ã\82\8b権é\99\90ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82"
#. type: Plain text
-#: build/C/man3/shm_open.3:200
+#: build/C/man3/shm_open.3:202
msgid ""
"Permission was denied to B<shm_open>() I<name> in the specified I<mode>, or "
"B<O_TRUNC> was specified and the caller does not have write permission on "
"み権限が なかった。"
#. type: TP
-#: build/C/man3/shm_open.3:200 build/C/man2/shmget.2:192
+#: build/C/man3/shm_open.3:202 build/C/man2/shmget.2:198
#, no-wrap
msgid "B<EEXIST>"
msgstr "B<EEXIST>"
#. type: Plain text
-#: build/C/man3/shm_open.3:211
+#: build/C/man3/shm_open.3:213
msgid ""
"Both B<O_CREAT> and B<O_EXCL> were specified to B<shm_open>() and the "
"shared memory object specified by I<name> already exists."
msgstr ""
"B<O_CREAT> と B<O_EXCL> の両方が B<shm_open>() に指定されたが、 I<name> で指"
-"å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトが既に存在した。"
+"å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトが既に存在した。"
#. type: Plain text
-#: build/C/man3/shm_open.3:218
+#: build/C/man3/shm_open.3:220
msgid "The I<name> argument to B<shm_open>() was invalid."
msgstr "B<shm_open>() に与えられた I<name> 引き数が不正であった。"
#. type: TP
-#: build/C/man3/shm_open.3:218
+#: build/C/man3/shm_open.3:220 build/C/man2/memfd_create.2:146
#, no-wrap
msgid "B<EMFILE>"
msgstr "B<EMFILE>"
#. type: Plain text
-#: build/C/man3/shm_open.3:221
+#: build/C/man3/shm_open.3:223
msgid "The process already has the maximum number of files open."
msgstr "プロセスがオープン可能なファイル数の上限にすでに達していた。"
#. type: TP
-#: build/C/man3/shm_open.3:221
+#: build/C/man3/shm_open.3:223
#, no-wrap
msgid "B<ENAMETOOLONG>"
msgstr "B<ENAMETOOLONG>"
#. type: Plain text
-#: build/C/man3/shm_open.3:227
+#: build/C/man3/shm_open.3:229
msgid "The length of I<name> exceeds B<PATH_MAX>."
msgstr "I<name> の長さが B<PATH_MAX> を越えている。"
#. type: Plain text
-#: build/C/man3/shm_open.3:231
+#: build/C/man3/shm_open.3:233
msgid ""
"The limit on the total number of files open on the system has been reached."
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:233 build/C/man3/shm_open.3:242
+#: build/C/man2/shmget.2:225
#, no-wrap
msgid "B<ENOENT>"
msgstr "B<ENOENT>"
#. type: Plain text
-#: build/C/man3/shm_open.3:240
+#: build/C/man3/shm_open.3:242
msgid ""
"An attempt was made to B<shm_open>() a I<name> that did not exist, and "
"B<O_CREAT> was not specified."
"B<O_CREAT> が指定されていなかった。"
#. type: Plain text
-#: build/C/man3/shm_open.3:247
+#: build/C/man3/shm_open.3:249
msgid ""
"An attempt was to made to B<shm_unlink>() a I<name> that does not exist."
msgstr "存在しない I<name> のオブジェクトを B<shm_unlink>() しようとした。"
#. type: Plain text
-#: build/C/man3/shm_open.3:249
+#: build/C/man3/shm_open.3:251
msgid "These functions are provided in glibc 2.2 and later."
msgstr "これらの関数は glibc 2.2 以降で提供されている。"
#. type: Plain text
-#: build/C/man3/shm_open.3:255
+#: build/C/man3/shm_open.3:257
msgid ""
"POSIX.1-2001 says that the group ownership of a newly created shared memory "
"object is set to either the calling process's effective group ID or \"a "
"system default group ID\"."
msgstr ""
-"POSIX.1-2001 には、新規に作成される共有メモリオブジェクトのグループ所有権"
+"POSIX.1-2001 ã\81«ã\81¯ã\80\81æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82°ã\83«ã\83¼ã\83\97æ\89\80æ\9c\89権"
"は、 呼び出し元プロセスの実効グループ ID か 「システムのデフォルトのグループ "
"ID」 のどちらかに設定される、と書かれている。"
#. type: Plain text
-#: build/C/man3/shm_open.3:264
+#: build/C/man3/shm_open.3:266
msgid ""
"POSIX leaves the behavior of the combination of B<O_RDONLY> and B<O_TRUNC> "
"unspecified. On Linux, this will successfully truncate an existing shared "
"memory object\\(emthis may not be so on other UNIX systems."
msgstr ""
"POSIX は B<O_RDONLY> と B<O_TRUNC> が一緒に指定された場合の動作を未定義にして"
-"ã\81\84ã\82\8bã\80\82Linux ã\81§ã\81¯ã\80\81 æ\97¢å\98ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトに対する切り詰め (truncate) "
+"ã\81\84ã\82\8bã\80\82Linux ã\81§ã\81¯ã\80\81 æ\97¢å\98ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトに対する切り詰め (truncate) "
"は成功する。 しかし、他の UNIX システムでも同じであるとは限らない。"
#. type: Plain text
-#: build/C/man3/shm_open.3:269
+#: build/C/man3/shm_open.3:271
msgid ""
"The POSIX shared memory object implementation on Linux 2.4 makes use of a "
-"dedicated file system, which is normally mounted under I</dev/shm>."
+"dedicated filesystem, which is normally mounted under I</dev/shm>."
msgstr ""
-"Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトの実装は 専用のファイルシス"
+"Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトの実装は 専用のファイルシス"
"テムを使用する。そのファイルシステムは通常 I</dev/shm> にマウントされる。"
#. type: Plain text
-#: build/C/man3/shm_open.3:280
+#: build/C/man3/shm_open.3:283
msgid ""
"B<close>(2), B<fchmod>(2), B<fchown>(2), B<fcntl>(2), B<fstat>(2), "
-"B<ftruncate>(2), B<mmap>(2), B<open>(2), B<umask>(2), B<shm_overview>(7)"
+"B<ftruncate>(2), B<memfd_create>(2), B<mmap>(2), B<open>(2), B<umask>(2), "
+"B<shm_overview>(7)"
msgstr ""
"B<close>(2), B<fchmod>(2), B<fchown>(2), B<fcntl>(2), B<fstat>(2), "
-"B<ftruncate>(2), B<mmap>(2), B<open>(2), B<umask>(2), B<shm_overview>(7)"
+"B<ftruncate>(2), B<memfd_create>(2), B<mmap>(2), B<open>(2), B<umask>(2), "
+"B<shm_overview>(7)"
#. type: TH
#: build/C/man7/shm_overview.7:27
msgid "SHM_OVERVIEW"
msgstr "SHM_OVERVIEW"
+#. type: TH
+#: build/C/man7/shm_overview.7:27
+#, no-wrap
+msgid "2010-09-10"
+msgstr "2010-09-10"
+
#. type: Plain text
#: build/C/man7/shm_overview.7:30
-msgid "shm_overview - Overview of POSIX shared memory"
-msgstr "shm_overview - POSIX 共有メモリの概要"
+msgid "shm_overview - overview of POSIX shared memory"
+msgstr "shm_overview - POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ¦\82è¦\81"
#. type: Plain text
#: build/C/man7/shm_overview.7:33
"The POSIX shared memory API allows processes to communicate information by "
"sharing a region of memory."
msgstr ""
-"POSIX 共有メモリ API を使用すると、メモリのある領域を共有して、 プロセス間で"
-"情報をやり取りすることができる。"
+"POSIX 共有メモリー API を使用すると、メモリーのある領域を共有して、 プロセス"
+"間で情報をやり取りすることができる。"
#. type: Plain text
#: build/C/man7/shm_overview.7:35
msgstr ""
"新しいオブジェクトを生成しオープンする、もしくは 既存のオブジェクトをオープン"
"する。これは B<open>(2) と同じである。下記にある他のインターフェースで使用す"
-"る ファイルディスクリプタを返す。"
+"ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82"
#. type: TP
#: build/C/man7/shm_overview.7:42
msgid ""
"Set the size of the shared memory object. (A newly created shared memory "
"object has a length of zero.)"
-msgstr "共有メモリオブジェクトの大きさを設定する。"
+msgstr "å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®å¤§ã\81\8dã\81\95ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82"
#. type: Plain text
#: build/C/man7/shm_overview.7:50
"Map the shared memory object into the virtual address space of the calling "
"process."
msgstr ""
-"呼び出したプロセスの仮想アドレス空間に共有メモリオブジェクトを マップする。"
+"å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81«å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92 ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8bã\80\82"
#. type: TP
#: build/C/man7/shm_overview.7:50
"Unmap the shared memory object from the virtual address space of the calling "
"process."
msgstr ""
-"å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81\8bã\82\89 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\99"
-"る。"
+"å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81\8bã\82\89 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82¢ã\83³ã\83\9eã\83\83ã\83\97"
+"ã\81\99ã\82\8bã\80\82"
#. type: TP
#: build/C/man7/shm_overview.7:54
#. type: Plain text
#: build/C/man7/shm_overview.7:57
msgid "Remove a shared memory object name."
-msgstr "共有メモリオブジェクト名を削除する。"
+msgstr "å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88å\90\8dã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\80\82"
#. type: TP
#: build/C/man7/shm_overview.7:57
"Close the file descriptor allocated by B<shm_open>(3) when it is no longer "
"needed."
msgstr ""
-"B<shm_open>(3) ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\80\81 ã\81\9d"
-"ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿をクローズする。"
+"B<shm_open>(3) ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\80\81 "
+"ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼をクローズする。"
#. type: TP
#: build/C/man7/shm_overview.7:62
"the information returned by this call are the object's size (I<st_size>), "
"permissions (I<st_mode>), owner (I<st_uid>), and group (I<st_gid>)."
msgstr ""
-"ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«ã\81¤ã\81\84ã\81¦ã\81®æ\83\85å ±ã\81\8cå\85¥ã\81£ã\81\9f I<stat> æ§\8bé\80 ä½\93ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82 "
-"ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cè¿\94ã\81\99æ\83\85å ±ã\81«ã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82µã\82¤ã\82º (I<st_size>)ã\80\81 許å\8f¯å±\9e"
-"性 (I<st_mode>)、 所有者 (I<st_uid>)、 グループ (I<st_gid>) がある。"
+"ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«ã\81¤ã\81\84ã\81¦ã\81®æ\83\85å ±ã\81\8cå\85¥ã\81£ã\81\9f I<stat> æ§\8bé\80 ä½\93ã\82\92å\8f\96å¾\97ã\81\99"
+"ã\82\8bã\80\82 ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cè¿\94ã\81\99æ\83\85å ±ã\81«ã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82µã\82¤ã\82º (I<st_size>)ã\80\81 許"
+"可属性 (I<st_mode>)、 所有者 (I<st_uid>)、 グループ (I<st_gid>) がある。"
#. type: TP
#: build/C/man7/shm_overview.7:76
#. type: Plain text
#: build/C/man7/shm_overview.7:79
msgid "To change the ownership of a shared memory object."
-msgstr "共有メモリオブジェクトの所有権を変更する。"
+msgstr "å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®æ\89\80æ\9c\89権ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82"
#. type: TP
#: build/C/man7/shm_overview.7:79
#. type: Plain text
#: build/C/man7/shm_overview.7:82
msgid "To change the permissions of a shared memory object."
-msgstr "共有メモリオブジェクトの許可属性を変更する。"
+msgstr "å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®è¨±å\8f¯å±\9eæ\80§ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82"
#. type: SS
#: build/C/man7/shm_overview.7:82
#. type: Plain text
#: build/C/man7/shm_overview.7:84
msgid "POSIX shared memory is supported since Linux 2.4 and glibc 2.2."
-msgstr "POSIX 共有メモリは Linux 2.4 と glibc 2.2 以降でサポートされている。"
+msgstr "POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ Linux 2.4 ã\81¨ glibc 2.2 以é\99\8dã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82"
#. type: SS
#: build/C/man7/shm_overview.7:84
"will exist until the system is shut down, or until all processes have "
"unmapped the object and it has been deleted with B<shm_unlink>(3)"
msgstr ""
-"POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81§ä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88"
-"ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\82·ã\83£ã\83\83ã\83\88ã\83\80ã\82¦ã\83³ã\81\95ã\82\8cã\82\8bã\81\8bã\80\81 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82¢ã\83³"
-"マップし、 B<shm_unlink>(3) で削除されるまで、存在し続ける。"
+"POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81§ä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§"
+"ã\82¯ã\83\88ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\82·ã\83£ã\83\83ã\83\88ã\83\80ã\82¦ã\83³ã\81\95ã\82\8cã\82\8bã\81\8bã\80\81 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92"
+"ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\97ã\80\81 B<shm_unlink>(3) ã\81§å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\80\81å\98å\9c¨ã\81\97ç¶\9aã\81\91ã\82\8bã\80\82"
#. type: SS
#: build/C/man7/shm_overview.7:89
"Programs using the POSIX shared memory API must be compiled with I<cc -lrt> "
"to link against the real-time library, I<librt>."
msgstr ""
-"POSIX 共有メモリ API を使用したプログラムは I<cc -lrt> でコンパイルし、リアル"
-"タイムライブラリ I<librt> とリンクしなければならない。"
+"POSIX 共有メモリー API を使用したプログラムは I<cc -lrt> でコンパイルし、リア"
+"ã\83«ã\82¿ã\82¤ã\83 ã\83©ã\82¤ã\83\96ã\83©ã\83ª I<librt> ã\81¨ã\83ªã\83³ã\82¯ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82"
#. type: SS
#: build/C/man7/shm_overview.7:94
#, no-wrap
-msgid "Accessing shared memory objects via the file system"
-msgstr "ファイルシステム経由での共有メモリオブジェクトへのアクセス"
+msgid "Accessing shared memory objects via the filesystem"
+msgstr "ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 çµ\8cç\94±ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹"
#. type: Plain text
#: build/C/man7/shm_overview.7:101
msgid ""
-"On Linux, shared memory objects are created in a (I<tmpfs>) virtual file "
-"system, normally mounted under I</dev/shm>. Since kernel 2.6.19, Linux "
+"On Linux, shared memory objects are created in a (I<tmpfs>) virtual "
+"filesystem, normally mounted under I</dev/shm>. Since kernel 2.6.19, Linux "
"supports the use of access control lists (ACLs) to control the permissions "
-"of objects in the virtual file system."
+"of objects in the virtual filesystem."
msgstr ""
-"Linux ã\81§ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯é\80\9a常 I</dev/shm> 以ä¸\8bã\81«ã\83\9eã\82¦ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bä»®æ\83³"
-"ファイルシステム (I<tmpfs>) 内に作成される。 カーネル 2.6.19 以降の Linux で"
-"ã\81¯ã\80\81 ä»®æ\83³ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 å\86\85ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®è¨±å\8f¯å±\9eæ\80§ã\81®å\88¶å¾¡ã\81«ã\80\81 ã\82¢ã\82¯ã\82»ã\82¹å\88¶å¾¡ã\83ª"
-"スト (ACL; access control lists) を使うことができる。"
+"Linux ã\81§ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯é\80\9a常 I</dev/shm> 以ä¸\8bã\81«ã\83\9eã\82¦ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bä»®"
+"想ファイルシステム (I<tmpfs>) 内に作成される。 カーネル 2.6.19 以降の Linux "
+"ã\81§ã\81¯ã\80\81 ä»®æ\83³ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 å\86\85ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®è¨±å\8f¯å±\9eæ\80§ã\81®å\88¶å¾¡ã\81«ã\80\81 ã\82¢ã\82¯ã\82»ã\82¹å\88¶å¾¡"
+"ã\83ªã\82¹ã\83\88 (ACL; access control lists) ã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82"
#. type: Plain text
#: build/C/man7/shm_overview.7:106
"Typically, processes must synchronize their access to a shared memory "
"object, using, for example, POSIX semaphores."
msgstr ""
-"é\80\9a常ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81ªã\81©ã\82\92"
-"使ってプロセス間で同期をとらなければならない。"
+"é\80\9a常ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81ªã\81©"
+"を使ってプロセス間で同期をとらなければならない。"
#. type: Plain text
#: build/C/man7/shm_overview.7:114
"interface; on the other hand POSIX shared memory is somewhat less widely "
"available (especially on older systems) than System V shared memory."
msgstr ""
-"System V 共有メモリ (B<shmget>(2), B<shmop>(2) など) は古い共有メモリ API で"
-"ある。 POSIX 共有メモリは、より簡単で、うまく設計されたインタフェースを提供し"
-"ã\81¦ã\81\84ã\82\8bã\80\82 ä¸\80æ\96¹ã\81§ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81¯ System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81¨æ¯\94ã\81¹ã\82\8bã\81¨ å\88©ç\94¨ã\81§ã\81\8dる"
-"システムが少ない (特に、古いシステムでは少ない)。"
+"System V 共有メモリー (B<shmget>(2), B<shmop>(2) など) は古い共有メモリー "
+"API である。 POSIX 共有メモリーは、より簡単で、うまく設計されたインターフェー"
+"ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä¸\80æ\96¹ã\81§ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¨æ¯\94ã\81¹る"
+"ã\81¨ å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81\8cå°\91ã\81ªã\81\84 (ç\89¹ã\81«ã\80\81å\8f¤ã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯å°\91ã\81ªã\81\84)ã\80\82"
#. type: Plain text
#: build/C/man7/shm_overview.7:127
"B<shm_unlink>(3), B<sem_overview>(7)"
#. type: TH
-#: build/C/man2/shmctl.2:43
+#: build/C/man2/shmctl.2:45
#, no-wrap
msgid "SHMCTL"
msgstr "SHMCTL"
#. type: TH
-#: build/C/man2/shmctl.2:43
+#: build/C/man2/shmctl.2:45
#, no-wrap
-msgid "2008-08-07"
-msgstr "2008-08-07"
+msgid "2014-02-07"
+msgstr "2014-02-07"
#. type: Plain text
-#: build/C/man2/shmctl.2:46
-msgid "shmctl - shared memory control"
-msgstr "shmctl - 共有メモリ (shared memory) を制御する"
+#: build/C/man2/shmctl.2:48
+msgid "shmctl - System V shared memory control"
+msgstr "shmctl - System V 共有メモリー (shared memory) を制御する"
#. 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 "B<#include E<lt>sys/ipc.hE<gt>>"
#. 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 "B<#include E<lt>sys/shm.hE<gt>>"
#. 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 ""
"B<int shmctl(int >I<shmid>B<, int >I<cmd>B<, struct shmid_ds *>I<buf>B<);>"
#. 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>."
+"B<shmctl>() performs the control operation specified by I<cmd> on the System"
+"\\ V shared memory segment whose identifier is given in I<shmid>."
msgstr ""
-"B<shmctl>() は、識別子が I<shmid> の共有メモリ・セグメントに対して I<cmd> で"
-"指示した制御命令を実行する。"
+"B<shmctl>() は、識別子が I<shmid> の System\\ V 共有メモリーセグメントに対し"
+"て I<cmd> で指示した制御命令を実行する。"
#. 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 ""
-"I<buf> 引き数は、 I<shmid_ds> 構造体へのポインタである。 この構造体は "
+"I<buf> å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 I<shmid_ds> æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ "
"I<E<lt>sys/shm.hE<gt>> で以下のように定義されている"
#. type: Plain text
-#: build/C/man2/shmctl.2:79
+#: build/C/man2/shmctl.2:81
#, no-wrap
msgid ""
"struct shmid_ds {\n"
"};\n"
#. 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 ""
-"I<ipc_perm> 構造体は I<E<lt>sys/ipc.hE<gt>> で以下のように定義されている (強"
-"調されたフィールドは B<IPC_SET> を使って設定可能である):"
+"I<ipc_perm> 構造体は以下のように定義されている (強調されたフィールドは "
+"B<IPC_SET> を使って設定可能である):"
#. type: Plain text
-#: build/C/man2/shmctl.2:100
+#: build/C/man2/shmctl.2:102
#, no-wrap
msgid ""
"struct ipc_perm {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/shmctl.2:106
+#: build/C/man2/shmctl.2:108
msgid "Valid values for I<cmd> are:"
msgstr "I<cmd> として有効な値は以下の通り:"
#. type: TP
-#: build/C/man2/shmctl.2:107
+#: build/C/man2/shmctl.2:109
#, no-wrap
msgid "B<IPC_STAT>"
msgstr "B<IPC_STAT>"
#. 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 "
"read permission on the shared memory segment."
msgstr ""
"I<shmid> に関連づけられたカーネルデータ構造体の情報を I<buf> で指された "
-"I<shmid_ds> æ§\8bé\80 ä½\93ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに対する "
+"I<shmid_ds> æ§\8bé\80 ä½\93ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに対する "
"読み込み許可を持たなければならない。"
#. type: TP
-#: build/C/man2/shmctl.2:116
+#: build/C/man2/shmctl.2:118
#, no-wrap
msgid "B<IPC_SET>"
msgstr "B<IPC_SET>"
#. 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 "
"memory segment, or the caller must be privileged."
msgstr ""
"I<buf> によって指される I<shmid_ds> 構造体のいくつかのメンバーの値を、 この共"
-"æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに関連づけられたカーネルデータ構造体に書き込み、 "
+"æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関連づけられたカーネルデータ構造体に書き込み、 "
"I<shm_ctime> メンバーも更新する。 以下のフィールドは変更できる。 I<shm_perm."
"uid>, I<shm_perm.gid>, I<shm_perm.mode> (の最下位 9 ビット)。 呼び出したプロ"
"セスの実効 UID が所有者 (I<shm_perm.uid>) または作成者 (I<shm_perm.cuid>) "
"と一致するか、呼び出し元が特権を持たなければならない。"
#. type: TP
-#: build/C/man2/shmctl.2:134
+#: build/C/man2/shmctl.2:136
#, no-wrap
msgid "B<IPC_RMID>"
msgstr "B<IPC_RMID>"
#. type: Plain text
-#: build/C/man2/shmctl.2:151
+#: build/C/man2/shmctl.2:149
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> "
-"member of the associated structure I<shmid_ds> is zero). The caller must be "
-"the owner or creator, or be privileged. If a segment has been marked for "
-"destruction, then the (nonstandard) B<SHM_DEST> flag of the I<shm_perm."
-"mode> field in the associated data structure retrieved by B<IPC_STAT> will "
-"be set."
+"Mark the segment to be destroyed. The segment will actually be destroyed "
+"only after the last process detaches it (i.e., when the I<shm_nattch> member "
+"of the associated structure I<shmid_ds> is zero). The caller must be the "
+"owner or creator of the segment, or be privileged. The I<buf> argument is "
+"ignored."
msgstr ""
"セグメントに破棄済みのマークを付ける。 セグメントは、実際には最後プロセスがセ"
"グメントを分離した (関連する I<shmid_ds> 構造体の I<shm_nattch> メンバーが 0 "
-"になった) 後でのみ破棄される。 呼び出し元は所有者か作成者であるか、特権を持た"
-"なければならない。 セグメントに破棄のマークが付けられると、 関連するデータ構"
-"造体において I<shm_perm.mode> フィールドの (標準ではない) B<SHM_DEST> フラグ"
-"が設定される。 このデータ構造体は B<IPC_STAT> で取得される。"
+"になった) 後でのみ破棄される。 呼び出し元はそのセグメントの所有者か作成者であ"
+"るか、特権を持たなければならない。 I<buf> 引き数は無視される。"
+
+#. type: Plain text
+#: build/C/man2/shmctl.2:157
+msgid ""
+"If a segment has been marked for destruction, then the (nonstandard) "
+"B<SHM_DEST> flag of the I<shm_perm.mode> field in the associated data "
+"structure retrieved by B<IPC_STAT> will be set."
+msgstr ""
+"セグメントに破棄のマークが付けられると、 関連するデータ構造体において "
+"I<shm_perm.mode> フィールドの (標準ではない) B<SHM_DEST> フラグが設定され"
+"る。 このデータ構造体は B<IPC_STAT> で取得される。"
#. type: Plain text
-#: build/C/man2/shmctl.2:154
+#: build/C/man2/shmctl.2:160
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 ""
"呼び出し元は最終的にはセグメントを忘れずに破棄I<しなければならない>。 そうで"
-"なれば、フォールト (fault) されたページは メモリかスワップ (swap) に残り続け"
-"る。"
+"なれば、フォールト (fault) されたページは メモリーかスワップ (swap) に残り続"
+"ける。"
+
+#. type: Plain text
+#: build/C/man2/shmctl.2:165
+msgid ""
+"See also the description of I</proc/sys/kernel/shm_rmid_forced> in "
+"B<proc>(5)."
+msgstr "B<proc>(5) の I</proc/sys/kernel/shm_rmid_forced> の説明も参照のこと。"
#. type: TP
-#: build/C/man2/shmctl.2:154
+#: build/C/man2/shmctl.2:165
#, no-wrap
msgid "B<IPC_INFO> (Linux-specific)"
msgstr "B<IPC_INFO> (Linux 固有)"
#. type: Plain text
-#: build/C/man2/shmctl.2:167
+#: build/C/man2/shmctl.2:178
msgid ""
-"Returns information about system-wide shared memory limits and parameters in "
+"Return information about system-wide shared memory limits and parameters in "
"the structure pointed to by I<buf>. This structure is of type I<shminfo> "
"(thus, a cast is required), defined in I<E<lt>sys/shm.hE<gt>> if the "
"B<_GNU_SOURCE> feature test macro is defined:"
msgstr ""
-"ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\80\81 I<buf> ã\81\8cæ\8c\87ã\81\99æ§\8b"
-"造体に入れて返す。 この構造体は I<shminfo> 型である (そのためキャストが必要で"
-"ある)。 I<shminfo> は B<_GNU_SOURCE> 機能検査マクロが定義された場合に "
+"ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\80\81 I<buf> ã\81\8cæ\8c\87"
+"す構造体に入れて返す。 この構造体は I<shminfo> 型である (そのためキャストが必"
+"要である)。 I<shminfo> は B<_GNU_SOURCE> 機能検査マクロが定義された場合に "
"I<E<lt>sys/shm.hE<gt>> で以下のように定義される:"
#. type: Plain text
-#: build/C/man2/shmctl.2:181
+#: build/C/man2/shmctl.2:192
#, no-wrap
msgid ""
-"struct shminfo {\n"
+"struct shminfo {\n"
" unsigned long shmmax; /* Maximum segment size */\n"
" unsigned long shmmin; /* Minimum segment size;\n"
" always 1 */\n"
" unsigned long shmseg; /* プロセスが付加できる\n"
" セグメントの最大数。\n"
" カーネル内では未使用 */\n"
-" unsigned long shmall; /* 共有メモリの最大ページ数。\n"
+" unsigned long shmall; /* å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ\9c\80大ã\83\9aã\83¼ã\82¸æ\95°ã\80\82\n"
" システム全体での値 */\n"
"};\n"
#. type: Plain text
-#: build/C/man2/shmctl.2:194
+#: build/C/man2/shmctl.2:205
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."
"で変更可能である。 詳しくは B<proc>(5) を参照。"
#. type: TP
-#: build/C/man2/shmctl.2:194
+#: build/C/man2/shmctl.2:205
#, no-wrap
msgid "B<SHM_INFO> (Linux-specific)"
msgstr "B<SHM_INFO> (Linux 固有)"
#. type: Plain text
-#: build/C/man2/shmctl.2:205
+#: build/C/man2/shmctl.2:216
msgid ""
-"Returns a I<shm_info> structure whose fields contain information about "
-"system resources consumed by shared memory. This structure is defined in "
+"Return a I<shm_info> structure whose fields contain information about system "
+"resources consumed by shared memory. This structure is defined in "
"I<E<lt>sys/shm.hE<gt>> if the B<_GNU_SOURCE> feature test macro is defined:"
msgstr ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81\8cæ¶\88è²»ã\81\97ã\81¦ã\81\84ã\82\8bã\82·ã\82¹ã\83\86ã\83 è³\87æº\90ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92 æ ¼ç´\8dã\81\97ã\81\9f I<shm_info> æ§\8bé\80 "
-"体を返す。 この構造体は、 B<_GNU_SOURCE> 機能検査マクロが定義された場合に "
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cæ¶\88è²»ã\81\97ã\81¦ã\81\84ã\82\8bã\82·ã\82¹ã\83\86ã\83 è³\87æº\90ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92 æ ¼ç´\8dã\81\97ã\81\9f I<shm_info> æ§\8b"
+"造体を返す。 この構造体は、 B<_GNU_SOURCE> 機能検査マクロが定義された場合に "
"I<E<lt>sys/shm.hE<gt>> で以下のように定義される:"
#. type: Plain text
-#: build/C/man2/shmctl.2:222
+#: build/C/man2/shmctl.2:233
#, no-wrap
msgid ""
"struct shm_info {\n"
msgstr ""
"struct shm_info {\n"
" int used_ids; /* 現在存在するセグメント数 */\n"
-" unsigned long shm_tot; /* 共有メモリのページ総数 */\n"
-" unsigned long shm_rss; /* メモリ上にある (スワップされて\n"
-" いない) 共有メモリページ数 */\n"
-" unsigned long shm_swp; /* スワップされている共有メモリ\n"
+" unsigned long shm_tot; /* å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸ç·\8fæ\95° */\n"
+" unsigned long shm_rss; /* メモリー上にある (スワップされて\n"
+" ã\81\84ã\81ªã\81\84) å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸æ\95° */\n"
+" unsigned long shm_swp; /* スワップされている共有メモリー\n"
" ページ数 */\n"
" unsigned long swap_attempts;\n"
" /* Linux 2.4 以降では未使用 */\n"
"};\n"
#. type: TP
-#: build/C/man2/shmctl.2:224
+#: build/C/man2/shmctl.2:235
#, no-wrap
msgid "B<SHM_STAT> (Linux-specific)"
msgstr "B<SHM_STAT> (Linux 固有)"
#. type: Plain text
-#: build/C/man2/shmctl.2:235
+#: build/C/man2/shmctl.2:246
msgid ""
-"Returns a I<shmid_ds> structure as for B<IPC_STAT>. However, the I<shmid> "
+"Return 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 "
"internal array that maintains information about all shared memory segments "
"on the system."
msgstr ""
"B<IPC_STAT> と同じく I<shmid_ds> 構造体を返す。 但し、 I<shmid> 引き数は、セ"
-"グメント識別子ではなく、システム上の全ての共有メモリ セグメントに関する情報を"
-"管理するカーネルの内部配列へのインデックス である。"
+"グメント識別子ではなく、システム上の全ての共有メモリー セグメントに関する情報"
+"を管理するカーネルの内部配列へのインデックス である。"
#. type: Plain text
-#: build/C/man2/shmctl.2:238
+#: build/C/man2/shmctl.2:249
msgid ""
"The caller can prevent or allow swapping of a shared memory segment with the "
"following I<cmd> values:"
msgstr ""
-"å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81I<cmd> ã\81«ä»¥ä¸\8bã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが ス"
+"å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81I<cmd> ã\81«ä»¥ä¸\8bã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが ス"
"ワップされることを防止したり、許可したりできる:"
#. type: TP
-#: build/C/man2/shmctl.2:239
+#: build/C/man2/shmctl.2:250
#, no-wrap
msgid "B<SHM_LOCK> (Linux-specific)"
msgstr "B<SHM_LOCK> (Linux 固有)"
#. type: Plain text
-#: build/C/man2/shmctl.2:251
+#: build/C/man2/shmctl.2:262
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 "
"I<shm_perm.mode> field in the associated data structure retrieved by "
"B<IPC_STAT> will be set."
msgstr ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントをスワップすることを防止する。 ロックが有効になった後、"
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントをスワップすることを防止する。 ロックが有効になった後、"
"呼び出し元は、 存在することが要求された全てのページをフォールトさせなければな"
"らない。 セグメントがロックされると、 関連するデータ構造体において "
"I<shm_perm.mode> フィールドの (標準的ではない) B<SHM_LOCKED> フラグが設定さ"
"れる。 このデータ構造体は B<IPC_STAT> で取得される。"
#. type: TP
-#: build/C/man2/shmctl.2:251
+#: build/C/man2/shmctl.2:262
#, no-wrap
msgid "B<SHM_UNLOCK> (Linux-specific)"
msgstr "B<SHM_UNLOCK> (Linux 固有)"
#. type: Plain text
-#: build/C/man2/shmctl.2:254
+#: build/C/man2/shmctl.2:265
msgid "Unlock the segment, allowing it to be swapped out."
-msgstr "ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\83ã\83\83ã\82¯ã\82\92解é\99¤ã\81\97ã\80\81ã\82¹ã\83¯ã\83\83ã\83\97ã\83»ã\82¢ã\82¦ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92å\8f¯è\83½ã\81«ã\81\99ã\82\8bã\80\82"
+msgstr "セグメントのロックを解除し、スワップアウトすることを可能にする。"
#. There was some weirdness in 2.6.9: SHM_LOCK and SHM_UNLOCK could
#. be applied to a segment, regardless of ownership of the segment.
#. 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:283
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 "
"を利用することができた。 2.6.10 以降のカーネルでは、非特権プロセスであっても"
"次の条件を満たせば これらの操作を利用することができる。その条件とは、プロセス"
"の実効 UID がそのセグメントの所有者もしくは作成者の UID と一致し、 "
-"(B<SHM_LOCK> ã\81®å ´å\90\88ã\81«ã\81¯) ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\81®å\90\88è¨\88ã\81\8c B<RLIMIT_MEMLOCK> ã\83ªã\82½ã\83¼ã\82¹"
-"上限 (B<setrlimit>(2) 参照) の範囲内に入っていることである。"
+"(B<SHM_LOCK> ã\81®å ´å\90\88ã\81«ã\81¯) ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®å\90\88è¨\88ã\81\8c B<RLIMIT_MEMLOCK> ã\83ªã\82½ã\83¼"
+"ス上限 (B<setrlimit>(2) 参照) の範囲内に入っていることである。"
#. type: Plain text
-#: build/C/man2/shmctl.2:290
+#: build/C/man2/shmctl.2:301
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 "
"the identifier of the shared memory segment whose index was given in "
"I<shmid>. Other operations return 0 on success."
msgstr ""
-"B<IPC_INFO> ã\81¨ B<SHM_INFO> æ\93\8dä½\9cã\81¯ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«é\96¢"
-"する情報を 管理しているカーネルの内部配列の使用中エントリのインデックスの う"
-"ã\81¡æ\9c\80大å\80¤ã\82\92è¿\94ã\81\99 (ã\81\93ã\81®æ\83\85å ±ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±"
-"ã\82\92 å\8f\96å¾\97ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81 B<SHM_STAT> æ\93\8dä½\9cã\82\92ç¹°ã\82\8aè¿\94ã\81\97å®\9fè¡\8cã\81\99ã\82\8bé\9a\9bã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8b)ã\80\82 "
-"B<SHM_STAT> 操作は、成功すると、 I<shmid> で指定されたインデックスを持つ共有"
-"ã\83¡ã\83¢ã\83ªセグメントの識別子を返す。 他の操作は、成功の場合 0 を返す。"
+"B<IPC_INFO> ã\81¨ B<SHM_INFO> æ\93\8dä½\9cã\81¯ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«"
+"関する情報を 管理しているカーネルの内部配列の使用中エントリーのインデックス"
+"ã\81® ã\81\86ã\81¡æ\9c\80大å\80¤ã\82\92è¿\94ã\81\99 (ã\81\93ã\81®æ\83\85å ±ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\99"
+"ã\82\8bæ\83\85å ±ã\82\92 å\8f\96å¾\97ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81 B<SHM_STAT> æ\93\8dä½\9cã\82\92ç¹°ã\82\8aè¿\94ã\81\97å®\9fè¡\8cã\81\99ã\82\8bé\9a\9bã\81«ä½¿ç\94¨ã\81§ã\81\8d"
+"る)。 B<SHM_STAT> 操作は、成功すると、 I<shmid> で指定されたインデックスを持"
+"ã\81¤å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの識別子を返す。 他の操作は、成功の場合 0 を返す。"
#. type: Plain text
-#: build/C/man2/shmctl.2:294
+#: build/C/man2/shmctl.2:305
msgid "On error, -1 is returned, and I<errno> is set appropriately."
msgstr "エラーの場合は -1 を返し、 I<errno> を適切に設定する。"
#. type: Plain text
-#: build/C/man2/shmctl.2:303
+#: build/C/man2/shmctl.2:314
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 "
"ケーパビリティ (capability) を持っていない。"
#. type: Plain text
-#: build/C/man2/shmctl.2:314
+#: build/C/man2/shmctl.2:325
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."
"るアドレスにアクセスできない。"
#. type: TP
-#: build/C/man2/shmctl.2:314
+#: build/C/man2/shmctl.2:325 build/C/man2/shmop.2:194
#, no-wrap
msgid "B<EIDRM>"
msgstr "B<EIDRM>"
#. type: Plain text
-#: build/C/man2/shmctl.2:317
+#: build/C/man2/shmctl.2:328 build/C/man2/shmop.2:197
msgid "I<shmid> points to a removed identifier."
msgstr "I<shmid> が削除 (remove) された識別子 (identifier) を指している。"
#. type: Plain text
-#: build/C/man2/shmctl.2:326
+#: build/C/man2/shmctl.2:337
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 "
"配列のスロットを参照していた。"
#. type: Plain text
-#: build/C/man2/shmctl.2:337
+#: build/C/man2/shmctl.2:348
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 ""
"(2.6.9 以降のカーネルにおいて) B<SHM_LOCK> が指定され、 ロックされる予定のセ"
-"ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\82µã\82¤ã\82º (ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの合計バイト数) が、 呼び"
+"ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\82µã\82¤ã\82º (ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの合計バイト数) が、 呼び"
"出したプロセスの実ユーザー ID についての制限を超えた。 この制限は "
"B<RLIMIT_MEMLOCK> ソフト資源制限で定義される (B<setrlimit>(2) を参照)。"
-#. type: TP
-#: build/C/man2/shmctl.2:337
-#, no-wrap
-msgid "B<EOVERFLOW>"
-msgstr "B<EOVERFLOW>"
-
#. type: Plain text
-#: build/C/man2/shmctl.2:342
+#: build/C/man2/shmctl.2:353
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>."
"には大き過ぎる。"
#. type: Plain text
-#: build/C/man2/shmctl.2:354
+#: build/C/man2/shmctl.2:365
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 "
"特権を持たない (Linux では B<CAP_SYS_ADMIN> ケーパビリティを持たない)。"
#. type: Plain text
-#: build/C/man2/shmctl.2:366
+#: build/C/man2/shmctl.2:377
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:382 build/C/man2/shmget.2:251
+#: build/C/man2/shmop.2:231
msgid "SVr4, POSIX.1-2001."
msgstr "SVr4, POSIX.1-2001."
+#. 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:395 build/C/man2/shmget.2:269
+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 ""
+"Linux や POSIX の全てのバージョンでは、 I<E<lt>sys/types.hE<gt>> と "
+"I<E<lt>sys/ipc.hE<gt>> のインクルードは必要ない。しかしながら、いくつかの古い"
+"実装ではこれらのヘッダーファイルのインクルードが必要であり、 SVID でもこれら"
+"のインクルードをするように記載されている。このような古いシステムへの移植性を"
+"意図したアプリケーションではこれらのファイルをインクルードする必要があるかも"
+"しれない。"
+
+#. type: Plain text
+#: build/C/man2/shmctl.2:407
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 "
-"future these may modified or moved to a /proc file system interface."
+"future, these may modified or moved to a I</proc> filesystem interface."
msgstr ""
"B<IPC_INFO>, B<SHM_STAT>, B<SHM_INFO> 操作は、 B<ipcs>(1) プログラムで割り当"
"て済の資源に関する情報を提供するために 使用されている。将来、これらの操作は変"
-"更されたり、 /proc ファイルシステムのインタフェースに移動されるかもしれない。"
+"更されたり、 I</proc> ファイルシステムのインターフェースに移動されるかもしれ"
+"ない。"
#. type: Plain text
-#: build/C/man2/shmctl.2:390
+#: build/C/man2/shmctl.2:415
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 "
"applications should avoid relying on it."
msgstr ""
"Linux では、 I<shmctl(IPC_RMID)> を使ってすでに削除マークがつけられている共有"
-"ã\83¡ã\83¢ã\83ªã\83»セグメントを あるプロセスが付加 (attach) (B<shmat>(2)) することを許"
+"ã\83¡ã\83¢ã\83ªã\83¼セグメントを あるプロセスが付加 (attach) (B<shmat>(2)) することを許"
"可している。 この機能は他の UNIX の実装では利用できない。 移植性を考慮したア"
"プリケーションではこれに依存しないようにすべきである。"
#. type: Plain text
-#: build/C/man2/shmctl.2:403
+#: build/C/man2/shmctl.2:428
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 "
"古い形式の呼び出しを I<cmd> 内の B<IPC_64> フラグで区別する。"
#. type: Plain text
-#: build/C/man2/shmctl.2:410
+#: build/C/man2/shmctl.2:435
msgid ""
"B<mlock>(2), B<setrlimit>(2), B<shmget>(2), B<shmop>(2), B<capabilities>(7), "
"B<svipc>(7)"
"B<shm_overview>(7), B<svipc>(7)"
#. type: TH
-#: build/C/man2/shmget.2:36
+#: build/C/man2/shmget.2:38
#, no-wrap
msgid "SHMGET"
msgstr "SHMGET"
#. type: TH
-#: build/C/man2/shmget.2:36
+#: build/C/man2/shmget.2:38
#, no-wrap
-msgid "2006-05-02"
-msgstr "2006-05-02"
+msgid "2015-01-10"
+msgstr "2015-01-10"
#. type: Plain text
-#: build/C/man2/shmget.2:39
-msgid "shmget - allocates a shared memory segment"
-msgstr "shmget - 共有メモリ・セグメントを割り当てる"
+#: build/C/man2/shmget.2:41
+msgid "shmget - allocates a System V shared memory segment"
+msgstr "shmget - System V 共有メモリーセグメントを割り当てる"
#. 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 "B<int shmget(key_t >I<key>B<, size_t >I<size>B<, int >I<shmflg>B<);>"
#. 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 "
-"size equal to the value of I<size> rounded up to a multiple of B<PAGE_SIZE>, "
-"is created if I<key> has the value B<IPC_PRIVATE> or I<key> isn't "
-"B<IPC_PRIVATE>, no shared memory segment corresponding to I<key> exists, and "
-"B<IPC_CREAT> is specified in I<shmflg>."
+"B<shmget>() returns the identifier of the System\\ V shared memory segment "
+"associated with the value of the argument I<key>. A new shared memory "
+"segment, with size equal to the value of I<size> rounded up to a multiple of "
+"B<PAGE_SIZE>, is created if I<key> has the value B<IPC_PRIVATE> or I<key> "
+"isn't B<IPC_PRIVATE>, no shared memory segment corresponding to I<key> "
+"exists, and B<IPC_CREAT> is specified in I<shmflg>."
msgstr ""
-"B<shmget>() は I<key> 引き数に対応する共有メモリ・セグメントの識別子を返"
-"す。 I<key> の値が B<IPC_PRIVATE> の場合、もしくは I<key> に対応する共有メモ"
-"リ・セグメントが存在せず、 I<shmflg> に B<IPC_CREAT> が指定されていた場合、 "
-"新しい共有メモリ・セグメントを作成する。 作成される共有メモリ・セグメント"
-"ã\81¯ã\80\81 I<size> å¼\95ã\81\8dæ\95°ã\81®å\80¤ã\82\92 B<PAGE_SIZE> ã\81®å\80\8dæ\95°ã\81¸ã\81¨å\88\87ã\82\8aä¸\8aã\81\92ã\81\9f (round up) 大ã\81\8dã\81\95"
-"となる。"
+"B<shmget>() は I<key> 引き数に対応する System\\ V 共有メモリーセグメントの識"
+"別子を返す。 I<key> の値が B<IPC_PRIVATE> の場合、もしくは I<key> に対応する"
+"共有メモリーセグメントが存在せず、 I<shmflg> に B<IPC_CREAT> が指定されていた"
+"場合、 新しい共有メモリーセグメントを作成する。 作成される共有メモリーセグメ"
+"ã\83³ã\83\88ã\81¯ã\80\81 I<size> å¼\95ã\81\8dæ\95°ã\81®å\80¤ã\82\92 B<PAGE_SIZE> ã\81®å\80\8dæ\95°ã\81¸ã\81¨å\88\87ã\82\8aä¸\8aã\81\92ã\81\9f (round up) 大"
+"ã\81\8dã\81\95ã\81¨ã\81ªã\82\8bã\80\82"
#. 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 "
"| O_EXCL> for B<open>(2).)"
msgstr ""
"I<shmflg> に B<IPC_CREAT> と B<IPC_EXCL> の両方が指定された場合、 I<key> に対"
-"å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが既に存在すると、 B<shmget>() は失敗し、 "
+"å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが既に存在すると、 B<shmget>() は失敗し、 "
"I<errno> に B<EEXIST> が設定される (これは B<open>(2) に B<O_CREAT | "
"O_EXCL> を指定した場合の動作と同じである)。"
#. type: Plain text
-#: build/C/man2/shmget.2:93
+#: build/C/man2/shmget.2:95
msgid "The value I<shmflg> is composed of:"
msgstr "I<shmflg> は以下の内容から構成される:"
#. type: TP
-#: build/C/man2/shmget.2:93
+#: build/C/man2/shmget.2:95
#, no-wrap
msgid "B<IPC_CREAT>"
msgstr "B<IPC_CREAT>"
#. 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 "
+"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 "
"permission to access the segment."
msgstr ""
"新しいセグメントを作成する。このフラグが指定されなかった場合、 B<shmget>() "
-"ã\81¯ I<key> ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92æ\8e¢ã\81\97ã\80\81 ã\83¦ã\83¼ã\82¶ã\81\8cã\81\9dã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8b許"
-"可があるかどうかをチェックする。"
+"ã\81¯ I<key> ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92æ\8e¢ã\81\97ã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\81\9dã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8b"
+"許可があるかどうかをチェックする。"
#. type: TP
-#: build/C/man2/shmget.2:100
+#: build/C/man2/shmget.2:102
#, no-wrap
msgid "B<IPC_EXCL>"
msgstr "B<IPC_EXCL>"
#. type: Plain text
-#: build/C/man2/shmget.2:103
-msgid "used with B<IPC_CREAT> to ensure failure if the segment already exists."
-msgstr ""
-"B<IPC_CREAT> と共に使用し、セグメントが既に存在した場合には 失敗することを保"
-"証する。"
-
-#. type: TP
-#: build/C/man2/shmget.2:103
-#, no-wrap
-msgid "I<mode_flags>"
-msgstr "I<mode_flags>"
-
-#. type: Plain text
-#: build/C/man2/shmget.2:113
+#: build/C/man2/shmget.2:108
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 "
-"the I<mode> argument of B<open>(2). Presently, the execute permissions are "
-"not used by the system."
+"This flag is used with B<IPC_CREAT> to ensure that this call creates the "
+"segment. If the segment already exists, the call fails."
msgstr ""
-"(下位 9 ビット) 所有者、グループ、他人 (world) への許可を指定する。 これらの"
-"ビットは B<open>(2) の I<mode> 引き数と同じ形式で同じ意味を持つ。 今のとこ"
-"ろ、システムは実行 (execute) 許可を参照しない。"
+"このフラグは B<IPC_CREAT> とともに使用し、 この呼び出しで確実にセグメントが作"
+"成されるようにする。 セグメントが既に存在した場合には、 呼び出しは失敗する。"
#. type: TP
-#: build/C/man2/shmget.2:113
+#: build/C/man2/shmget.2:108
#, no-wrap
msgid "B<SHM_HUGETLB> (since Linux 2.6)"
msgstr "B<SHM_HUGETLB> (Linux 2.6 以降)"
#. type: Plain text
-#: build/C/man2/shmget.2:119
+#: build/C/man2/shmget.2:114
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 ""
-"\"ヒュージページ (huge page)\" を使うセグメントを割り当てる。 詳細な情報は、"
-"カーネル・ソースのファイル I<Documentation/vm/hugetlbpage.txt> を参照。"
+"\"ヒュージページ (huge page)\" を使うセグメントを割り当てる。詳細な情報は、"
+"Linux カーネルソースのファイル I<Documentation/vm/hugetlbpage.txt> を参照。"
#. type: TP
-#: build/C/man2/shmget.2:119
+#: build/C/man2/shmget.2:114
#, no-wrap
msgid "B<SHM_NORESERVE> (since Linux 2.6.15)"
msgstr "B<SHM_NORESERVE> (Linux 2.6.15 以降)"
#. 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:133
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, "
"このフラグは、 B<mmap>(2) の B<MAP_NORESERVE> フラグと同じ役割を果たす。 こ"
"のセグメントに対するスワップ空間の予約を行わない。 スワップ空間を予約した場合"
"は、そのセグメントの変更が必ず成功することが 保証される。スワップ空間の予約を"
-"行わなかった場合は、物理メモリに空きが ないと書き込み時に B<SIGSEGV> を受け取"
-"る可能性がある。 B<proc>(5) にある I</proc/sys/vm/overcommit_memory> ファイ"
-"ルに関する議論も参照のこと。"
+"行わなかった場合は、物理メモリーに空きが ないと書き込み時に B<SIGSEGV> を受け"
+"取る可能性がある。 B<proc>(5) にある I</proc/sys/vm/overcommit_memory> ファ"
+"イルに関する議論も参照のこと。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:143
+msgid ""
+"In addition to the above flags, the least significant 9 bits of I<shmflg> "
+"specify the permissions granted to the owner, group, and others. These bits "
+"have the same format, and the same meaning, as the I<mode> argument of "
+"B<open>(2). Presently, execute permissions are not used by the system."
+msgstr ""
+"上記のフラグに加えて、 I<shmflg> の下位 9 ビットは、所有者、グループ、その他"
+"への許可を指定する。 これらのビットは B<open>(2) の I<mode> 引き数と同じ形式"
+"で同じ意味を持つ。 今のところ、システムは実行 (execute) 許可を参照しない。"
#. type: Plain text
-#: build/C/man2/shmget.2:146
+#: build/C/man2/shmget.2:151
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 B<shmctl>"
-"(2)), is initialized as follows:"
+"zero values, and its associated data structure, I<shmid_ds> (see "
+"B<shmctl>(2)), is initialized as follows:"
msgstr ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cæ\96°ã\81\9fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bé\9a\9bã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの内容は "
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cæ\96°ã\81\9fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bé\9a\9bã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの内容は "
"0 で初期化され、 関連情報を保持するデータ構造体 I<shmid_ds> は以下のように初"
"期化される。"
#. type: Plain text
-#: build/C/man2/shmget.2:151
+#: build/C/man2/shmget.2:156
msgid ""
"I<shm_perm.cuid> and I<shm_perm.uid> are set to the effective user ID of the "
"calling process."
"ユーザーID を設定する。"
#. type: Plain text
-#: build/C/man2/shmget.2:156
+#: build/C/man2/shmget.2:161
msgid ""
"I<shm_perm.cgid> and I<shm_perm.gid> are set to the effective group ID of "
"the calling process."
"定する。"
#. type: Plain text
-#: build/C/man2/shmget.2:161
+#: build/C/man2/shmget.2:166
msgid ""
"The least significant 9 bits of I<shm_perm.mode> are set to the least "
"significant 9 bit of I<shmflg>."
"I<shm_perm.mode> の下位 9 ビットに I<shmflg> の下位 9 ビットを設定する。"
#. type: Plain text
-#: build/C/man2/shmget.2:165
+#: build/C/man2/shmget.2:170
msgid "I<shm_segsz> is set to the value of I<size>."
msgstr "I<shm_segsz> に I<size> の値を設定する。"
#. type: Plain text
-#: build/C/man2/shmget.2:172
-msgid "I<shm_lpid>, I<shm_nattch>, I<shm_atime> and I<shm_dtime> are set to 0."
+#: build/C/man2/shmget.2:177
+msgid ""
+"I<shm_lpid>, I<shm_nattch>, I<shm_atime>, and I<shm_dtime> are set to 0."
msgstr ""
"I<shm_lpid>, I<shm_nattch>, I<shm_atime>, I<shm_dtime> に 0 を設定する。"
#. type: Plain text
-#: build/C/man2/shmget.2:175
+#: build/C/man2/shmget.2:180
msgid "I<shm_ctime> is set to the current time."
msgstr "I<shm_ctime> に現在の時刻を設定する。"
#. type: Plain text
-#: build/C/man2/shmget.2:178
+#: build/C/man2/shmget.2:183
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 ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが既に存在する場合、アクセス許可の検査と、 破壊 "
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが既に存在する場合、アクセス許可の検査と、 破壊 "
"(destruction) マークがつけられていないかのチェックが行われる。"
#. type: Plain text
-#: build/C/man2/shmget.2:182
+#: build/C/man2/shmget.2:188
msgid ""
-"A valid segment identifier, I<shmid>, is returned on success, -1 on error."
+"On success, a valid shared memory identifier is returned. On error, -1 is "
+"returned, and I<errno> is set to indicate the error."
msgstr ""
-"æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81æ\9c\89å\8a¹ã\81ªã\82»ã\82°ã\83¡ã\83³ã\83\88è\98å\88¥å\90 I<shmid> ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 -1 "
-"が返される。"
+"æ\88\90å\8a\9fã\81®å ´å\90\88ã\80\81æ\9c\89å\8a¹ã\81ªå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®è\98å\88¥å\90ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 "
+"-1 が返り、 I<errno> にエラーを示す値が設定される。"
#. type: Plain text
-#: build/C/man2/shmget.2:186
+#: build/C/man2/shmget.2:192
msgid "On failure, I<errno> is set to one of the following:"
msgstr "失敗した場合は I<errno> が以下のどれかに設定される:"
#. type: Plain text
-#: build/C/man2/shmget.2:192
+#: build/C/man2/shmget.2:198
msgid ""
"The user does not have permission to access the shared memory segment, and "
"does not have the B<CAP_IPC_OWNER> capability."
msgstr ""
-"ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントへのアクセス許可を持たず、 "
+"ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントへのアクセス許可を持たず、 "
"B<CAP_IPC_OWNER> ケーパビリティも持っていない。"
#. type: Plain text
-#: build/C/man2/shmget.2:196
-msgid "B<IPC_CREAT | IPC_EXCL> was specified and the segment exists."
+#: build/C/man2/shmget.2:207
+msgid ""
+"B<IPC_CREAT> and B<IPC_EXCL> were specified in I<shmflg>, but a shared "
+"memory segment already exists for I<key>."
+msgstr ""
+"B<IPC_CREAT> と B<IPC_EXCL> が I<shmflg> に指定されたが、 I<key> に対応する共"
+"有メモリーセグメントはすでに存在する。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:215
+msgid ""
+"A new segment was to be created and I<size> is less than B<SHMMIN> or "
+"greater than B<SHMMAX>."
msgstr ""
-"B<IPC_CREAT | IPC_EXCL> が指定されていたが、そのセグメントが既に存在する。"
+"新しいセグメントを作成しようとしたが、 I<size> が B<SHMMIN> より小さいか "
+"B<SHMMAX> よりも大きかった。"
#. type: Plain text
-#: build/C/man2/shmget.2:202
+#: build/C/man2/shmget.2:221
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 "
-"existed, but I<size> is greater than the size of that segment."
+"A segment for the given I<key> exists, but I<size> is greater than the size "
+"of that segment."
msgstr ""
-"新しいセグメントを作成しようとした際に I<size> E<lt> B<SHMMIN> または "
-"I<size> E<gt> B<SHMMAX> であった。 もしくは、指定されたキーに対応するセグメン"
-"トが既に存在して、新しい セグメントを作成しようとはしなかったが、I<size> が存"
-"在するセグメントの サイズよりも大きかった。"
+"指定された I<key> に対応するセグメントが既に存在するが、 I<size> がそのセグメ"
+"ントのサイズよりも大きかった。"
#. type: Plain text
-#: build/C/man2/shmget.2:211
+#: build/C/man2/shmget.2:230
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:233
msgid "No memory could be allocated for segment overhead."
-msgstr "セグメントの管理情報 (overhead) に割り当てるメモリがなかった。"
+msgstr "ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ç®¡ç\90\86æ\83\85å ± (overhead) ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82"
#. type: Plain text
-#: build/C/man2/shmget.2:222
+#: build/C/man2/shmget.2:241
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 system-"
"wide limit on shared memory (B<SHMALL>)."
msgstr ""
-"ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント数の制限 (B<SHMMNI>) に達した、または要"
-"æ±\82ã\81\95ã\82\8cã\81\9f I<size> ã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81\8c ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\81®å\88¶"
-"限 (B<SHMALL>) を超過した。"
+"ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント数の制限 (B<SHMMNI>) に達した、または要"
+"æ±\82ã\81\95ã\82\8cã\81\9f I<size> ã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81\8c ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82ºã\81®"
+"制限 (B<SHMALL>) を超過した。"
#. type: Plain text
-#: build/C/man2/shmget.2:229
+#: build/C/man2/shmget.2:248
msgid ""
"The B<SHM_HUGETLB> flag was specified, but the caller was not privileged "
"(did not have the B<CAP_IPC_LOCK> capability)."
"(B<CAP_IPC_LOCK> ケーパビリティを持っていなかった)。"
#. type: Plain text
-#: build/C/man2/shmget.2:235
-msgid "B<SHM_HUGETLB> is a nonportable Linux extension."
-msgstr "B<SHM_HUGETLB> ã\81¯ Linux ã\81§ã\81®æ\8b¡å¼µã\81§ã\81\82ã\82\8aã\80\81移æ¤\8dæ\80§ã\81¯ã\81ªã\81\84。"
+#: build/C/man2/shmget.2:256
+msgid "B<SHM_HUGETLB> and B<SHM_NORESERVE> are Linux extensions."
+msgstr "B<SHM_HUGETLB> ã\81¨ B<SHM_NORESERVE> ã\81¯ Linux ã\81§ã\81®æ\8b¡å¼µã\81§ã\81\82ã\82\8b。"
#. type: Plain text
-#: build/C/man2/shmget.2:245
+#: build/C/man2/shmget.2:280
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 "
-"significant 9 bits of I<shmflg> and creates a new shared memory segment (on "
-"success)."
+"value is used for I<key>, the system call ignores all but the least "
+"significant 9 bits of I<shmflg> and creates a new shared memory segment."
msgstr ""
"B<IPC_PRIVATE> はフラグではなく I<key_t> 型である。 この特別な値が I<key> に"
"使用された場合は、 B<shmget>() は I<shmflg> の下位 9 ビットを除いた全てを無"
-"視し、 (成功すれば) 新しい共有メモリ・セグメントを作成する。"
+"視し、 新しい共有メモリーセグメントを作成する。"
+
+#. type: SS
+#: build/C/man2/shmget.2:280
+#, no-wrap
+msgid "Shared memory limits"
+msgstr "共有メモリーの上限"
#. type: Plain text
-#: build/C/man2/shmget.2:249
+#: build/C/man2/shmget.2:284
msgid ""
-"The following limits on shared memory segment resources affect the B<shmget>"
-"() call:"
+"The following limits on shared memory segment resources affect the "
+"B<shmget>() call:"
msgstr ""
-"B<shmget>() ã\82³ã\83¼ã\83«ã\81«å½±é\9f¿ã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント資源の制限は以下の通りであ"
+"B<shmget>() ã\82³ã\83¼ã\83«ã\81«å½±é\9f¿ã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント資源の制限は以下の通りであ"
"る:"
#. type: TP
-#: build/C/man2/shmget.2:249
+#: build/C/man2/shmget.2:284
#, no-wrap
msgid "B<SHMALL>"
msgstr "B<SHMALL>"
#. type: Plain text
-#: build/C/man2/shmget.2:254
+#: build/C/man2/shmget.2:288
+msgid ""
+"System-wide limit on the total amount of shared memory, measured in units of "
+"the system page size."
+msgstr ""
+"共有メモリーの全使用量のシステム全体での上限値。 システムページサイズが単位で"
+"ある。"
+
+#. commit 060028bac94bf60a65415d1d55a359c3a17d5c31
+#. type: Plain text
+#: build/C/man2/shmget.2:294
msgid ""
-"System wide maximum of shared memory pages (on Linux, this limit can be read "
-"and modified via I</proc/sys/kernel/shmall>)."
+"On Linux, this limit can be read and modified via I</proc/sys/kernel/"
+"shmall>. Since Linux 3.16, the default value for this limit is:"
msgstr ""
-"システム全体の共有メモリ・ページの最大数 (Linux では、この上限値は I</proc/"
-"sys/kernel/shmall> 経由で参照したり、変更したりできる)。"
+"Linux では、この上限値は I</proc/sys/kernel/shmall> 経由で参照したり、変更し"
+"たりできる。 Linux 3.16 以降では、 この上限値のデフォルト値は以下のとおりであ"
+"る。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:296 build/C/man2/shmget.2:331
+#, no-wrap
+msgid " ULONG_MAX - 2^24\n"
+msgstr " ULONG_MAX - 2^24\n"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:307
+msgid ""
+"The effect of this value (which is suitable for both 32-bit and 64-bit "
+"systems) is to impose no limitation on allocations. This value, rather "
+"than B<ULONG_MAX>, was chosen as the default to prevent some cases where "
+"historical applications simply raised the existing limit without first "
+"checking its current value. Such applications would cause the value to "
+"overflow if the limit was set at B<ULONG_MAX>."
+msgstr ""
+"この値は割り当てに関する上限としては適用されない (なお、この値は 32 ビットシ"
+"ステムにも 64 ビットシステムにも適したものになっている)。 B<ULONG_MAX> ではな"
+"く、この値が選ばれたのは、 古いアプリケーションが最初に現在の値を確認せずに既"
+"存の上限をそのまま増やしてしまっても問題が起こらないようなデフォルト値を選ん"
+"だからである。 このようなアプリケーションでは、 上限を B<ULONG_MAX> に設定す"
+"ると値がオーバーフローしてしまうことになる。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:310
+msgid "From Linux 2.4 up to Linux 3.15, the default value for this limit was:"
+msgstr "Linux 2.4 から Linux 3.15 では、この上限のデフォルト値は以下であった。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:312
+#, no-wrap
+msgid " SHMMAX / PAGE_SIZE * (SHMMNI / 16)\n"
+msgstr " SHMMAX / PAGE_SIZE * (SHMMNI / 16)\n"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:320
+msgid ""
+"If B<SHMMAX> and B<SHMMNI> were not modified, then multiplying the result of "
+"this formula by the page size (to get a value in bytes) yielded a value of 8 "
+"GB as the limit on the total memory used by all shared memory segments."
+msgstr ""
+"B<SHMMAX> と B<SHMMNI> が変更されないとすると、 この式の結果に (バイト単位の"
+"値を得るために) ページサイズを掛け算すると、 全ての共有メモリーセグメントで使"
+"用される全メモリーの上限として、 8 GB という値が得られる。"
#. type: TP
-#: build/C/man2/shmget.2:254
+#: build/C/man2/shmget.2:320
#, no-wrap
msgid "B<SHMMAX>"
msgstr "B<SHMMAX>"
#. type: Plain text
-#: build/C/man2/shmget.2:259
+#: build/C/man2/shmget.2:323
+msgid "Maximum size in bytes for a shared memory segment."
+msgstr "1 つの共有メモリーセグメントの最大サイズ (バイト数)。"
+
+#. commit 060028bac94bf60a65415d1d55a359c3a17d5c31
+#. type: Plain text
+#: build/C/man2/shmget.2:329
+msgid ""
+"On Linux, this limit can be read and modified via I</proc/sys/kernel/"
+"shmmax>. Since Linux 3.16, the default value for this limit is:"
+msgstr ""
+"Linux では、この上限値は I</proc/sys/kernel/shmmax> 経由で参照したり、変更し"
+"たりできる。 Linux 3.16 以降では、 この上限値のデフォルト値は以下のとおりであ"
+"る。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:340
+msgid ""
+"The effect of this value (which is suitable for both 32-bit and 64-bit "
+"systems) is to impose no limitation on allocations. See the description of "
+"B<SHMALL> for a discussion of why this default value (rather than "
+"B<ULONG_MAX>) is used."
+msgstr ""
+"この値は割り当てに関する上限としては適用されない (なお、この値は 32 ビットシ"
+"ステムにも 64 ビットシステムにも適したものになっている)。 (B<ULONG_MAX> では"
+"なく) このデフォルト値が使われている理由については B<SHMALL> の説明を参照。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:343
+msgid ""
+"From Linux 2.2 up to Linux 3.15, the default value of this limit was "
+"0x2000000 (32MB)."
+msgstr ""
+"Linux 2.2 から Linux 3.15 までは、この上限値のデフォルト値は 0x2000000 "
+"(32MB) であった。"
+
+#. type: Plain text
+#: build/C/man2/shmget.2:349
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>)."
+"Because it is not possible to map just part of a shared memory segment, the "
+"amount of virtual memory places another limit on the maximum size of a "
+"usable segment: for example, on i386 the largest segments that can be mapped "
+"have a size of around 2.8 GB, and on x86_64 the limit is around 127 TB."
msgstr ""
-"共有メモリ・セグメントのバイト単位の大きさの上限: 方針依存 (Linux では、この"
-"上限値は I</proc/sys/kernel/shmmax> 経由で参照したり、変更したりできる)。"
+"共有メモリーセグメントの一部分だけをマッピングすることはできないので、 使用可"
+"能なセグメントの最大サイズには仮想メモリーの総量という別の上限が適用される。 "
+"例えば、i386 ではマッピング可能な最大セグメントの大きさはおおよそ 2.8GB で、 "
+"x86_64 では上限はおおよそ 127TB である。"
#. type: TP
-#: build/C/man2/shmget.2:259
+#: build/C/man2/shmget.2:349
#, no-wrap
msgid "B<SHMMIN>"
msgstr "B<SHMMIN>"
#. type: Plain text
-#: build/C/man2/shmget.2:265
+#: build/C/man2/shmget.2:355
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 ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントのバイト単位の大きさの下限: 実装依存 (現在は 1 バイトだ"
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントのバイト単位の大きさの下限: 実装依存 (現在は 1 バイトだ"
"が、実質的な最小サイズは B<PAGE_SIZE> である)。"
#. type: TP
-#: build/C/man2/shmget.2:265
+#: build/C/man2/shmget.2:355
#, no-wrap
msgid "B<SHMMNI>"
msgstr "B<SHMMNI>"
+#. type: Plain text
+#: build/C/man2/shmget.2:360
+msgid ""
+"System-wide limit on the number of shared memory segments. In Linux 2.2, "
+"the default value for this limit was 128; since Linux 2.4, the default value "
+"is 4096."
+msgstr ""
+"システム全体の共有メモリーセグメント数の上限値。 この上限値のデフォルトは、 "
+"Linux 2.2 以降では 128、 Linux 2.4 以降で 4096 である。"
+
#. Kernels between 2.4.x and 2.6.8 had an off-by-one error that meant
#. 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:366
msgid ""
-"System wide maximum number of shared memory segments: implementation "
-"dependent (currently 4096, was 128 before Linux 2.3.99; on Linux, this limit "
-"can be read and modified via I</proc/sys/kernel/shmmni>)."
+"On Linux, this limit can be read and modified via I</proc/sys/kernel/shmmni>."
msgstr ""
-"システム全体の共有メモリーの数の上限: 実装依存 (現在は 4096。Linux 2.3.99 よ"
-"り前では 128。 Linux では、この上限値は I</proc/sys/kernel/shmmni> 経由で参照"
-"したり、変更したりできる)。"
+"Linux では、この上限値は I</proc/sys/kernel/shmmni> 経由で参照したり、変更し"
+"たりできる。"
#. type: Plain text
-#: build/C/man2/shmget.2:278
+#: build/C/man2/shmget.2:370
msgid ""
"The implementation has no specific limits for the per-process maximum number "
"of shared memory segments (B<SHMSEG>)."
msgstr ""
-"ã\83\97ã\83ã\82»ã\82¹å½\93ã\82\8aã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの個数の最大値 (B<SHMSEG>) に関する実装"
+"ã\83\97ã\83ã\82»ã\82¹å½\93ã\82\8aã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの個数の最大値 (B<SHMSEG>) に関する実装"
"上の制限はない。"
#. type: Plain text
-#: build/C/man2/shmget.2:284
+#: build/C/man2/shmget.2:376
msgid ""
-"Until version 2.3.30 Linux would return B<EIDRM> for a B<shmget>() on a "
+"Until version 2.3.30, Linux would return B<EIDRM> for a B<shmget>() on a "
"shared memory segment scheduled for deletion."
msgstr ""
-"ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.3.30 ã\81¾ã\81§ã\81¯ã\80\81Linux ã\81¯ å\89\8aé\99¤ã\81\8cäº\88å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント"
+"ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.3.30 ã\81¾ã\81§ã\81¯ã\80\81Linux ã\81¯ å\89\8aé\99¤ã\81\8cäº\88å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント"
"に対して B<shmget>() が行われると B<EIDRM> を返していた。"
#. type: Plain text
-#: build/C/man2/shmget.2:290
+#: build/C/man2/shmget.2:382
msgid ""
"The name choice B<IPC_PRIVATE> was perhaps unfortunate, B<IPC_NEW> would "
"more clearly show its function."
"より明確にその機能を表しているだろう。"
#. type: Plain text
-#: build/C/man2/shmget.2:298
+#: build/C/man2/shmget.2:391
msgid ""
-"B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<ftok>(3), B<capabilities>(7), "
-"B<shm_overview>(7), B<svipc>(7)"
+"B<memfd_create>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<ftok>(3), "
+"B<capabilities>(7), B<shm_overview>(7), B<svipc>(7)"
msgstr ""
-"B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<ftok>(3), B<capabilities>(7), "
-"B<shm_overview>(7), B<svipc>(7)"
+"B<memfd_create>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<ftok>(3), "
+"B<capabilities>(7), B<shm_overview>(7), B<svipc>(7)"
#. type: TH
-#: build/C/man2/shmop.2:39
+#: build/C/man2/shmop.2:41
#, no-wrap
msgid "SHMOP"
msgstr "SHMOP"
-#. type: TH
-#: build/C/man2/shmop.2:39
-#, no-wrap
-msgid "2008-06-03"
-msgstr "2008-06-03"
-
#. type: Plain text
-#: build/C/man2/shmop.2:42
-msgid "shmat, shmdt - shared memory operations"
-msgstr "shmat, shmdt - 共有メモリ (shared memory) の操作"
+#: build/C/man2/shmop.2:44
+msgid "shmat, shmdt - System V shared memory operations"
+msgstr "shmat, shmdt - System V 共有メモリー (shared memory) の操作"
#. 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"
"B<#include E<lt>sys/shm.hE<gt>>\n"
#. 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 >I<shmflg>B<);>\n"
msgstr "B<void *shmat(int >I<shmid>B<, const void *>I<shmaddr>B<, int >I<shmflg>B<);>\n"
#. 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 "B<int shmdt(const void *>I<shmaddr>B<);>\n"
+#. type: SS
+#: build/C/man2/shmop.2:54
+#, no-wrap
+msgid "shmat()"
+msgstr "shmat()"
+
#. type: Plain text
-#: build/C/man2/shmop.2:59
+#: build/C/man2/shmop.2:62
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 "
-"I<shmaddr> with one of the following criteria:"
+"B<shmat>() attaches the System\\ V shared memory segment identified by "
+"I<shmid> to the address space of the calling process. The attaching address "
+"is specified by I<shmaddr> with one of the following criteria:"
msgstr ""
-"B<shmat>() は I<shmid> で指定された共有メモリ・セグメント (shared memory "
-"segment) を コールしたプロセスのアドレス空間に付加 (attach) する。 付加するア"
-"ドレスは I<shmaddr> に以下のどれかの形式で指定する:"
+"B<shmat>() は I<shmid> で指定された System\\ V 共有メモリーセグメント "
+"(shared memory segment) を コールしたプロセスのアドレス空間に付加 (attach) す"
+"ã\82\8bã\80\82 ä»\98å\8a ã\81\99ã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ I<shmaddr> ã\81«ä»¥ä¸\8bã\81®ã\81©ã\82\8cã\81\8bã\81®å½¢å¼\8fã\81§æ\8c\87å®\9aã\81\99ã\82\8b:"
#. type: Plain text
-#: build/C/man2/shmop.2:65
+#: build/C/man2/shmop.2:68
msgid ""
"If I<shmaddr> is NULL, the system chooses a suitable (unused) address at "
"which to attach the segment."
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 "
-"multiple of B<SHMLBA>. Otherwise I<shmaddr> must be a page-aligned address "
-"at which the attach occurs."
+"multiple of B<SHMLBA>."
msgstr ""
"I<shmaddr> が NULL でなく B<SHM_RND> が I<shmflg> に指定されている場合は、 "
"I<shmaddr> を B<SHMLBA> の倍数へと切り捨てた (rounding down) のと等しいアドレ"
-"スへ付加する。 その他の場合は I<shmaddr> は付加を行なうアドレスで、ページ境界"
-"を指している必要がある。"
+"スへ付加する。"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:84
+msgid ""
+"Otherwise, I<shmaddr> must be a page-aligned address at which the attach "
+"occurs."
+msgstr ""
+"その他の場合は I<shmaddr> は付加を行なうアドレスで、ページ境界を指している必"
+"要がある。"
#. type: Plain text
#: build/C/man2/shmop.2:90
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. "
-"Otherwise the segment is attached for read and write and the process must "
-"have read and write permission for the segment. There is no notion of a "
-"write-only shared memory segment."
+"In addition to B<SHM_RND>, the following flags may be specified in the "
+"I<shmflg> bit-mask argument:"
+msgstr ""
+"B<SHM_RND> に加えて、以下のフラグを I<shmflg> ビットマスク引き数に指定でき"
+"る。"
+
+#. type: TP
+#: build/C/man2/shmop.2:90
+#, no-wrap
+msgid "B<SHM_EXEC> (Linux-specific; since Linux 2.6.9)"
+msgstr "B<SHM_EXEC> (Linux 固有; Linux 2.6.9 以降)"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:94
+msgid ""
+"Allow the contents of the segment to be executed. The caller must have "
+"execute permission on the segment."
+msgstr ""
+"セグメントの内容を実行できる。 呼び出し元はセグメントに対する実行許可を持って"
+"いなければならない。"
+
+#. type: TP
+#: build/C/man2/shmop.2:94
+#, no-wrap
+msgid "B<SHM_RDONLY>"
+msgstr "B<SHM_RDONLY>"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:102
+msgid ""
+"Attach the segment for read-only access. The process must have read "
+"permission for the segment. If this flag is not specified, the segment is "
+"attached for read and write access, and the process must have read and write "
+"permission for the segment. There is no notion of a write-only shared "
+"memory segment."
msgstr ""
-"B<SHM_RDONLY> が I<shmflg> に指定されていた場合は、 セグメントは読み込み専用"
-"に付加され、プロセスはそのセグメントへの 読み込み許可を持たなければならな"
-"い。 そうでなければそのセグメントは読み込みと書き込みのために付加され、 プロ"
-"セスはそのセグメントに読み込みと書き込みの許可を持つ必要がある。 書き込み専用"
-"の共有メモリ・セグメントという概念は存在しない。"
+"セグメントを読み込み専用に付加する。 プロセスはそのセグメントへの読み込み許可"
+"を持っていなければならない。 このフラグが指定されなかった場合、そのセグメント"
+"は読み込みと書き込みアクセスのために付加され、 プロセスはそのセグメントに読み"
+"込みと書き込みの許可を持っていなければならない。 書き込み専用の共有メモリーセ"
+"グメントという概念は存在しない。"
+
+#. type: TP
+#: build/C/man2/shmop.2:102
+#, no-wrap
+msgid "B<SHM_REMAP> (Linux-specific)"
+msgstr "B<SHM_REMAP> (Linux 固有)"
#. type: Plain text
-#: build/C/man2/shmop.2:105
+#: build/C/man2/shmop.2:115
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 "
-"in the range starting at I<shmaddr> and continuing for the size of the "
-"segment. (Normally an B<EINVAL> error would result if a mapping already "
-"exists in this address range.) In this case, I<shmaddr> must not be NULL."
+"This flag specifies that the mapping of the segment should replace any "
+"existing mapping in the range starting at I<shmaddr> and continuing for the "
+"size of the segment. (Normally, an B<EINVAL> error would result if a "
+"mapping already exists in this address range.) In this case, I<shmaddr> "
+"must not be NULL."
msgstr ""
-"(Linux 特有の) B<SHM_REMAP> フラグが I<shmflg> に指定された場合は、 セグメン"
-"トのマッピングを既存のマッピングに置き換える。 マッピングの範囲は、 "
-"I<shmaddr> から始まりセグメントのサイズ分だけある (通常 B<EINVAL> エラーは、"
-"このアドレス範囲にマッピングが既に存在するために起る)。 このフラグを指定する"
-"場合は、 I<shmaddr> が NULL であってはならない。"
+"このフラグは、 セグメントのマッピングを既存のマッピングに置き換えることを指示"
+"する。 マッピングの範囲は、 I<shmaddr> から始まりセグメントのサイズ分だけあ"
+"る (通常 B<EINVAL> エラーは、このアドレス範囲にマッピングが既に存在するために"
+"起る)。 このフラグを指定する場合は、 I<shmaddr> が NULL であってはならない。"
#. type: Plain text
-#: build/C/man2/shmop.2:112
+#: build/C/man2/shmop.2:122
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 "
"複数回付加することもできる。"
#. type: Plain text
-#: build/C/man2/shmop.2:120
+#: build/C/man2/shmop.2:130
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 "
"follows:"
msgstr ""
-"æ\88\90å\8a\9fã\81\97ã\81\9f B<shmat>() ã\82³ã\83¼ã\83«ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに関連する I<shmid_ds> 構"
+"æ\88\90å\8a\9fã\81\97ã\81\9f B<shmat>() ã\82³ã\83¼ã\83«ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関連する I<shmid_ds> 構"
"造体 (B<shmctl>(2) を参照) のメンバーを以下のように更新する:"
#. type: Plain text
-#: build/C/man2/shmop.2:123
+#: build/C/man2/shmop.2:133
msgid "I<shm_atime> is set to the current time."
msgstr "I<shm_atime> には現在の時刻を設定する。"
#. type: Plain text
-#: build/C/man2/shmop.2:126 build/C/man2/shmop.2:152
+#: build/C/man2/shmop.2:136 build/C/man2/shmop.2:163
msgid "I<shm_lpid> is set to the process-ID of the calling process."
msgstr "I<shm_lpid> には呼び出したプロセスのプロセス ID が設定される。"
#. type: Plain text
-#: build/C/man2/shmop.2:129
+#: build/C/man2/shmop.2:140
msgid "I<shm_nattch> is incremented by one."
msgstr "I<shm_nattch> を 1 増加させる。"
-#. type: Plain text
+#. type: SS
#: build/C/man2/shmop.2:140
+#, no-wrap
+msgid "shmdt()"
+msgstr "shmdt()"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:151
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 "
"the value returned by the attaching B<shmat>() call."
msgstr ""
"B<shmdt>() は呼び出したプロセスのアドレス空間から I<shmaddr> で指定されたア"
-"ã\83\89ã\83¬ã\82¹ã\81«é\85\8dç½®ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントを分離 (detach) する。 分離する共有メ"
-"ã\83¢ã\83ªã\83»セグメントは、現在 I<shmaddr> に付加されているものでなければならない。 "
+"ã\83\89ã\83¬ã\82¹ã\81«é\85\8dç½®ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを分離 (detach) する。 分離する共有メ"
+"ã\83¢ã\83ªã\83¼セグメントは、現在 I<shmaddr> に付加されているものでなければならない。 "
"I<shmaddr> は、それを付加した時に B<shmat>() が返した値に等しくなければなら"
"ない。"
#. type: Plain text
-#: build/C/man2/shmop.2:146
+#: build/C/man2/shmop.2:157
msgid ""
-"On a successful B<shmdt>() call the system updates the members of the "
+"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 ""
-"æ\88\90å\8a\9fã\81\97ã\81\9f B<shmdt>() ã\82³ã\83¼ã\83«ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに関連する "
+"æ\88\90å\8a\9fã\81\97ã\81\9f B<shmdt>() ã\82³ã\83¼ã\83«ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関連する "
"I<shmid_ds> 構造体のメンバーを以下のように更新する:"
#. type: Plain text
-#: build/C/man2/shmop.2:149
-msgid "I<shm_dtime> is set to the current time."
-msgstr "I<shm_dtime> には現在の時刻が設定される。"
-
-#. type: Plain text
-#: build/C/man2/shmop.2:157
-msgid ""
-"I<shm_nattch> is decremented by one. If it becomes 0 and the segment is "
-"marked for deletion, the segment is deleted."
-msgstr ""
-"I<shm_nattch> を 1 減少させる。 もし 0 になり、削除マークがあった場合は その"
-"セグメントは削除される。"
-
-#. type: Plain text
-#: build/C/man2/shmop.2:161
-msgid ""
-"After a B<fork>(2) the child inherits the attached shared memory segments."
-msgstr ""
-"B<fork>(2) した後、子プロセスは付加された共有メモリ・セグメントを継承する。"
-
-#. type: Plain text
-#: build/C/man2/shmop.2:165
-msgid ""
-"After an B<execve>(2) all attached shared memory segments are detached from "
-"the process."
-msgstr ""
-"B<exec>(2) した後、全ての付加された共有メモリ・セグメントはプロセスから分離"
-"される。"
+#: build/C/man2/shmop.2:160
+msgid "I<shm_dtime> is set to the current time."
+msgstr "I<shm_dtime> には現在の時刻が設定される。"
#. type: Plain text
-#: build/C/man2/shmop.2:169
+#: build/C/man2/shmop.2:168
msgid ""
-"Upon B<_exit>(2) all attached shared memory segments are detached from the "
-"process."
+"I<shm_nattch> is decremented by one. If it becomes 0 and the segment is "
+"marked for deletion, the segment is deleted."
msgstr ""
-"B<exit>(2) において、全ての付加された共有メモリ・セグメントはプロセスから分"
-"離される。"
+"I<shm_nattch> を 1 減少させる。 もし 0 になり、削除マークがあった場合は その"
+"セグメントは削除される。"
#. type: Plain text
-#: build/C/man2/shmop.2:177
+#: build/C/man2/shmop.2:176
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 "
+"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 "
"indicate the cause of the error."
msgstr ""
-"B<shmat>() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントのアドレスを返"
+"B<shmat>() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントのアドレスを返"
"す。 エラーの場合、 I<(void\\ *)\\ -1> を返し、 I<errno> にエラーの原因を示す"
"値を設定する。"
#. type: Plain text
-#: build/C/man2/shmop.2:183
+#: build/C/man2/shmop.2:182
msgid ""
-"On success B<shmdt>() returns 0; on error -1 is returned, and I<errno> is "
+"On success, B<shmdt>() returns 0; on error -1 is returned, and I<errno> is "
"set to indicate the cause of the error."
msgstr ""
"B<shmdt>() は、成功すると 0 を返す。 エラーの場合、-1 を返し、 I<errno> にエ"
"ラーの原因を示す値を設定する。"
#. type: Plain text
-#: build/C/man2/shmop.2:189
+#: build/C/man2/shmop.2:188
msgid "When B<shmat>() fails, I<errno> is set to one of the following:"
msgstr ""
"B<shmat>() が失敗した場合、 I<errno> に以下の値のどれかを設定して返す:"
#. type: Plain text
-#: build/C/man2/shmop.2:195
+#: build/C/man2/shmop.2:194
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."
"B<CAP_IPC_OWNER> ケーパビリティ (capability) がない。"
#. type: Plain text
-#: build/C/man2/shmop.2:209
+#: build/C/man2/shmop.2:211
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 "
"れているが、 I<shmaddr> が NULL であった。"
#. type: Plain text
-#: build/C/man2/shmop.2:212
+#: build/C/man2/shmop.2:214
msgid "Could not allocate memory for the descriptor or for the page tables."
msgstr ""
-"ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ (descriptor) ã\82\84ã\83\9aã\83¼ã\82¸ã\83»ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªを 割り当てるこ"
+"ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ (descriptor) ã\82\84ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼を 割り当てるこ"
"とができない。"
#. type: Plain text
-#: build/C/man2/shmop.2:218
+#: build/C/man2/shmop.2:220
msgid "When B<shmdt>() fails, I<errno> is set as follows:"
msgstr "B<shmdt>() が失敗した場合、 B<EINVAL> は以下のようにセットされる:"
#. The following since 2.6.17-rc1:
#. type: Plain text
-#: build/C/man2/shmop.2:226
+#: build/C/man2/shmop.2:228
msgid ""
"There is no shared memory segment attached at I<shmaddr>; or, I<shmaddr> is "
"not aligned on a page boundary."
msgstr ""
-"I<shmaddr> ã\81«ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが存在しない。 もしくは、 "
+"I<shmaddr> ã\81«ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが存在しない。 もしくは、 "
"I<shmaddr> がページ境界に合っていない。"
#. type: Plain text
-#: build/C/man2/shmop.2:245
+#: build/C/man2/shmop.2:243
+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 "
+"B<shmat>() from I<char\\ *> into I<void\\ *>."
+msgstr ""
+"SVID 3 で (たぶんそれより前だと思うが) I<shmaddr> 引き数の型は I<char\\ *> "
+"から I<const void\\ *> に、I<shmat>() の返り値の型は I<char\\ *> から I<void"
+"\\ *> に変更された。"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:248
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 "
-"B<shmat>() from I<char *> into I<void *>. (Linux libc4 and libc5 have the "
-"I<char *> prototypes; glibc2 has I<void *>.)"
+"After a B<fork>(2), the child inherits the attached shared memory segments."
msgstr ""
-"SVID 3 で (たぶんそれより前だと思うが) I<shmaddr> 引き数の型は I<char *> か"
-"ら I<const void *> に、I<shmat>() の返り値の型は I<char *> から I<void *> に"
-"変更された (Linux では libc4 と libc5 のプロトタイプは I<char *> であり、"
-"glibc2 のプロトタイプは I<void *> である)。"
+"B<fork>(2) した後、子プロセスは付加された共有メモリーセグメントを継承する。"
#. type: Plain text
-#: build/C/man2/shmop.2:257
+#: build/C/man2/shmop.2:252
+msgid ""
+"After an B<execve>(2), all attached shared memory segments are detached from "
+"the process."
+msgstr ""
+"B<exec>(2) した後、全ての付加された共有メモリーセグメントはプロセスから分離"
+"される。"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:256
+msgid ""
+"Upon B<_exit>(2), all attached shared memory segments are detached from the "
+"process."
+msgstr ""
+"B<exit>(2) において、全ての付加された共有メモリーセグメントはプロセスから分"
+"離される。"
+
+#. type: Plain text
+#: build/C/man2/shmop.2:268
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 "
"memory must be made relative (typically to the starting address of the "
"segment), rather than absolute."
msgstr ""
-"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä»\98å\8a ã\81\99ã\82\8bå ´å\90\88ã\81®ç§»æ¤\8dæ\80§ã\81®é«\98ã\81\84æ\96¹æ³\95ã\81¨ã\81\97ã\81¦ã\81¯ã\80\81 I<shmaddr> ã\82\92 "
-"NULL にして B<shmat>() を使用するのがよい。 このような方法で付加される共有メ"
-"モリセグメントは、 プロセスが異なれば別のアドレスに付加される、という点に注意"
-"ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\82\88ã\81£ã\81¦å\85±æ\9c\89ã\83¡ã\83¢ã\83ªå\86\85ã\81§ç®¡ç\90\86ã\81\95ã\82\8cã\82\8bã\83\9dã\82¤ã\83³ã\82¿ã\81¯ã\80\81 絶対ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81¯ã\81ªã\81\8fã\80\81 "
-"(一般的にはセグメントの開始アドレスからの) 相対アドレスで作成するべきであ"
-"る。"
+"å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä»\98å\8a ã\81\99ã\82\8bå ´å\90\88ã\81®ç§»æ¤\8dæ\80§ã\81®é«\98ã\81\84æ\96¹æ³\95ã\81¨ã\81\97ã\81¦ã\81¯ã\80\81 I<shmaddr> "
+"を NULL にして B<shmat>() を使用するのがよい。 このような方法で付加される共"
+"有メモリーセグメントは、 プロセスが異なれば別のアドレスに付加される、という点"
+"ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\82\88ã\81£ã\81¦å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼å\86\85ã\81§ç®¡ç\90\86ã\81\95ã\82\8cã\82\8bã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81 絶対ã\82¢ã\83\89ã\83¬ã\82¹"
+"ではなく、 (一般的にはセグメントの開始アドレスからの) 相対アドレスで作成する"
+"ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/shmop.2:262
+#: build/C/man2/shmop.2:273
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 "
"behavior and many other implementations do not support it."
msgstr ""
-"Linux ã\81§ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«æ\97¢ã\81«å\89\8aé\99¤ã\83\9eã\83¼ã\82¯ã\81\8cä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\82\82ã\80\81 ã\81\9dã\81®å\85±æ\9c\89ã\83¡"
-"ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä»\98å\8a ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97 POSIX.1-2001 ã\81§ã\81¯ã\81\93ã\81®ã\82\88ã\81\86ã\81ªå\8b\95ä½\9c"
-"を指定しておらず、 他の多くの実装もこれをサポートしていない。"
+"Linux ã\81§ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«æ\97¢ã\81«å\89\8aé\99¤ã\83\9eã\83¼ã\82¯ã\81\8cä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\82\82ã\80\81 ã\81\9dã\81®å\85±æ\9c\89"
+"ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä»\98å\8a ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97 POSIX.1-2001 ã\81§ã\81¯ã\81\93ã\81®ã\82\88ã\81\86ã\81ª"
+"動作を指定しておらず、 他の多くの実装もこれをサポートしていない。"
#. type: Plain text
-#: build/C/man2/shmop.2:265
+#: build/C/man2/shmop.2:276
msgid "The following system parameter affects B<shmat>():"
-msgstr "以ä¸\8bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81 B<shmat>() ã\81«å½±é\9f¿ã\81\99ã\82\8b:"
+msgstr "以下のシステムパラメーターは、 B<shmat>() に影響する:"
-#. 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:276
#, no-wrap
msgid "B<SHMLBA>"
msgstr "B<SHMLBA>"
-#. FIXME That last sentence isn't true for all Linux
-#. 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:289
msgid ""
-"Segment low boundary address multiple. Must be page aligned. For the "
-"current implementation the B<SHMLBA> value is B<PAGE_SIZE>."
+"Segment low boundary address multiple. When explicitly specifying an attach "
+"address in a call to B<shmat>(), the caller should ensure that the address "
+"is a multiple of this value. This is necessary on some architectures, in "
+"order either to ensure good CPU cache performance or to ensure that "
+"different attaches of the same segment have consistent views within the CPU "
+"cache. B<SHMLBA> is normally some multiple of the system page size (on many "
+"Linux architectures, it is the same as the system page size)."
msgstr ""
-"セグメントの境界アドレスの最小倍数。ページ境界に合ってなければならない。 現在"
-"の実装では B<SHMLBA> の値は B<PAGE_SIZE> である。"
+"セグメントの下限アドレス倍数 (Segment low boundary address multiple)。 "
+"B<shmat>() の呼び出しにおいて付加するアドレスを明示的に指定する際、 呼び出し"
+"元は指定するアドレスがこの値の倍数になるように保証しなければならない。 これは"
+"いくつかのアーキテクチャーでは必要なことで、 CPU キャッシュの性能を保証するた"
+"めであったり、 同じセグメントの別の付与を CPU キャッシュ内部で一貫して扱える"
+"ようにするためだったりする。 B<SHMLBA> は通常はシステムページサイズの倍数であ"
+"る (Linux の多くのアーキテクチャーではシステムページサイズと同じである)。"
#. type: Plain text
-#: build/C/man2/shmop.2:282
+#: build/C/man2/shmop.2:293
msgid ""
-"The implementation places no intrinsic limit on the per-process maximum "
-"number of shared memory segments (B<SHMSEG>)."
+"The implementation places no intrinsic per-process limit on the number of "
+"shared memory segments (B<SHMSEG>)."
msgstr ""
-"ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\94ã\81¨ã\81® å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの最大数 (B<SHMSEG>) に"
+"ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\94ã\81¨ã\81® å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの最大数 (B<SHMSEG>) に"
"関する実装依存の制限はない。"
#. type: Plain text
-#: build/C/man2/shmop.2:290
+#: build/C/man2/shmop.2:301
msgid ""
"B<brk>(2), B<mmap>(2), B<shmctl>(2), B<shmget>(2), B<capabilities>(7), "
"B<shm_overview>(7), B<svipc>(7)"
"B<shm_overview>(7), B<svipc>(7)"
#. type: TH
-#: build/C/man2/subpage_prot.2:28
+#: build/C/man2/subpage_prot.2:30
#, no-wrap
msgid "SUBPAGE_PROT"
msgstr "SUBPAGE_PROT"
#. type: TH
-#: build/C/man2/subpage_prot.2:28
+#: build/C/man2/subpage_prot.2:30
#, no-wrap
-msgid "2010-10-30"
-msgstr "2010-10-30"
+msgid "2012-07-13"
+msgstr "2012-07-13"
#. 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"
"B< uint32_t *>I<map>B<);>\n"
#. 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 ""
+"I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
+"を参照。"
+
+#. 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 "メモリ不足である。"
+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);"
-msgstr ""
+#: build/C/man2/subpage_prot.2:131
+msgid "B<mprotect>(2), B<syscall>(2)"
+msgstr "B<mprotect>(2), B<syscall>(2)"
#. type: Plain text
-#: build/C/man2/subpage_prot.2:126
-msgid "the kernel source file I<Documentation/vm/hugetlbpage.txt>."
-msgstr ""
+#: build/C/man2/subpage_prot.2:134
+msgid "I<Documentation/vm/hugetlbpage.txt> in the Linux kernel source tree"
+msgstr "Linux カーネルソースの I<Documentation/vm/hugetlbpage.txt>"
#. type: TH
#: build/C/man2/sync_file_range.2:30
msgid "SYNC_FILE_RANGE"
msgstr "SYNC_FILE_RANGE"
+#. type: TH
+#: build/C/man2/sync_file_range.2:30
+#, no-wrap
+msgid "2014-08-19"
+msgstr "2014-08-19"
+
#. type: Plain text
#: build/C/man2/sync_file_range.2:33
msgid "sync_file_range - sync a file segment with disk"
"B<sync_file_range>() permits fine control when synchronizing the open file "
"referred to by the file descriptor I<fd> with disk."
msgstr ""
-"B<sync_file_range>() を使うと、ファイルディスクリプタ I<fd> で参照されるオー"
-"プンされたファイルのディスクとの同期に関して、 きめ細かな制御が可能となる。"
+"B<sync_file_range>() を使うと、ファイルディスクリプター I<fd> で参照される"
+"オープンされたファイルのディスクとの同期に関して、 きめ細かな制御が可能とな"
+"る。"
#. type: Plain text
#: build/C/man2/sync_file_range.2:61
"Therefore, unless the application is strictly performing overwrites of "
"already-instantiated disk blocks, there are no guarantees that the data will "
"be available after a crash. There is no user interface to know if a write "
-"is purely an overwrite. On file systems using copy-on-write semantics (e."
-"g., I<btrfs>) an overwrite of existing allocated blocks is impossible. "
-"When writing into preallocated space, many file systems also require calls "
-"into the block allocator, which this system call does not sync out to disk. "
-"This system call does not flush disk write caches and thus does not provide "
-"any data integrity on systems with volatile disk write caches."
+"is purely an overwrite. On filesystems using copy-on-write semantics (e.g., "
+"I<btrfs>) an overwrite of existing allocated blocks is impossible. When "
+"writing into preallocated space, many filesystems also require calls into "
+"the block allocator, which this system call does not sync out to disk. This "
+"system call does not flush disk write caches and thus does not provide any "
+"data integrity on systems with volatile disk write caches."
msgstr ""
"このシステムコールは非常に危険であり、 移植性が必要なプログラムで使用すべきで"
"はない。 これらの操作ではどれもファイルのメタデータの書き出しを行わない。 し"
"たがって、アプリケーションにより作成済みのディスクブロックの 上書きの実行が確"
"実に行われない限り、クラッシュの後でもデータが 利用できる保証はない。 書き込"
-"ã\81¿ã\81\8cä¸\8aæ\9b¸ã\81\8dã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\8bã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\82¤ã\83³ã\82¿フェースは存在しない。 "
+"ã\81¿ã\81\8cä¸\8aæ\9b¸ã\81\8dã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\8bã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェースは存在しない。 "
"(I<btrfs> などの) copy-on-write 動作を使ったファイルシステムでは、 既存の割り"
"当て済みのブロックに対する上書き自体ができない。 前もって割り当てられた領域に"
"書き込みを行う場合、 多くのファイルシステムでは block allocator への書き込み"
"I<errno> is set to indicate the error."
msgstr ""
"成功の場合、 B<sync_file_range>() は 0 を返す。失敗の場合、-1 を返し、 "
-"I<error> にエラーを示す値を設定する。"
+"I<errno> にエラーを示す値を設定する。"
#. type: Plain text
#: build/C/man2/sync_file_range.2:152
msgid "I<fd> is not a valid file descriptor."
-msgstr "I<fd> が有効なファイルディスクリプタではない。"
+msgstr "I<fd> ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82"
#. type: Plain text
#: build/C/man2/sync_file_range.2:160
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
"このシステムコールは Linux 独自であり、 移植性が必要なプログラムでは使用を避"
"けるべきである。"
+#. type: SS
+#: build/C/man2/sync_file_range.2:184
+#, no-wrap
+msgid "sync_file_range2()"
+msgstr "sync_file_range2()"
+
#. See kernel commit edd5cd4a9424f22b0fa08bef5e299d41befd5622
#. type: Plain text
-#: build/C/man2/sync_file_range.2:196
+#: build/C/man2/sync_file_range.2:201
msgid ""
"Some architectures (e.g., PowerPC, ARM) need 64-bit arguments to be aligned "
"in a suitable pair of registers. On such architectures, the call signature "
-"of B<sync_file_range>() is flawed, since it forces a register to be wasted "
-"as padding between the I<fd> and I<offset> arguments. Therefore, these "
-"architectures define a different system call that orders the arguments "
-"suitably:"
+"of B<sync_file_range>() shown in the SYNOPSIS would force a register to be "
+"wasted as padding between the I<fd> and I<offset> arguments. (See "
+"B<syscall>(2) for details.) Therefore, these architectures define a "
+"different system call that orders the arguments suitably:"
msgstr ""
+"いくつかのアーキテクチャー (例えば、 PowerPC や ARM) では、 64 ビットの引き数"
+"は適切なレジスターの組に割り当てる必要がある。 このようなアーキテクチャーで"
+"は、 「書式」に書かれている B<sync_file_range>() の呼び出しシグネチャーで、 "
+"引き数 I<fd> と I<offset> の間のパディング (詰めもの) でレジスターが一つ消費"
+"されてしまう (詳細は B<syscall>(2) 参照)。 そのため、 これらのアーキテク"
+"チャーでは引き数が適切な順序になった別のシステムコールが定義されている。"
#. type: Plain text
-#: build/C/man2/sync_file_range.2:201
+#: build/C/man2/sync_file_range.2:206
#, no-wrap
msgid ""
"B<int sync_file_range2(int >I<fd>B<, unsigned int >I<flags>B<,>\n"
"B< off64_t >I<offset>B<, off64_t >I<nbytes>B<);>\n"
#. type: Plain text
-#: build/C/man2/sync_file_range.2:206
+#: build/C/man2/sync_file_range.2:211
msgid ""
"The behavior of this system call is otherwise exactly the same as "
"B<sync_file_range>()."
msgstr ""
+"上記の点以外は、このシステムコールの動作は B<sync_file_range>() と\n"
+"全く同じである。このシステムコールに対するライブラリによるサポートは\n"
+"glibc では提供されていない。"
#. type: Plain text
-#: build/C/man2/sync_file_range.2:217
+#: build/C/man2/sync_file_range.2:222
msgid ""
"A system call with this signature first appeared on the ARM architecture in "
"Linux 2.6.20, with the name B<arm_sync_file_range>(). It was renamed in "
"architectures where glibc support is provided, glibc transparently wraps "
"B<sync_file_range2>() under the name B<sync_file_range>()."
msgstr ""
+"このバージョンのシステムコールは、Linux 2.6.20 で ARM アーキテクチャーで\n"
+"初めて登場し、 B<arm_sync_file_range>() という名前であった。\n"
+"Linux 2.6.22 で、同様のシステムコールが PowerPC 用に追加された際に、\n"
+"システムコールの名前が変更された。\n"
+"glibc によるサポートが提供されているアーキテクチャーでは、\n"
+"glibc のラッパー関数は B<sync_file_range>() という名前で\n"
+"B<sync_file_range2>() を適切に使用するようになっている。"
#. type: Plain text
-#: build/C/man2/sync_file_range.2:222
+#: build/C/man2/sync_file_range.2:227
msgid "B<fdatasync>(2), B<fsync>(2), B<msync>(2), B<sync>(2)"
msgstr "B<fdatasync>(2), B<fsync>(2), B<msync>(2), B<sync>(2)"
#. type: TH
-#: build/C/man3/malloc_get_state.3:23
+#: build/C/man2/memfd_create.2:21
#, no-wrap
-msgid "MALLOC_GET_STATE"
-msgstr "MALLOC_GET_STATE"
+msgid "MEMFD_CREATE"
+msgstr "MEMFD_CREATE"
-#. type: TH
-#: build/C/man3/malloc_get_state.3:23
-#, no-wrap
-msgid "2012-03-26"
-msgstr "2012-03-26"
+#. type: Plain text
+#: build/C/man2/memfd_create.2:24
+msgid "memfd_create - create an anonymous file"
+msgstr "memfd_create - 無名ファイル (anonymous file) を作成する"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:26
+msgid "B<#include E<lt>sys/memfd.hE<gt>>"
+msgstr "B<#include E<lt>sys/memfd.hE<gt>>"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:28
+msgid "B<int memfd_create(const char *>I<name>B<, unsigned int >I<flags>B<);>"
+msgstr "B<int memfd_create(const char *>I<name>B<, unsigned int >I<flags>B<);>"
+#. David Herrmann:
+#. memfd uses VM_NORESERVE so each page is accounted on first access.
+#. This means, the overcommit-limits (see __vm_enough_memory()) and the
+#. memory-cgroup limits (mem_cgroup_try_charge()) are applied. Note that
+#. those are accounted on "current" and "current->mm", that is, the
+#. process doing the first page access.
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:26
+#: build/C/man2/memfd_create.2:51
msgid ""
-"get_malloc_state, set_malloc_state - record and restore state of malloc "
-"implementation"
+"B<memfd_create>() creates an anonymous file and returns a file descriptor "
+"that refers to it. The file behaves like a regular file, and so can be "
+"modified, truncated, memory-mapped, and so on. However, unlike a regular "
+"file, it lives in RAM and has a volatile backing storage. Once all "
+"references to the file are dropped, it is automatically released. Anonymous "
+"memory is used for all backing pages of the file. Therefore, files created "
+"by B<memfd_create>() have the same semantics as other anonymous memory "
+"allocations such as those allocated using B<mmap>(2) with the "
+"B<MAP_ANONYMOUS> flag."
msgstr ""
+"B<memfd_create>() は、 無名ファイル (anonymous file) を作成し、 そのファイル"
+"を参照するファイルディスクリプターを返す。 このファイルは通常のファイルと同様"
+"に振る舞い、 変更、切り詰め (truncate)、 メモリーマップなどを行うことができ"
+"る。 しかし、 通常のファイルとは違い、 このファイルは RAM 上に置かれ、 格納さ"
+"れるストレージは揮発性である。 このファイルへの参照がすべてなくなると、 ファ"
+"イルは自動的に解放される。 このファイルが置かれるページには無名メモリー "
+"(anonymous memory) が使用される。 したがって、 B<memfd_create>() で作成された"
+"フィアルは、 他の無名メモリーの割り当て (B<MAP_ANONYMOUS> フラグ付きの "
+"B<mmap>(2) を使って割り当てられた無名メモリーなど) と同じ動作をする。"
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:31
+#: build/C/man2/memfd_create.2:58
+msgid ""
+"The initial size of the file is set to 0. Following the call, the file size "
+"should be set using B<ftruncate>(2). (Alternatively, the file may be "
+"populated by calls to B<write>(2) or similar.)"
+msgstr ""
+"ファイルの初期サイズは 0 に設定される。 呼び出しの後に、 B<ftruncate>(2) を"
+"使ってファイルサイズを設定すべきである (代わりに、 B<write>(2) や同様の関数を"
+"呼び出してファイルにデータを書き込むこともできる)。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:69
+msgid ""
+"The name supplied in I<name> is used as a filename and will be displayed as "
+"the target of the corresponding symbolic link in the directory I</proc/self/"
+"fd/>. The displayed name is always prefixed with I<memfd:> and serves only "
+"for debugging purposes. Names do not affect the behavior of the file "
+"descriptor, and as such multiple files can have the same name without any "
+"side effects."
+msgstr ""
+"I<name> に指定された名前はファイル名として使用され、 ディレクトリ I</proc/"
+"self/fd/> で対応するシンボリックリンクのリンク先として表示される。 表示される"
+"名前の前には常に I<memfd:> が付き、 この名前はデバッグ用途としてのみ機能す"
+"る。 名前はファイルディスクリプターの動作には影響せず、 複数のファイルが同じ"
+"名前を持っても副作用はない。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:74
+msgid ""
+"The following values may be bitwise ORed in I<flags> to change the behaviour "
+"of B<memfd_create>():"
+msgstr ""
+"以下の値をビット論理和で I<flags> に指定して、 B<memfd_create>() の動作を変更"
+"できる。"
+
+#. type: TP
+#: build/C/man2/memfd_create.2:74
#, no-wrap
-msgid "B<void* malloc_get_state(void);>\n"
-msgstr "B<void* malloc_get_state(void);>\n"
+msgid "B<MFD_CLOEXEC>"
+msgstr "B<MFD_CLOEXEC>"
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:33
+#: build/C/man2/memfd_create.2:84
+msgid ""
+"Set the close-on-exec (B<FD_CLOEXEC>) flag on the new file descriptor. See "
+"the description of the B<O_CLOEXEC> flag in B<open>(2) for reasons why this "
+"may be useful."
+msgstr ""
+"新しいファイルディスクリプターに close-on-exec (B<FD_CLOEXEC>) フラグをセット"
+"する。 これが有用な理由については B<open>(2) の B<O_CLOEXEC> フラグの説明を参"
+"照のこと。"
+
+#. type: TP
+#: build/C/man2/memfd_create.2:84
#, no-wrap
-msgid "B<int malloc_set_state(void *>I<state>B<);>\n"
-msgstr "B<int malloc_set_state(void *>I<state>B<);>\n"
+msgid "B<MFD_ALLOW_SEALING>"
+msgstr "B<MFD_ALLOW_SEALING>"
+#. FIXME Why is the MFD_ALLOW_SEALING behavior not simply the default?
+#. Is it worth adding some text explaining this?
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:51
+#: build/C/man2/memfd_create.2:100
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 "
-"the heap or the state of B<malloc_hook>(3) functions pointers). The state "
-"is recorded in a system-dependent opaque data structure dynamically "
-"allocated via B<malloc>(3), and a pointer to that data structure is returned "
-"as the function result. (It is the caller's responsibility to B<free>(3) "
-"this memory.)"
+"Allow sealing operations on this file. See the discussion of the "
+"B<F_ADD_SEALS> and B<F_GET_SEALS> operations in B<fcntl>(2), and also NOTES, "
+"below. The initial set of seals is empty. If this flag is not set, the "
+"initial set of seals will be B<F_SEAL_SEAL>, meaning that no other seals can "
+"be set on the file."
msgstr ""
+"このファイルに対して sealing 操作を許可する。 B<fcntl>(2) の B<F_ADD_SEALS> "
+"と B<F_GET_SEALS> 操作の議論を参照。 下記の「注意」も参照。 初期の seal 集合"
+"は空となる。 このフラグを指定しなかった場合、 初期の seal 集合は "
+"B<F_SEAL_SEAL> となり、 これはこのファイルには他の seal をセットできないこと"
+"ということである。"
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:59
+#: build/C/man2/memfd_create.2:104
+msgid "Unused bits in I<flags> must be 0."
+msgstr "I<flags> の未使用のビットは 0 でなければならない。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:113
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 "
-"structure pointed to by I<state>."
+"As its return value, B<memfd_create>() returns a new file descriptor that "
+"can be used to refer to the file. This file descriptor is opened for both "
+"reading and writing (B<O_RDWR>) and B<O_LARGEFILE> is set for the "
+"descriptor."
msgstr ""
+"返り値として B<memfd_create>() は、 作成したファイルを参照するのに使用できる"
+"新しいファイルディスクリプターを返す。 このファイルディスクリプターは読み書き"
+"両用 (B<O_RDWR>) でオープンされ、 B<O_LARGEFILE> がこのファイルディスクリプ"
+"ターにセットされる。"
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:66
+#: build/C/man2/memfd_create.2:126
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 "
-"for the data structure), B<malloc_get_state>() returns NULL."
+"With respect to B<fork>(2) and B<execve>(2), the usual semantics apply for "
+"the file descriptor created by B<memfd_create>(). A copy of the file "
+"descriptor is inherited by the child produced by B<fork>(2) and refers to "
+"the same file. The file descriptor is preserved across B<execve>(2), unless "
+"the close-on-exec flag has been set."
msgstr ""
+"B<fork>(2) と B<execve>(2) に関しては、 B<memfd_create>() で作成したファイル"
+"ディスクリプターについても通常の動作が適用される。 ファイルディスクリプターの"
+"コピーは B<fork>(2) で生成される子プロセスに継承され、 同じファイルを参照す"
+"る。 close-on-exec フラグがセットされていない限り、 B<execve>(2) の前後でファ"
+"イルディスクリプターは保持される。"
-#. if(ms->magic != MALLOC_STATE_MAGIC) return -1;
-#. /* 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/man2/memfd_create.2:133
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, "
-"B<malloc_set_state>() returns -1. If the implementation detects that the "
-"version of the data structure referred to by I<state> is a more recent "
-"version than this implementation knows about, B<malloc_set_state>() returns "
-"-2."
+"On success, B<memfd_create>() returns a new file descriptor. On error, -1 "
+"is returned and I<errno> is set to indicate the error."
msgstr ""
+"成功の場合、 B<memfd_create>() は新しいファイルディスクリプターを返す。 エ"
+"ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:139
+msgid "The address in I<name> points to invalid memory."
+msgstr "I<name> のアドレスが無効なメモリーを指している。"
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:92
+#: build/C/man2/memfd_create.2:146
msgid ""
-"These functions are especially useful when using this B<malloc>(3) "
-"implementation as part of a shared library, and the heap contents are saved/"
-"restored via some other method. This technique is used by the GNU Emacs to "
-"implement its \"dumping\" function."
+"An unsupported value was specified in one of the arguments: I<flags> "
+"included unknown bits, or I<name> was too long."
msgstr ""
+"サポートされていない値がいずれかの引き数で指定された。 I<flags> に未知のビッ"
+"トが含まれていたか、 I<name> が長過ぎた。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:149
+msgid "The per-process limit on open file descriptors has been reached."
+msgstr ""
+"オープンされているファイルディスクリプターのプロセス単位の上限に達した。"
-#. i.e., calls __malloc_check_init()
-#. 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/man2/memfd_create.2:152
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 "
-"B<malloc_get_state>() was called, then B<malloc_set_state>() resets malloc "
-"checking hooks if possible; if malloc checking was not in use in the "
-"recorded state, but the caller has requested malloc checking, then the hooks "
-"are reset to 0."
+"The system-wide limit on the total number of open files has been reached."
+msgstr "システム全体でオープンされているファイルの総数が上限に達した。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:155
+msgid "There was insufficient memory to create a new anonymous file."
+msgstr "新しい無名ファイルを作成するのに十分なメモリーがなかった。"
+
+#. FIXME . When glibc support appears, update the following sentence:
+#. type: Plain text
+#: build/C/man2/memfd_create.2:161
+msgid ""
+"The B<memfd_create>() system call first appeared in Linux 3.17. Support in "
+"the GNU C library is pending."
msgstr ""
+"B<memfd_create>() システムコールは Linux 3.17 で初めて登場した。 GNU C ライブ"
+"ラリでのサポートは検討中である。"
#. type: Plain text
-#: build/C/man3/malloc_get_state.3:112
-msgid "B<malloc>(3), B<mallopt>(3)"
-msgstr "B<malloc>(3), B<mallopt>(3)"
+#: build/C/man2/memfd_create.2:165
+msgid "The B<memfd_create>() system call is Linux-specific."
+msgstr "B<memfd_create>() システムコールは Linux 固有である。"
-#. type: TH
-#: build/C/man3/malloc_trim.3:24
+#. See also http://lwn.net/Articles/593918/
+#. and http://lwn.net/Articles/594919/ and http://lwn.net/Articles/591108/
+#. type: Plain text
+#: build/C/man2/memfd_create.2:178
+msgid ""
+"The B<memfd_create>() system call provides a simple alternative to manually "
+"mounting a I<tmpfs> filesystem and creating and opening a file in that "
+"filesystem. The primary purpose of B<memfd_create>() is to create files "
+"and associated file descriptors that are used with the file-sealing APIs "
+"provided by B<fcntl>(2)."
+msgstr ""
+"B<memfd_create>() システムコールは、 手動で I<tmpfs> ファイルシステムをマウン"
+"トして、 そのファイルシステムにファイルをオープンするという操作の、 簡単な代"
+"替手段を提供している。 B<memfd_create>() の主な目的は、 B<fcntl>(2) が提供す"
+"る file-sealing API で使用できる、 ファイルとそれに関連付けられるファイルディ"
+"スクリプターを作成することである。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:192
+msgid ""
+"The B<memfd_create>() system call also has uses without file sealing (which "
+"is why file-sealing is disabled, unless explicitly requested with the "
+"B<MFD_ALLOW_SEALING> flag). In particular, it can be used as an alternative "
+"to creating files in I<tmp> or as an alternative to using the B<open>(2) "
+"B<O_TMPFILE> in cases where there is no intention to actually link the "
+"resulting file into the filesystem."
+msgstr ""
+"B<memfd_create>() システムコールは、 file sealing なしでも用途がある (これが"
+"明示的に B<MFD_ALLOW_SEALING> フラグが要求されない限り、 file-sealing が無効"
+"になる理由である)。 特に、 ファイルシステムに実際にファイルを残す意図がない場"
+"合、 I<tmp> にファイルを作成したり B<open>(2) B<O_TMPFILE> を使ったりする際の"
+"代替手段として使用できる。"
+
+#. type: SS
+#: build/C/man2/memfd_create.2:192
#, no-wrap
-msgid "MALLOC_TRIM"
-msgstr "MALLOC_TRIM"
+msgid "File sealing"
+msgstr "file sealing"
-#. type: TH
-#: build/C/man3/malloc_trim.3:24 build/C/man3/malloc_usable_size.3:23
+#. type: Plain text
+#: build/C/man2/memfd_create.2:210
+msgid ""
+"In the absence of file sealing, processes that communicate via shared memory "
+"must either trust each other, or take measures to deal with the possibility "
+"that an untrusted peer may manipulate the shared memory region in "
+"problematic ways. For example, an untrusted peer might modify the contents "
+"of the shared memory at any time, or shrink the shared memory region. The "
+"former possibility leaves the local process vulnerable to time-of-check-to-"
+"time-of-use race conditions (typically dealt with by copying data from the "
+"shared memory region before checking and using it). The latter possibility "
+"leaves the local process vulnerable to B<SIGBUS> signals when an attempt is "
+"made to access a now-nonexistent location in the shared memory region. "
+"(Dealing with this possibility necessitates the use of a handler for the "
+"B<SIGBUS> signal.)"
+msgstr ""
+"file sealing がない場合、 共有メモリー経由で通信するプロセスは、 互いに信頼す"
+"るか、 信頼していない相手が共有メモリー領域を問題がある方法で操作する可能性に"
+"対処するための対策を講じなければならない。\n"
+"例えば、 信頼していない相手は、 いつでも共有メモリーの内容を変更したり、 共有"
+"メモリー領域を縮小したりする可能性がある。 前者の場合は、 ローカルプロセスで"
+"は、 データの確認時点と使用時点の競合条件の問題が起こり得る (通常はこの問題へ"
+"の対処は共有メモリー領域からデータをこぴーしてからデータを確認、使用すること"
+"である)。 後者の場合は、 ローカルプロセスでは、 共有メモリー領域の存在しなく"
+"なった場所にアクセスしようとした際にシグナル B<SIGBUS> が発生する可能性があ"
+"る (この可能性に対処するにはシグナル B<SIGBUS> に対してハンドラーを使用する必"
+"要がある)。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:216
+msgid ""
+"Dealing with untrusted peers imposes extra complexity on code that employs "
+"shared memory. Memory sealing enables that extra complexity to be "
+"eliminated, by allowing a process to operate secure in the knowledge that "
+"its peer can't modify the shared memory in an undesired fashion."
+msgstr ""
+"信頼していない相手への対処により、 共有メモリーを利用するコードに余計な複雑性"
+"が増すことになる。 メモリー sealing により余計な複雑性をなくすことができる。 "
+"相手が望まない方法で共有メモリーを変更できないことを知っていることで、 プロセ"
+"スは安全に動作できるようになる。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:218
+msgid "An example of the usage of the sealing mechanism is as follows:"
+msgstr "sealing 機構の使い方の例は以下のとおりである。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:225
+msgid ""
+"The first process creates a I<tmpfs> file using B<memfd_create>(). The call "
+"yields a file descriptor used in subsequent steps."
+msgstr ""
+"最初のプロセスは B<memfd_create>() を使って I<tmpfs> ファイルを作成する。 "
+"B<memfd_create>() はこれ以降のステップで使用するファイルディスクリプターを返"
+"す。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:232
+msgid ""
+"The first process sizes the file created in the previous step using "
+"B<ftruncate>(2), maps it using B<mmap>(2), and populates the shared memory "
+"with the desired data."
+msgstr ""
+"最初のプロセスは B<ftruncate>(2) を使って直前のステップで作成したファイルのサ"
+"イズを変更し、 B<mmap>(2) を使ってそのファイルをマッピングし、 共有メモリーに"
+"所望のデータを配置する。"
+
+#. type: IP
+#: build/C/man2/memfd_create.2:232
#, no-wrap
-msgid "2012-03-29"
-msgstr "2012-03-29"
+msgid "3."
+msgstr "3."
#. type: Plain text
-#: build/C/man3/malloc_trim.3:27
-msgid "malloc_trim - release free memory from the top of the heap"
+#: build/C/man2/memfd_create.2:242
+msgid ""
+"The first process uses the B<fcntl>(2) B<F_ADD_SEALS> operation to place "
+"one or more seals on the file, in order to restrict further modifications on "
+"the file. (If placing the seal B<F_SEAL_WRITE>, then it will be necessary "
+"to first unmap the shared writable mapping created in the previous step.)"
msgstr ""
+"最初のプロセスは、 このファイルに対する今後の変更を制限するために、 "
+"B<fcntl>(2) の B<F_ADD_SEALS> 操作を使って、 そのファイルに seal をいくつか設"
+"定する。 (seal B<F_SEAL_WRITE> を設定する場合、 直前のステップで作成した書き"
+"込み可能な共有マッピングをまずアンマップする必要が出てくる。)"
+
+#. type: IP
+#: build/C/man2/memfd_create.2:242
+#, no-wrap
+msgid "4."
+msgstr "4."
#. type: Plain text
-#: build/C/man3/malloc_trim.3:31
-msgid "B<void malloc_trim(size_t >I<pad>B<);>"
-msgstr "B<void malloc_trim(size_t >I<pad>B<);>"
+#: build/C/man2/memfd_create.2:247
+msgid ""
+"A second process obtains a file descriptor for the I<tmpfs> file and maps "
+"it. Among the possible ways in which this could happen are the following:"
+msgstr ""
+"二つ目のプロセスは I<tmpfs> ファイルのファイルディスクリプターを入手し、 その"
+"ファイルをマップする。 以下に示す方法を使用することができる。"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:38
+#: build/C/man2/memfd_create.2:258
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)."
+"The process that called B<memfd_create>() could transfer the resulting file "
+"descriptor to the second process via a UNIX domain socket (see B<unix>(7) "
+"and B<cmsg>(3)). The second process then maps the file using B<mmap>(2)."
msgstr ""
+"B<memfd_create>() を呼び出したプロセスは、 得られたファイルディスクリプターを"
+"二つ目のプロセスに UNIX ドメインソケット経由で渡すことができる (B<unix>(7) "
+"と B<cmsg>(3) を参照)。 それから、二つ目のプロセスは B<mmap>(2) を使ってファ"
+"イルをマップする。"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:49
+#: build/C/man2/memfd_create.2:266
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 "
-"memory is maintained at the top of the heap (i.e., one page or less). A "
-"nonzero argument can be used to maintain some trailing space at the top of "
-"the heap in order to allow future allocations to be made without having to "
-"extend the heap with B<sbrk>(2)."
+"The second process is created via B<fork>(2) and thus automatically "
+"inherits the file descriptor and mapping. (Note that in this case and the "
+"next, there is a natural trust relationship between the two processes, since "
+"they are running under the same user ID. Therefore, file sealing would not "
+"normally be necessary.)"
msgstr ""
+"二つ目のプロセスを B<fork>(2) を使って作成する。 そうすると、 自動的にファイ"
+"ルディスクリプターとマッピングが継承される。 (この方法と次の方法では、 二つの"
+"プロセス間で自然な信頼関係が存在することになる。 なぜなら、 二つのプロセスは"
+"同じユーザー ID。 の元で実行されているからである。 したがって、 file sealing "
+"は通常は不要であろう。)"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:54
+#: build/C/man2/memfd_create.2:280
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."
+"The second process opens the file I</proc/E<lt>pdE<gt>/fd/E<lt>fdE<gt>>, "
+"where I<E<lt>pidE<gt>> is the PID of the first process (the one that called "
+"B<memfd_create>()), and I<E<lt>fdE<gt>> is the number of the file descriptor "
+"returned by the call to B<memfd_create>() in that process. The second "
+"process then maps the file using B<mmap>(2)."
msgstr ""
+"二つ目のプロセスは I</proc/E<lt>pdE<gt>/fd/E<lt>fdE<gt>> をオープンする。 "
+"I<E<lt>pidE<gt>> は最初のプロセス (B<memfd_create>() を呼び出したプロセス) "
+"の PID で、 I<E<lt>fdE<gt>> は最初のプロセスでの B<memfd_create>() の呼び出し"
+"で返されたファイルディスクリプター番号である。 それからこのファイルを "
+"B<mmap>(2) を使ってマッピングする。"
+
+#. type: IP
+#: build/C/man2/memfd_create.2:281
+#, no-wrap
+msgid "5."
+msgstr "5."
-#. .SH VERSIONS
-#. Available already in glibc 2.0, possibly earlier
#. type: Plain text
-#: build/C/man3/malloc_trim.3:58
-msgid "No errors are defined."
+#: build/C/man2/memfd_create.2:293
+msgid ""
+"The second process uses the B<fcntl>(2) B<F_GET_SEALS> operation to "
+"retrieve the bit mask of seals that has been applied to the file. This bit "
+"mask can be inspected in order to determine what kinds of restrictions have "
+"been placed on file modifications. If desired, the second process can apply "
+"further seals to impose additional restrictions (so long as the "
+"B<F_SEAL_SEAL> seal has not yet been applied)."
msgstr ""
+"二つ目のプロセスは B<fcntl>(2) の B<F_GET_SEALS> 操作を使って、 そのファイル"
+"に適用されている seal のビットマスクを取得する。 このビットマスクを調べて、 "
+"ファイルの変更に関してどのような制限が適用されているかを知ることができる。 "
+"(B<F_SEAL_SEAL> seal がそれまでに適用されていない限りは) 必要であれば、 二つ"
+"目のプロセスはさらに seal を設定して追加の制限をかけることができる。"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:60 build/C/man3/malloc_usable_size.3:48
-msgid "This function is a GNU extension."
-msgstr "この関数は GNU による拡張である。"
+#: build/C/man2/memfd_create.2:297
+msgid ""
+"Below are shown two example programs that demonstrate the use of "
+"B<memfd_create>() and the file sealing API."
+msgstr ""
+"以下では B<memfd_create>() と file sealing API の使用例を示すサンプルプログラ"
+"ムを 2 つとりあげる。"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:69
+#: build/C/man2/memfd_create.2:312
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 "
-"B<mallopt>(3)."
+"The first program, I<t_memfd_create.c>, creates a I<tmpfs> file using "
+"B<memfd_create>(), sets a size for the file, maps it into memory, and "
+"optionally places some seals on the file. The program accepts up to three "
+"command-line arguments, of which the first two are required. The first "
+"argument is the name to associate with the file, the second argument is the "
+"size to be set for the file, and the optional third is a string of "
+"characters that specify seals to be set on file."
+msgstr ""
+"最初のプログラム I<t_memfd_create.c> は、 B<memfd_create>() を使って "
+"I<tmpfs> ファイルを作成し、 そのファイルのサイズを設定し、 メモリーにマッピン"
+"グし、 要求された場合にはそのファイルに seal を設定する。 このプログラムは最"
+"大で 3 つのコマンドライン引き数を取り、 最初の 2 つは必須である。 最初の引き"
+"数はファイルに関連付けられる名前で、 2 番目の引き数はファイルに設定されるサイ"
+"ズである。 省略可能な 3 番目の引き数は、 このファイルに設定する seal を指定す"
+"る文字列である。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:318
+msgid ""
+"The second program, I<t_get_seals.c>, can be used to open an existing file "
+"that was created via B<memfd_create>() and inspect the set of seals that "
+"have been applied to that file."
+msgstr ""
+"2 つめのプログラム I<t_get_seals.c> を使うと、 B<memfd_create>() を使って作成"
+"された既存のファイルをオープンし、 そのファイルに適用されている seal の集合を"
+"調査できる。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:323
+msgid ""
+"The following shell session demonstrates the use of these programs. First "
+"we create a I<tmpfs> file and set some seals on it:"
+msgstr ""
+"以下のシェルのセッションはこれらのプログラムの使用例を示したものである。 ま"
+"ず I<tmpfs> ファイルを作成し、そのファイルに seal をいくつか設定している。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:329
+#, no-wrap
+msgid ""
+"$ B<./t_memfd_create my_memfd_file 4096 sw &>\n"
+"[1] 11775\n"
+"PID: 11775; fd: 3; /proc/11775/fd/3\n"
+msgstr ""
+"$ B<./t_memfd_create my_memfd_file 4096 sw &>\n"
+"[1] 11775\n"
+"PID: 11775; fd: 3; /proc/11775/fd/3\n"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:347
+msgid ""
+"At this point, the I<t_memfd_create> program continues to run in the "
+"background. From another program, we can obtain a file descriptor for the "
+"file created by B<memfd_create>() by opening the I</proc/PID/fd> file that "
+"corresponds to the descriptor opened by B<memfd_create>(). Using that "
+"pathname, we inspect the content of the I</proc/PID/fd> symbolic link, and "
+"use our I<t_get_seals> program to view the seals that have been placed on "
+"the file:"
+msgstr ""
+"この時点では、 I<t_memfd_create> プログラムはバックグラウンドで動作し続け"
+"る。 もう一つのプログラムから、 B<memfd_create>() がオープンしたディスクリプ"
+"ターに対応する I</proc/PID/fd> ファイルをオープンすることで、 "
+"B<memfd_create>() で作成されたファイルのファイルディスクリプターを取得でき"
+"る。\n"
+"そのパス名を使って、 I</proc/PID/fd> シンボリックリンクの内容を調査し、 "
+"I<t_get_seals> プログラムを使ってそのファイルに設定されている seal を見ること"
+"ができる。"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:354
+#, no-wrap
+msgid ""
+"$ B<readlink /proc/11775/fd/3>\n"
+"/memfd:my_memfd_file (deleted)\n"
+"$ B<./t_get_seals /proc/11775/fd/3>\n"
+"Existing seals: WRITE SHRINK\n"
+msgstr ""
+"$ B<readlink /proc/11775/fd/3>\n"
+"/memfd:my_memfd_file (deleted)\n"
+"$ B<./t_get_seals /proc/11775/fd/3>\n"
+"Existing seals: WRITE SHRINK\n"
+
+#. type: SS
+#: build/C/man2/memfd_create.2:356
+#, no-wrap
+msgid "Program source: t_memfd_create.c"
+msgstr "プログラムのソース: t_memfd_create.c"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:365
+#, no-wrap
+msgid ""
+"#include E<lt>sys/memfd.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+msgstr ""
+"#include E<lt>sys/memfd.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:377
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+" unsigned int seals;\n"
+" char *addr;\n"
+" char *name, *seals_arg;\n"
+" ssize_t len;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+" unsigned int seals;\n"
+" char *addr;\n"
+" char *name, *seals_arg;\n"
+" ssize_t len;\n"
+
+#. type: Plain text
+#: build/C/man2/memfd_create.2:388
+#, no-wrap
+msgid ""
+" if (argc E<lt> 3) {\n"
+" fprintf(stderr, \"%s name size [seals]\\en\", argv[0]);\n"
+" fprintf(stderr, \"\\et\\(aqseals\\(aq can contain any of the \"\n"
+" \"following characters:\\en\");\n"
+" fprintf(stderr, \"\\et\\etg - F_SEAL_GROW\\en\");\n"
+" fprintf(stderr, \"\\et\\ets - F_SEAL_SHRINK\\en\");\n"
+" fprintf(stderr, \"\\et\\etw - F_SEAL_WRITE\\en\");\n"
+" fprintf(stderr, \"\\et\\etS - F_SEAL_SEAL\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
msgstr ""
+" if (argc E<lt> 3) {\n"
+" fprintf(stderr, \"%s name size [seals]\\en\", argv[0]);\n"
+" fprintf(stderr, \"\\et\\(aqseals\\(aq can contain any of the \"\n"
+" \"following characters:\\en\");\n"
+" fprintf(stderr, \"\\et\\etg - F_SEAL_GROW\\en\");\n"
+" fprintf(stderr, \"\\et\\ets - F_SEAL_SHRINK\\en\");\n"
+" fprintf(stderr, \"\\et\\etw - F_SEAL_WRITE\\en\");\n"
+" fprintf(stderr, \"\\et\\etS - F_SEAL_SEAL\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:72
+#: build/C/man2/memfd_create.2:392
+#, no-wrap
msgid ""
-"This function cannot release free memory located at places other than the "
-"top of the heap."
+" name = argv[1];\n"
+" len = atoi(argv[2]);\n"
+" seals_arg = argv[3];\n"
msgstr ""
+" name = argv[1];\n"
+" len = atoi(argv[2]);\n"
+" seals_arg = argv[3];\n"
-#. 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/man2/memfd_create.2:395
+#, no-wrap
+msgid ""
+" /* Create an anonymous file in tmpfs; allow seals to be\n"
+" placed on the file */\n"
msgstr ""
+" /* Create an anonymous file in tmpfs; allow seals to be\n"
+" placed on the file */\n"
#. type: Plain text
-#: build/C/man3/malloc_trim.3:80
-msgid "B<sbrk>(2), B<malloc>(3), B<mallopt>(3)"
-msgstr "B<sbrk>(2), B<malloc>(3), B<mallopt>(3)"
-
-#. type: TH
-#: build/C/man3/malloc_usable_size.3:23
+#: build/C/man2/memfd_create.2:399
#, no-wrap
-msgid "MALLOC_USABLE_SIZE"
-msgstr "MALLOC_USABLE_SIZE"
-
-#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:26
-msgid "malloc_usable_size - obtain size of block of memory allocated from heap"
+msgid ""
+" fd = memfd_create(name, MFD_ALLOW_SEALING);\n"
+" if (fd == -1)\n"
+" errExit(\"memfd_create\");\n"
msgstr ""
+" fd = memfd_create(name, MFD_ALLOW_SEALING);\n"
+" if (fd == -1)\n"
+" errExit(\"memfd_create\");\n"
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:30
-msgid "B<size_t malloc_usable_size (void *>I<ptr>B<);>"
-msgstr "B<size_t malloc_usable_size (void *>I<ptr>B<);>"
+#: build/C/man2/memfd_create.2:401
+#, no-wrap
+msgid " /* Size the file as specified on the command line */\n"
+msgstr " /* Size the file as specified on the command line */\n"
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:38
+#: build/C/man2/memfd_create.2:404
+#, no-wrap
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 "
-"B<malloc>(3) or a related function."
+" if (ftruncate(fd, len) == -1)\n"
+" errExit(\"truncate\");\n"
msgstr ""
+" if (ftruncate(fd, len) == -1)\n"
+" errExit(\"truncate\");\n"
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:46
+#: build/C/man2/memfd_create.2:407
+#, no-wrap
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."
+" printf(\"PID: %ld; fd: %d; /proc/%ld/fd/%d\\en\",\n"
+" (long) getpid(), fd, (long) getpid(), fd);\n"
msgstr ""
+" printf(\"PID: %ld; fd: %d; /proc/%ld/fd/%d\\en\",\n"
+" (long) getpid(), fd, (long) getpid(), fd);\n"
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:58
+#: build/C/man2/memfd_create.2:410
+#, no-wrap
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 "
-"constraints. Although the excess bytes can be overwritten by the "
-"application without ill effects, this is not good programming practice: the "
-"number of excess bytes in an allocation depends on the underlying "
-"implementation."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:60
-msgid "The main use of this function is for debugging and introspection."
+" /* Code to map the file and populate the mapping with data\n"
+" omitted */\n"
msgstr ""
+" /* Code to map the file and populate the mapping with data\n"
+" omitted */\n"
#. type: Plain text
-#: build/C/man3/malloc_usable_size.3:62
-msgid "B<malloc>(3)"
-msgstr "B<malloc>(3)"
-
-#. type: TH
-#: build/C/man3/mcheck.3:23
+#: build/C/man2/memfd_create.2:413
#, no-wrap
-msgid "MCHECK"
+msgid ""
+" /* If a \\(aqseals\\(aq command-line argument was supplied, set some\n"
+" seals on the file */\n"
msgstr ""
+" /* If a \\(aqseals\\(aq command-line argument was supplied, set some\n"
+" seals on the file */\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:26
+#: build/C/man2/memfd_create.2:416
+#, no-wrap
msgid ""
-"mcheck, mcheck_check_all, mcheck_pedantic, mprobe - heap consistency checking"
+" if (seals_arg != NULL) {\n"
+" seals = 0;\n"
msgstr ""
+" if (seals_arg != NULL) {\n"
+" seals = 0;\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:29
+#: build/C/man2/memfd_create.2:425
#, no-wrap
-msgid "B<#include E<lt>mcheck.hE<gt>>\n"
-msgstr "B<#include E<lt>mcheck.hE<gt>>\n"
+msgid ""
+" if (strchr(seals_arg, \\(aqg\\(aq) != NULL)\n"
+" seals |= F_SEAL_GROW;\n"
+" if (strchr(seals_arg, \\(aqs\\(aq) != NULL)\n"
+" seals |= F_SEAL_SHRINK;\n"
+" if (strchr(seals_arg, \\(aqw\\(aq) != NULL)\n"
+" seals |= F_SEAL_WRITE;\n"
+" if (strchr(seals_arg, \\(aqS\\(aq) != NULL)\n"
+" seals |= F_SEAL_SEAL;\n"
+msgstr ""
+" if (strchr(seals_arg, \\(aqg\\(aq) != NULL)\n"
+" seals |= F_SEAL_GROW;\n"
+" if (strchr(seals_arg, \\(aqs\\(aq) != NULL)\n"
+" seals |= F_SEAL_SHRINK;\n"
+" if (strchr(seals_arg, \\(aqw\\(aq) != NULL)\n"
+" seals |= F_SEAL_WRITE;\n"
+" if (strchr(seals_arg, \\(aqS\\(aq) != NULL)\n"
+" seals |= F_SEAL_SEAL;\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:31
+#: build/C/man2/memfd_create.2:429
#, no-wrap
-msgid "B<int mcheck(void (*>I<abortfunc>B<)(enum mcheck_status >I<mstatus>B<));>\n"
+msgid ""
+" if (fcntl(fd, F_ADD_SEALS, seals) == -1)\n"
+" errExit(\"fcntl\");\n"
+" }\n"
msgstr ""
+" if (fcntl(fd, F_ADD_SEALS, seals) == -1)\n"
+" errExit(\"fcntl\");\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:33
+#: build/C/man2/memfd_create.2:432
#, no-wrap
-msgid "B<int mcheck_pedantic(void (*>I<abortfunc>B<)(enum mcheck_status >I<mstatus>B<));>\n"
+msgid ""
+" /* Keep running, so that the file created by memfd_create()\n"
+" continues to exist */\n"
msgstr ""
+" /* Keep running, so that the file created by memfd_create()\n"
+" continues to exist */\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:35
+#: build/C/man2/memfd_create.2:434
#, no-wrap
-msgid "B<void mcheck_check_all(void);>\n"
-msgstr "B<void mcheck_check_all(void);>\n"
+msgid " pause();\n"
+msgstr " pause();\n"
-#. type: Plain text
-#: build/C/man3/mcheck.3:37
+#. type: SS
+#: build/C/man2/memfd_create.2:438
#, no-wrap
-msgid "B<enum mcheck_status mprobe(void *>I<ptr>B<);>\n"
-msgstr "B<enum mcheck_status mprobe(void *>I<ptr>B<);>\n"
+msgid "Program source: t_get_seals.c"
+msgstr "プログラムのソース: t_get_seals.c"
#. type: Plain text
-#: build/C/man3/mcheck.3:50
+#: build/C/man2/memfd_create.2:447
+#, no-wrap
msgid ""
-"The B<mcheck>() function installs a set of debugging hooks for the B<malloc>"
-"(3) family of memory-allocation functions. These hooks cause certain "
-"consistency checks to be performed on the state of the heap. The checks can "
-"detect application errors such as freeing a block of memory more than once "
-"or corrupting the bookkeeping data structures that immediately precede a "
-"block of allocated memory."
+"#include E<lt>sys/memfd.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
msgstr ""
+"#include E<lt>sys/memfd.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:62
+#: build/C/man2/memfd_create.2:456
+#, no-wrap
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 "
-"difficult to ensure, linking the program with I<-mcheck> inserts an implicit "
-"call to B<mcheck>() (with a NULL argument) before the first call to a "
-"memory-allocation function."
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+" unsigned int seals;\n"
msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
+" unsigned int seals;\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:70
+#: build/C/man2/memfd_create.2:461
+#, no-wrap
msgid ""
-"The B<mcheck_pedantic>() function is similar to B<mcheck>(), but performs "
-"checks on all allocated blocks whenever one of the memory-allocation "
-"functions is called. This can be very slow!"
+" if (argc != 2) {\n"
+" fprintf(stderr, \"%s /proc/PID/fd/FD\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
msgstr ""
+" if (argc != 2) {\n"
+" fprintf(stderr, \"%s /proc/PID/fd/FD\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:77
+#: build/C/man2/memfd_create.2:465
+#, no-wrap
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 "
-"beforehand."
+" fd = open(argv[1], O_RDWR);\n"
+" if (fd == -1)\n"
+" errExit(\"open\");\n"
msgstr ""
+" fd = open(argv[1], O_RDWR);\n"
+" if (fd == -1)\n"
+" errExit(\"open\");\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:90
+#: build/C/man2/memfd_create.2:469
+#, no-wrap
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 "
-"argument, I<mstatus>, that indicates what type of inconsistency was "
-"detected. If I<abortfunc> is NULL, a default function prints an error "
-"message on I<stderr> and calls B<abort>(3)."
+" seals = fcntl(fd, F_GET_SEALS);\n"
+" if (seals == -1)\n"
+" errExit(\"fcntl\");\n"
msgstr ""
+" seals = fcntl(fd, F_GET_SEALS);\n"
+" if (seals == -1)\n"
+" errExit(\"fcntl\");\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:102
+#: build/C/man2/memfd_create.2:480
+#, no-wrap
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 "
-"called beforehand (otherwise B<mprobe>() returns B<MCHECK_DISABLED>)."
+" printf(\"Existing seals:\");\n"
+" if (seals & F_SEAL_SEAL)\n"
+" printf(\" SEAL\");\n"
+" if (seals & F_SEAL_GROW)\n"
+" printf(\" GROW\");\n"
+" if (seals & F_SEAL_WRITE)\n"
+" printf(\" WRITE\");\n"
+" if (seals & F_SEAL_SHRINK)\n"
+" printf(\" SHRINK\");\n"
+" printf(\"\\en\");\n"
msgstr ""
+" printf(\"Existing seals:\");\n"
+" if (seals & F_SEAL_SEAL)\n"
+" printf(\" SEAL\");\n"
+" if (seals & F_SEAL_GROW)\n"
+" printf(\" GROW\");\n"
+" if (seals & F_SEAL_WRITE)\n"
+" printf(\" WRITE\");\n"
+" if (seals & F_SEAL_SHRINK)\n"
+" printf(\" SHRINK\");\n"
+" printf(\"\\en\");\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:110
-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/man2/memfd_create.2:483
#, no-wrap
-msgid "B<MCHECK_DISABLED> (B<mprobe>() only)"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man3/mcheck.3:115
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
-#, no-wrap
-msgid "B<MCHECK_OK> (B<mprobe>() only)"
+" /* Code to map the file and access the contents of the\n"
+" resulting mapping omitted */\n"
msgstr ""
+" /* Code to map the file and access the contents of the\n"
+" resulting mapping omitted */\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:118
-msgid "No inconsistency detected."
-msgstr ""
+#: build/C/man2/memfd_create.2:493
+msgid "B<fcntl>(2), B<ftruncate>(2), B<mmap>(2), B<shmget>(2), B<shm_open>(3)"
+msgstr "B<fcntl>(2), B<ftruncate>(2), B<mmap>(2), B<shmget>(2), B<shm_open>(3)"
-#. type: TP
-#: build/C/man3/mcheck.3:118
+#. type: TH
+#: build/C/man2/s390_pci_mmio_write.2:25
#, no-wrap
-msgid "B<MCHECK_HEAD>"
-msgstr "B<MCHECK_HEAD>"
+msgid "S390_PCI_MMIO_WRITE"
+msgstr "S390_PCI_MMIO_WRITE"
-#. type: Plain text
-#: build/C/man3/mcheck.3:121
-#, fuzzy
-#| msgid "No memory could be allocated for segment overhead."
-msgid "Memory preceding an allocated block was clobbered."
-msgstr "セグメントの管理情報 (overhead) に割り当てるメモリがなかった。"
-
-#. type: TP
-#: build/C/man3/mcheck.3:121
+#. type: TH
+#: build/C/man2/s390_pci_mmio_write.2:25
#, no-wrap
-msgid "B<MCHECK_TAIL>"
-msgstr "B<MCHECK_TAIL>"
+msgid "2015-01-15"
+msgstr "2015-01-15"
#. type: Plain text
-#: build/C/man3/mcheck.3:124
-#, fuzzy
-#| msgid "No memory could be allocated for segment overhead."
-msgid "Memory following an allocated block was clobbered."
-msgstr "セグメントの管理情報 (overhead) に割り当てるメモリがなかった。"
+#: build/C/man2/s390_pci_mmio_write.2:29
+msgid ""
+"s390_pci_mmio_write, s390_pci_mmio_read - transfer data to/from PCI MMIO "
+"memory page"
+msgstr ""
-#. type: TP
-#: build/C/man3/mcheck.3:124
+#. type: Plain text
+#: build/C/man2/s390_pci_mmio_write.2:32
#, no-wrap
-msgid "B<MCHECK_FREE>"
-msgstr "B<MCHECK_FREE>"
+msgid "B<#include E<lt>asm/unistd.hE<gt>>\n"
+msgstr "B<#include E<lt>asm/unistd.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:128
-msgid "A block of memory was freed twice."
+#: build/C/man2/s390_pci_mmio_write.2:35
+#, no-wrap
+msgid ""
+"B<int s390_pci_mmio_write(unsigned long >I<mmio_addr>B<,>\n"
+"B< void *>I<user_buffer>B<, size_t >I<length>B<);>\n"
msgstr ""
+"B<int s390_pci_mmio_write(unsigned long >I<mmio_addr>B<,>\n"
+"B< void *>I<user_buffer>B<, size_t >I<length>B<);>\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:133
+#: build/C/man2/s390_pci_mmio_write.2:38
+#, no-wrap
msgid ""
-"B<mcheck>() and B<mcheck_pedantic>() return 0 on success, or -1 on error."
+"B<int s390_pci_mmio_read(unsigned long >I<mmio_addr>B<,>\n"
+"B< void *>I<user_buffer>B<, size_t >I<length>B<);>\n"
msgstr ""
+"B<int s390_pci_mmio_read(unsigned long >I<mmio_addr>B<,>\n"
+"B< void *>I<user_buffer>B<, size_t >I<length>B<);>\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:144
+#: build/C/man2/s390_pci_mmio_write.2:57
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 at least glibc 2.0"
+"The B<s390_pci_mmio_write>() system call writes I<length> bytes of data "
+"from the user-space buffer I<user_buffer> to the PCI MMIO memory location "
+"specified by I<mmio_addr>. The B<s390_pci_mmio_read>() system call reads "
+"I<length> bytes of data from the PCI MMIO memory location specified by "
+"I<mmio_addr> to the user-space buffer I<user_buffer>."
msgstr ""
-#. But is MALLOC_CHECK_ slower?
#. type: Plain text
-#: build/C/man3/mcheck.3:158
+#: build/C/man2/s390_pci_mmio_write.2:68
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 "
-"errors to be detected. But, using B<MALLOC_CHECK_> does not require the "
-"application to be relinked."
+"These system calls must be used instead of the simple assignment or data-"
+"transfer operations that are used to access the PCI MMIO memory areas mapped "
+"to user space on the Linux System z platform. The address specified by "
+"I<mmio_addr> must belong to a PCI MMIO memory page mapping in the caller's "
+"address space, and the data being written or read must not cross a page "
+"boundary. The I<length> value cannot be greater than the system page size."
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:165
+#: build/C/man2/s390_pci_mmio_write.2:77
msgid ""
-"The program below calls B<mcheck>() with a NULL argument and then frees the "
-"same block of memory twice. The following shell session demonstrates what "
-"happens when running the program:"
+"On success, B<s390_pci_mmio_write>() and B<s390_pci_mmio_read>() return "
+"0. On error, -1 is returned and I<errno> is set to one of the error codes "
+"listed below."
msgstr ""
+"成功すると、 B<s390_pci_mmio_write>() と B<s390_pci_mmio_read>() は 0 を返"
+"す。 エラーの場合、-1 を返し、 I<errno> に以下のリストにあるエラーコードのい"
+"ずれかを設定する。"
#. type: Plain text
-#: build/C/man3/mcheck.3:170
-#, no-wrap
-msgid ""
-"$B< ./a.out>\n"
-"About to free\n"
+#: build/C/man2/s390_pci_mmio_write.2:83
+msgid "The address in I<mmio_addr> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:174
-#, no-wrap
+#: build/C/man2/s390_pci_mmio_write.2:87
msgid ""
-"About to free a second time\n"
-"block freed twice\n"
-"Aborted (core dumped)\n"
+"I<user_buffer> does not point to a valid location in the caller's address "
+"space."
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:182
-#, no-wrap
-msgid ""
-"#include E<lt>stdlib.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>mcheck.hE<gt>\n"
+#: build/C/man2/s390_pci_mmio_write.2:92
+msgid "Invalid I<length> argument."
msgstr ""
-"#include E<lt>stdlib.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>mcheck.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:190
-#, no-wrap
-msgid ""
-" if (mcheck(NULL) != 0) {\n"
-" fprintf(stderr, \"mcheck() failed\\en\");\n"
+#: build/C/man2/s390_pci_mmio_write.2:95
+msgid "PCI support is not enabled."
msgstr ""
#. type: Plain text
-#: build/C/man3/mcheck.3:193
-#, no-wrap
-msgid ""
-" exit(EXIT_FAILURE);\n"
-" }\n"
+#: build/C/man2/s390_pci_mmio_write.2:98
+msgid "Insufficient memory."
msgstr ""
-" exit(EXIT_FAILURE);\n"
-" }\n"
#. type: Plain text
-#: build/C/man3/mcheck.3:195
-#, no-wrap
-msgid " p = malloc(1000);\n"
-msgstr " p = malloc(1000);\n"
+#: build/C/man2/s390_pci_mmio_write.2:100
+msgid "These system calls are available since Linux 3.19."
+msgstr "これらのシステムコールは Linux 3.19 以降で使用可能である。"
#. type: Plain text
-#: build/C/man3/mcheck.3:200
-#, no-wrap
+#: build/C/man2/s390_pci_mmio_write.2:103
msgid ""
-" fprintf(stderr, \"About to free\\en\");\n"
-" free(p);\n"
-" fprintf(stderr, \"\\enAbout to free a second time\\en\");\n"
-" free(p);\n"
+"This Linux-specific system call is available only on the s390 architecture. "
+"The required PCI support is available beginning with System z EC12."
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
-msgid "B<malloc>(3), B<mallopt>(3), B<mtrace>(3)"
-msgstr "B<malloc>(3), B<mallopt>(3), B<mtrace>(3)"
+#: build/C/man2/s390_pci_mmio_write.2:107
+msgid ""
+"Glibc does not provide a wrapper for this system call, use B<syscall>(2) to "
+"call it."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/s390_pci_mmio_write.2:109
+msgid "B<syscall>(2)"
+msgstr "B<syscall>(2)"
+
+#~ msgid "System-wide limit on the number of pages of shared memory."
+#~ msgstr "共有メモリーのページ数のシステム全体での上限値。"
+
+#~ msgid ""
+#~ "Segment low boundary address multiple. Must be page aligned. For the "
+#~ "current implementation, the B<SHMLBA> value is B<PAGE_SIZE>."
+#~ msgstr ""
+#~ "セグメントの境界アドレスの最小倍数。ページ境界に合ってなければならない。 "
+#~ "現在の実装では B<SHMLBA> の値は B<PAGE_SIZE> である。"
+
+#~ msgid "B<IPC_CREAT | IPC_EXCL> was specified and the segment exists."
+#~ msgstr ""
+#~ "B<IPC_CREAT | IPC_EXCL> が指定されていたが、そのセグメントが既に存在する。"
+
+#~ msgid ""
+#~ "Assuming a 4kB page size, this formula yields (since Linux 2.4) the value "
+#~ "2^20 (2,097,152)."
+#~ msgstr ""
+#~ "4kB ページサイズと仮定すると、 (Linux 2.4 以降では) この式の結果は 2^20 "
+#~ "(2,097,152) になる。"
+
+#~ 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 ""
+#~ "共有メモリーセグメントのバイト単位の大きさの上限: 方針依存 (Linux では、こ"
+#~ "の上限値は I</proc/sys/kernel/shmmax> 経由で参照したり、変更したりでき"
+#~ "る)。"
+
+#~ msgid ""
+#~ "System wide maximum number of shared memory segments: implementation "
+#~ "dependent (currently 4096, was 128 before Linux 2.3.99; on Linux, this "
+#~ "limit can be read and modified via I</proc/sys/kernel/shmmni>)."
+#~ msgstr ""
+#~ "システム全体の共有メモリーの数の上限: 実装依存 (現在は 4096。Linux 2.3.99 "
+#~ "より前では 128。 Linux では、この上限値は I</proc/sys/kernel/shmmni> 経由"
+#~ "で参照したり、変更したりできる)。"
+
+#~ msgid ""
+#~ "A valid segment identifier, I<shmid>, is returned on success, -1 on error."
+#~ msgstr ""
+#~ "成功した場合、有効なセグメント識別子 I<shmid> が返される。エラーの場合、 "
+#~ "-1 が返される。"
-#~ msgid "2012-02-27"
-#~ msgstr "2012-02-27"
+#~ msgid ""
+#~ "The ARM architecture needs 64-bit arguments to be aligned in a suitable "
+#~ "pair of registers. On this architecture, the call signature of "
+#~ "B<posix_fadvise>() is flawed, since it forces a register to be wasted as "
+#~ "padding between the I<fd> and I<len> arguments. Therefore, since Linux "
+#~ "2.6.14, ARM defines a different system call that orders the arguments "
+#~ "suitably:"
+#~ msgstr ""
+#~ "ARM アーキテクチャーでは、64 ビットの引き数は適切なレジスターの組に割り当"
+#~ "て\n"
+#~ "る必要がある。このアーキテクチャーでは、B<posix_fadvise>() の呼び出し方"
+#~ "に\n"
+#~ "は欠陥があり、それはこのシステムコールでは引き数 I<fd> と I<len> の間の\n"
+#~ "パディング (詰めもの) でレジスターが一つ消費されてしまうというものであ"
+#~ "る。\n"
+#~ "そのため、Linux 2.6.14 以降では、ARM では引き数が適切な順序になった別の\n"
+#~ "システムコールが定義されている。"
+
+#~ 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 glibc."
+#~ msgstr ""
+#~ "上記の点以外は、このシステムコールの動作は B<posix_fadvise>() と全く\n"
+#~ "同じである。このシステムコールに対するライブラリによるサポートは glibc\n"
+#~ "では提供されていない。"
#~ msgid ""
#~ "The I<mode> is not supported by the file system containing the file "
#~ "I<fd> が参照するファイルを含むファイルシステムが I<mode> をサポートしてい"
#~ "ない。"
-#~ msgid "2012-03-22"
-#~ msgstr "2012-03-22"
-
#~ msgid ""
-#~ "The function B<mtrace>() installs handlers for B<malloc>(3), B<realloc>"
-#~ "(3) and B<free>(3). The function B<muntrace>() disables these handlers."
+#~ "The function B<mtrace>() installs handlers for B<malloc>(3), "
+#~ "B<realloc>(3) and B<free>(3). The function B<muntrace>() disables "
+#~ "these handlers."
#~ msgstr ""
-#~ "関数 B<mtrace>() は、 B<malloc>(3), B<realloc>(3), B<free>(3) のハンドラ"
-#~ "ã\82\92çµ\84ã\81¿è¾¼ã\82\80ã\80\82 é\96¢æ\95° B<muntrace>() ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\8fã\83³ã\83\89ã\83©を解除する。"
+#~ "関数 B<mtrace>() は、 B<malloc>(3), B<realloc>(3), B<free>(3) のハンド"
+#~ "ã\83©ã\83¼ã\82\92çµ\84ã\81¿è¾¼ã\82\80ã\80\82 é\96¢æ\95° B<muntrace>() ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\83¼を解除する。"
#~ msgid ""
-#~ "The environment variable B<MALLOC_TRACE> defines a file where B<mtrace>"
-#~ "() writes its output. This file must be writable to the user or "
-#~ "B<mtrace>() will do nothing. If the file is not empty it will be "
+#~ "The environment variable B<MALLOC_TRACE> defines a file where "
+#~ "B<mtrace>() writes its output. This file must be writable to the user "
+#~ "or B<mtrace>() will do nothing. If the file is not empty it will be "
#~ "truncated."
#~ msgstr ""
#~ "環境変数 B<MALLOC_TRACE> は B<mtrace>() が出力を書き出すファイルを指定す"
-#~ "る。 ユーザが書き込み権限を持つファイルを指定しなければならない。 書き込み"
-#~ "権限がない場合、 B<mtrace>() は何もしない。 ファイルが空でない場合、ファ"
-#~ "イルの元の内容を上書きする。"
-
-#~ msgid "These are GNU extensions."
-#~ msgstr "この関数は GNU 拡張である。"
+#~ "る。 ユーザーが書き込み権限を持つファイルを指定しなければならない。 書き込"
+#~ "み権限がない場合、 B<mtrace>() は何もしない。 ファイルが空でない場合、"
+#~ "ファイルの元の内容を上書きする。"
#~ msgid ""
#~ "The output of B<mtrace>() will be ASCII but not in a friendly format. "
#~ "有用である。 ファイルサイズが I<offset>+I<len> よりも小さい場合であって"
#~ "も、ブロックの前もっての割り当てにより (B<stat>(2) が返す) ファイルサイズ"
#~ "は変更されることはない。"
-
-#, fuzzy
-#~| msgid "The buffer referred to by I<map> is not accessible."
-#~ msgid ""
-#~ "The file referred to by I<fd> is marked immutable (see B<chattr>(1))."
-#~ msgstr "The buffer referred to by I<map> is not accessible."
-
-#~ msgid ""
-#~ "(Linux 2.6.9 and later) the caller was not privileged (B<CAP_IPC_LOCK>) "
-#~ "and its B<RLIMIT_MEMLOCK> soft resource limit was 0."
-#~ msgstr ""
-#~ "(Linux 2.6.9 以降) 呼び出し元は特権 (B<CAP_IPC_LOCK>) を持たず、ソフト資"
-#~ "源制限 B<RLIMIT_MEMLOCK> が 0 である。"
-
-#~ msgid ""
-#~ "(Linux 2.6.8 and earlier) The calling process has insufficient privilege "
-#~ "to call B<munlockall>(). Under Linux the B<CAP_IPC_LOCK> capability is "
-#~ "required."
-#~ msgstr ""
-#~ "(Linux 2.6.8 以前) 呼び出し元プロセスが B<munlockall>() を呼び出すのに必"
-#~ "要な特権を所有していなかった。 Linux では、 B<CAP_IPC_LOCK> ケーパビリティ"
-#~ "が必要である。"
-
-#~ msgid ""
-#~ "B<#define _XOPEN_SOURCE 600>\n"
-#~ "B<#include E<lt>fcntl.hE<gt>>\n"
-#~ msgstr ""
-#~ "B<#define _XOPEN_SOURCE 600>\n"
-#~ "B<#include E<lt>fcntl.hE<gt>>\n"
-
-#~ msgid ""
-#~ "B<posix_fadvise>() appeared in kernel 2.5.60. Glibc support has been "
-#~ "provided since version 2.2."
-#~ msgstr ""
-#~ "B<posix_fadvise>() はカーネル 2.5.60 で登場した。 glibc でのサポートは "
-#~ "glibc バージョン 2.2 以降で行われている。"
-
-#~ msgid ""
-#~ "B<#define _GNU_SOURCE>\n"
-#~ "B<#include E<lt>fcntl.hE<gt>>\n"
-#~ msgstr ""
-#~ "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
-#~ "B<#include E<lt>fcntl.hE<gt>>\n"