.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH POSIX_MEMALIGN 3 2012\-03\-23 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 2001 Akihiro MOTOKI
+.\" all rights reserved.
+.\" Translated 2001-11-05, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2003-09-05, Akihiro MOTOKI, catch up to v1.60
+.\" Updated 2005-11-19, Akihiro MOTOKI
+.\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24
+.\" Updated 2012-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2012-05-08, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-03-26, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH POSIX_MEMALIGN 3 2013\-09\-02 GNU "Linux Programmer's Manual"
.SH 名前
posix_memalign, aligned_alloc, memalign, valloc, pvalloc \- アラインメント
-されたメモリの割り当てを行う
+ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <stdlib.h>\fP
_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
.ad b
.br
-((非標準の) ヘッダファイル \fI<malloc.h>\fP も
+((é\9d\9eæ¨\99æº\96ã\81®) ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<malloc.h>\fP ã\82\82
\fBvalloc\fP() の宣言も公開する。機能検査マクロは不要である。
.RE
.PD
.SH 説明
.\" glibc does this:
-関数 \fBposix_memalign\fP() は、 \fIsize\fP バイトのメモリを割り当て、割り当てられたメモリのアドレスを \fI*memptr\fP
-に設定する。 割り当てられたメモリのアドレスは \fIalignment\fP の倍数になっているはずである。 \fIalignment\fP は 2
-のべき乗で、かつ \fIsizeof(void *)\fP の倍数でなければならない。 \fIsize\fP が 0 の場合、
-\fBposix_memalign\fP() は NULL か一意なポインタ値を返す。 このポインタ値は、後で \fBfree\fP(3)
-に問題なく渡すことができる。
+関数 \fBposix_memalign\fP() は、 \fIsize\fP バイトのメモリーを割り当て、割り当てられたメモリーのアドレスを
+\fI*memptr\fP に設定する。 割り当てられたメモリーのアドレスは \fIalignment\fP の倍数になっているはずである。
+\fIalignment\fP は 2 のべき乗で、かつ \fIsizeof(void\ *)\fP の倍数でなければならない。 \fIsize\fP が 0 の場合、
+\fI*memptr\fP には NULL か一意なポインター値が書かれる。 このポインター値は、後で \fBfree\fP(3) に問題なく渡すことができる。
.\" The behavior of memalign() for size==0 is as for posix_memalign()
.\" but no standards govern this.
-廃止された関数である \fBmemalign\fP() は、 \fIsize\fP バイトのメモリを割り当て、
-å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªのアドレスは \fIalignment\fP
+å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b \fBmemalign\fP() ã\81¯ã\80\81 \fIsize\fP ã\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¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªã\83¼のアドレスは \fIalignment\fP
の倍数になっているはずである。 \fIalignment\fP は 2 のべき乗でなければならない。
関数 \fBaligned_alloc\fP() は \fBmemalign\fP() と同じだが、\fIsize\fP が \fIalignment\fP
の倍数でなければならないという追加の制限がある点が異なる。
-å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b \fBvalloc\fP() ã\81¯ \fIsize\fP ã\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¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。
-メモリのアドレスはページサイズの倍数になっているはずである。 これは \fImemalign(sysconf(_SC_PAGESIZE),size)\fP
+å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b \fBvalloc\fP() ã\81¯ \fIsize\fP ã\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¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81®å\80\8dæ\95°ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¯ã\81\9aã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ \fImemalign(sysconf(_SC_PAGESIZE),size)\fP
と等価である。
廃止された関数 \fBpvalloc\fP() は \fBvalloc\fP() と同様だが、
割り当てられるサイズがシステムのページサイズの倍数に切り上げられる。
-これらの関数はいずれもメモリのゼロクリアを行わない。
+ã\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
.SH 返り値
\fBaligned_alloc\fP(), \fBmemalign\fP(), \fBvalloc\fP(), \fBpvalloc\fP() は割り当てられた
-ã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 割り当てに失敗した場合は NULL を返す。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 割り当てに失敗した場合は NULL を返す。
\fBposix_memalign\fP() は成功した場合は 0 を返し、 失敗した場合は次のセクションに記載されたエラー値のいずれかを返す。
-\fIerrno\fP はセットされないことに注意すること。
+\fBposix_memalign\fP() の呼び出し後は \fIerrno\fP の値は不定である。
.SH エラー
.TP
\fBEINVAL\fP
-\fIalignment\fP 引き数が 2 のべき乗でなかったか、 \fIsizeof(void *)\fP の倍数でなかった。
+\fIalignment\fP 引き数が 2 のべき乗でなかったか、 \fIsizeof(void\ *)\fP の倍数でなかった。
.TP
\fBENOMEM\fP
-割り当て要求を満たすのに十分なメモリがなかった。
+å\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
.SH バージョン
関数 \fBmemalign\fP(), \fBvalloc\fP(), \fBpvalloc\fP() は
すべての Linux libc ライブラリで使用可能である。
.\"
関数 \fIaligned_alloc\fP() は C11 標準で規定されている。
-.SS ヘッダ
+.SS ヘッダー
\fBposix_memalign\fP() の宣言を \fI<stdlib.h>\fP で行うことに関しては、 皆の意見が一致している。
いくつかのシステムでは、 \fBmemalign\fP() は \fI<malloc.h>\fP ではなく
や glibc では \fI<malloc.h>\fP で宣言されており、 さらに適切な機能検査
マクロが定義された場合には \fI<stdlib.h>\fP でも宣言される(上記を参照)。
.SH 注意
-多くのシステムでは、アラインメントに関して制限がある。例えば、 ブロックデバイスに対するダイレクト I/O に使用するバッファには
+å¤\9aã\81\8fã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\97ã\81¦å\88¶é\99\90ã\81\8cã\81\82ã\82\8bã\80\82ä¾\8bã\81\88ã\81°ã\80\81 ã\83\96ã\83ã\83\83ã\82¯ã\83\87ã\83\90ã\82¤ã\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¯
アラインメントに関する制限がある。 POSIX では、どんなアラインメントが必要かを知るために
\fIpathconf(path,_PC_REC_XFER_ALIGN)\fP コールを規定している。ここで \fBposix_memalign\fP()
を使うと、この必要条件を満たすことができる。
.\" .IR free (3),
.\" but not to
.\" .IR realloc (3).
-POSIX では \fBposix_memalign\fP() によって獲得したメモリは \fBfree\fP(3) を
+POSIX ã\81§ã\81¯ \fBposix_memalign\fP() ã\81«ã\82\88ã\81£ã\81¦ç\8d²å¾\97ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¯ \fBfree\fP(3) ã\82\92
使って解放することができる必要がある。 いくつかのシステムでは
-\fBmemalign\fP() や\fBvalloc\fP() で割り当てられたメモリを再利用する手段が
+\fBmemalign\fP() ã\82\84\fBvalloc\fP() ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\86\8då\88©ç\94¨ã\81\99ã\82\8bæ\89\8b段ã\81\8c
提供されていない(なぜなら \fBfree\fP(3) に渡すことができるのは
-\fBmalloc\fP(3) から受け取ったポインタだけだが、例えば \fBmemalign\fP() は
+\fBmalloc\fP(3) ã\81\8bã\82\89å\8f\97ã\81\91å\8f\96ã\81£ã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81 ã\81\91ã\81 ã\81\8cã\80\81ä¾\8bã\81\88ã\81° \fBmemalign\fP() ã\81¯
\fBmalloc\fP(3) を呼び出し、得た値をアラインメントしてしまうからである)。
-glibc の実装では、 ここに述べた関数のいずれで獲得したメモリも
+glibc ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81 ã\81\93ã\81\93ã\81«è¿°ã\81¹ã\81\9fé\96¢æ\95°ã\81®ã\81\84ã\81\9aã\82\8cã\81§ç\8d²å¾\97ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\82
\fBfree\fP(3) で再利用することができる。
-glibc の \fBmalloc\fP(3) は常に 8 バイトにアラインメントされたメモリアドレスを
+glibc ã\81® \fBmalloc\fP(3) ã\81¯å¸¸ã\81« 8 ã\83\90ã\82¤ã\83\88ã\81«ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92
返すので、ここで述べた関数が必要になるのは 8 バイトよりも大きなアラインメント
が必要な場合だけである。
.SH 関連項目
\fBbrk\fP(2), \fBgetpagesize\fP(2), \fBfree\fP(3), \fBmalloc\fP(3)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。