__P is basically a macro that lets the declaration work with both K&R-style and ANSI C compilers. I haven't looked at it directly but it's something like
#if (K_AND_R) #define __P(x) x #elif (ANSI_C) #define __P(x) #endif __const is likewise a macro, probably to work with compilers which don't like const. There are info pages for the C Preprocessor if you're intested in syntax. I doubt there's any documentation per se for these conventions used by the C library headers. [EMAIL PROTECTED] wrote: > Could someone explain what the following line, which is taken from > /usr/include/errno.h, means : > > extern void perror __P ((__const char* __s)); > > As I understand it, it means that perror is defined in an external file and > returns a void type. But what are the __P, and __const ? And why there are 2 > sets of brackets, and not only 1 ? > Where does these constructs being documented ? -- Jens B. Jorgensen [EMAIL PROTECTED] -- Unsubscribe? mail -s unsubscribe [EMAIL PROTECTED] < /dev/null