Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


mqueue2.h
01: /* Checking macros for mq functions.
02:    Copyright (C) 2007, 2011 Free Software Foundation, Inc.
03:    This file is part of the GNU C Library.
04: 
05:    The GNU C Library is free software; you can redistribute it and/or
06:    modify it under the terms of the GNU Lesser General Public
07:    License as published by the Free Software Foundation; either
08:    version 2.1 of the License, or (at your option) any later version.
09: 
10:    The GNU C Library is distributed in the hope that it will be useful,
11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13:    Lesser General Public License for more details.
14: 
15:    You should have received a copy of the GNU Lesser General Public
16:    License along with the GNU C Library; if not, write to the Free
17:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18:    02111-1307 USA.  */
19: 
20: #ifndef _FCNTL_H
21: # error "Never include <bits/mqueue2.h> directly; use <mqueue.h> instead."
22: #endif
23: 
24: /* Check that calls to mq_open with O_CREAT set have an appropriate third and fourth
25:    parameter.  */
26: extern mqd_t mq_open (__const char *__name, int __oflag, ...)
27:      __THROW __nonnull ((1));
28: extern mqd_t __mq_open_2 (__const char *__name, int __oflag)
29:      __THROW __nonnull ((1));
30: extern mqd_t __REDIRECT_NTH (__mq_open_alias, (__const char *__name,
31:                                                int __oflag, ...), mq_open)
32:      __nonnull ((1));
33: __errordecl (__mq_open_wrong_number_of_args,
34:              "mq_open can be called either with 2 or 4 arguments");
35: __errordecl (__mq_open_missing_mode_and_attr,
36:              "mq_open with O_CREAT in second argument needs 4 arguments");
37: 
38: __extern_always_inline mqd_t
39: __NTH (mq_open (__const char *__name, int __oflag, ...))
40: {
41:   if (__va_arg_pack_len () != 0 && __va_arg_pack_len () != 2)
42:     __mq_open_wrong_number_of_args ();
43: 
44:   if (__builtin_constant_p (__oflag))
45:     {
46:       if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () == 0)
47:         {
48:           __mq_open_missing_mode_and_attr ();
49:           return __mq_open_2 (__name, __oflag);
50:         }
51:       return __mq_open_alias (__name, __oflag, __va_arg_pack ());
52:     }
53: 
54:   if (__va_arg_pack_len () == 0)
55:     return __mq_open_2 (__name, __oflag);
56: 
57:   return __mq_open_alias (__name, __oflag, __va_arg_pack ());
58: }
59: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/