OSDN Git Service

Update releases for LDP v3.76
[linuxjm/LDP_man-pages.git] / release / man3 / cmsg.3
index 7957eaf..9842c7f 100644 (file)
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH CMSG 3 2008\-11\-20 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1999 Shouichi Saito
+.\"    all rights reserved.
+.\" Translated Mon Jul 26 21:58:26 JST 1999
+.\"    by Shouichi Saito <ss236rx@ymg.urban.ne.jp>
+.\" Proofed Tue Aug 17 1999 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\"
+.TH CMSG 3 2014\-12\-31 Linux "Linux Programmer's Manual"
 .SH 名前
 CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- 補助データにアクセスする。
 .SH 書式
@@ -81,7 +88,7 @@ struct cmsghdr {
 この補助データモデルは、POSIX.1g draft, 4.4BSD\-Lite, RFC\ 2292 に 記述されている IPv6 advanced
 API, そして SUSv2 に準拠している。 \fBCMSG_ALIGN\fP()  は Linux の拡張である。
 .SH 注意
-移æ¤\8dæ\80§ã\81®ã\81\9fã\82\81ã\81«ã\80\81è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81«ã\81¯ã\80\81 ã\81\93ã\81\93ã\81§è¿°ã\81¹ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9eã\82¯ã\83­ã\82\92使ã\81\86ã\81 ã\81\91ã\81«ã\81\99べきである。 \fBCMSG_ALIGN\fP()  は Linux
+移æ¤\8dæ\80§ã\81®ã\81\9fã\82\81ã\81«ã\80\81è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81«ã\81¯ã\80\81 ã\81\93ã\81\93ã\81§è¿°ã\81¹ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9eã\82¯ã\83­ã\81 ã\81\91ã\82\92使ã\81\86べきである。 \fBCMSG_ALIGN\fP()  は Linux
 での拡張であり、移植性を考えたプログラムでは使うべきではない。
 .PP
 Linux では \fBCMSG_LEN\fP(), \fBCMSG_DATA\fP(), \fBCMSG_ALIGN\fP()  は定数式である
@@ -122,11 +129,16 @@ if (cmsg == NULL) {
 struct msghdr msg = {0};
 struct cmsghdr *cmsg;
 int myfds[NUM_FD]; /* Contains the file descriptors to pass. */
-char buf[CMSG_SPACE(sizeof myfds)];  /* ancillary data buffer */
+union {
+    /* ancillary data buffer, wrapped in a union in order to ensure it is
+       suitably aligned */
+    char buf[CMSG_SPACE(sizeof myfds)];
+    struct cmsghdr align;
+} u;
 int *fdptr;
 
-msg.msg_control = buf;
-msg.msg_controllen = sizeof buf;
+msg.msg_control = u.buf;
+msg.msg_controllen = sizeof u.buf;
 cmsg = CMSG_FIRSTHDR(&msg);
 cmsg\->cmsg_level = SOL_SOCKET;
 cmsg\->cmsg_type = SCM_RIGHTS;
@@ -143,6 +155,6 @@ msg.msg_controllen = cmsg\->cmsg_len;
 .PP
 RFC\ 2292
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。