This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: issetugid - not declared when _XOPEN_SOURCE is also defined


On 11/10/2016 4:10 AM, Corinna Vinschen wrote:
> On Nov  9 14:41, cyg Simple wrote:
>> On 11/9/2016 1:13 PM, cyg Simple wrote:
>>> The following program demonstrates the issue.  Should issetugid be
>>> declared with this scenario?
>>>
>>> /*****************************************************/
>>> #define _XOPEN_SOURCE 1  /* Causes declare warning */
>>> #define __BSD_VISIBLE 1
>>> #include <unistd.h>
>>>
>>> int main(int argc, char ** argv) {
>>> 	int result;
>>> 	result = issetugid();
>>> }
>>> /****************************************************/
>>>
>>
>> Because when _XOPEN_SOURCE is 1 _DEFAULT_SOURCE doesn't get set which
>> then #undef __BSD_VISIBLE and and sets it to 0.  See
>> /usr/include/sys/features.h.
>>
>> If I #define _DEFAULT_SOURCE 1 before the #include then the above code
>> works.  However, should it?
> 
> Yes.  You have a bug in your code.  Never (and I mean *never*) use the
> __foo_VISIBLE macros in your code.  Please read the long comment
> preceeding the visibility macro handling in /usr/include/sys/features.h.
> You want to use either _DEFAULT_SOURCE or _BSD_SOURCE (deprecated but
> probably available for another 100 years).
> 
> Also, note the description of the __foo_VISIBLE macros later in the file.
> It introduces the macros as "private" macros.

Yea, I figured that out.  I used __BSD_VISIBLE after looking at the
header for the function.  Thanks for your time; sorry for wasting it.

-- 
cyg Simple

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]