diff options
Diffstat (limited to 'man3/cmsg.3')
-rw-r--r-- | man3/cmsg.3 | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/man3/cmsg.3 b/man3/cmsg.3 index b218baf2b..3ca7d1d44 100644 --- a/man3/cmsg.3 +++ b/man3/cmsg.3 @@ -1,14 +1,9 @@ -.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>. +.\" SPDX-License-Identifier: Linux-man-pages-1-para .\" -.\" %%%LICENSE_START(VERBATIM_ONE_PARA) -.\" Permission is granted to distribute possibly modified copies -.\" of this page provided the header is included verbatim, -.\" and in case of nontrivial modification author and date -.\" of the modification is added to the header. -.\" %%%LICENSE_END +.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>. .\" .\" $Id: cmsg.3,v 1.8 2000/12/20 18:10:31 ak Exp $ -.TH CMSG 3 2022-10-29 "Linux man-pages 6.03" +.TH CMSG 3 2023-07-15 "Linux man-pages 6.05.01" .SH NAME CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- access ancillary data .SH LIBRARY @@ -160,27 +155,9 @@ For more information on the .IR msghdr , see .BR recvmsg (2). -.SH STANDARDS -This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, -the IPv6 advanced API described in RFC\ 2292 and SUSv2. -.BR CMSG_FIRSTHDR (), -.BR CMSG_NXTHDR (), -and -.BR CMSG_DATA () -are specified in POSIX.1-2008. -.BR CMSG_SPACE () -and -.BR CMSG_LEN () -.\" https://www.austingroupbugs.net/view.php?id=978#c3242 -will be included in the next POSIX release (Issue 8). -.PP -.BR CMSG_ALIGN () -is a Linux extension. -.SH NOTES +.SH VERSIONS For portability, ancillary data should be accessed using only the macros described here. -.BR CMSG_ALIGN () -is a Linux extension and should not be used in portable programs. .PP In Linux, .BR CMSG_LEN (), @@ -190,6 +167,30 @@ and are constant expressions (assuming their argument is constant), meaning that these values can be used to declare the size of global variables. This may not be portable, however. +.SH STANDARDS +.TP +.BR CMSG_FIRSTHDR () +.TQ +.BR CMSG_NXTHDR () +.TQ +.BR CMSG_DATA () +POSIX.1-2008. +.TP +.BR CMSG_SPACE () +.TQ +.BR CMSG_LEN () +.TQ +.BR CMSG_ALIGN () +Linux. +.SH HISTORY +This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, +the IPv6 advanced API described in RFC\ 2292 and SUSv2. +.PP +.BR CMSG_SPACE () +and +.BR CMSG_LEN () +.\" https://www.austingroupbugs.net/view.php?id=978#c3242 +will be included in the next POSIX release (Issue 8). .SH EXAMPLES This code looks for the .B IP_TTL @@ -200,9 +201,9 @@ option in a received ancillary buffer: struct msghdr msgh; struct cmsghdr *cmsg; int received_ttl; - +\& /* Receive auxiliary data in msgh */ - +\& for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL; cmsg = CMSG_NXTHDR(&msgh, cmsg)) { if (cmsg\->cmsg_level == IPPROTO_IP @@ -211,7 +212,7 @@ for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL; break; } } - +\& if (cmsg == NULL) { /* Error: IP_TTL not enabled or small buffer or I/O error */ } @@ -237,7 +238,7 @@ union { /* Ancillary data buffer, wrapped in a union char buf[CMSG_SPACE(sizeof(myfds))]; struct cmsghdr align; } u; - +\& msg.msg_iov = &io; msg.msg_iovlen = 1; msg.msg_control = u.buf; |