From owner-cvs-include Mon Mar 31 07:12:11 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id HAA22029 for cvs-include-outgoing; Mon, 31 Mar 1997 07:12:11 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id HAA21996; Mon, 31 Mar 1997 07:11:15 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.5/8.6.9) id BAA12303; Tue, 1 Apr 1997 01:10:13 +1000 Date: Tue, 1 Apr 1997 01:10:13 +1000 From: Bruce Evans Message-Id: <199703311510.BAA12303@godzilla.zeta.org.au> To: peter@freefall.freebsd.org, peter@spinner.dialix.com Subject: Re: cvs commit: src/include unistd.h Cc: cvs-all@freefall.freebsd.org, CVS-committers@freefall.freebsd.org, cvs-include@freefall.freebsd.org Sender: owner-cvs-include@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> Modified: include unistd.h >> Log: >> Declare lchown().. > >BTW, can anybody tell me the difference between the first list of >prototypes and the second? It almost looks like the first are syscalls >and the second are library functions, but it's far from that now. Or are >the first set "standards based" functions, while the second set are >"other"? The first list is supposed to be for POSIX.1. It was broken recently by adding getopt stuff. glibc is more careful about this. It declares getopt stuff if __USE_POSIX2 is defined. __USE_POSIX2 is defined if defined _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE Here _POSIX_C_SOURCE and _XOPEN_SOURCE are user defines. They are also defined by default under certain complicated but usually true conditions, essentially if something like _POSIX_SOURCE is defined, brokenly also if __STRICT_ANSI__ is defined (so that you can't compile much with `gcc -ansi' without having to know to much about these macros). Is this clear? :-) Bruce