Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.os.linux.development.apps > #849

Re: warning: implicit declaration of function ‘mkstemp’

From Geoff Clare <geoff@clare.See-My-Signature.invalid>
Newsgroups comp.os.linux.development.apps
Subject Re: warning: implicit declaration of function ‘mkstemp’
Date 2017-08-07 13:47 +0100
Message-ID <434m5e-q6o.ln1@ID-313840.user.individual.net> (permalink)
References <olurnd$3b6$1@solani.org> <eum5hqF1ldqU1@mid.uni-berlin.de>

Show all headers | View raw


Jens Thoms Toerring wrote:

> Philipp Klaus Krause <pkk@spth.de> wrote:
>> When using mkstemp() in my C source, I get the gcc warning:
> 
>> warning: implicit declaration of function ‘mkstemp’
> 
>> Why?
>> I use gcc 6.4.0 on a debian GNU/Linux system.
>> <stdlib.h> is included. I use other POSIX functions  (such as
>> ftruncate() and open()) that are not part of ISO C in the same source
>> file, but get a warning for mkstemp() only.
>> I tried using -D_POSIX_C_SOURCE=200112L, but still get the warning.
> 
> Try '-D_POSIX_C_SOURCE=200809' instead. That's what's required
> according to the up-to-date version of the man page (see
> <http://man7.org/linux/man-pages/man3/mkstemp.3.html>), and it
> works for me. The (somewhat out-dated) man page on my system
> also claims that '_POSIX_C_SOURCE=200112L' would do the the
> trick, but it doesn't.

In SUSv3/POSIX.1-2001 the mkstemp() function was part of the XSI option.
Some UNIX/POSIX systems make XSI symbols visible with
_POSIX_C_SOURCE=200112 but some don't.  To be sure of making it visible
you need _XOPEN_SOURCE=600 (instead of, or as well as, setting
_POSIX_C_SOURCE=200112).

In SUSv4/POSIX.1-2008 mkstemp() was made mandatory, which is why
_POSIX_C_SOURCE=200809 works (on up-to-date systems). Of course,
_XOPEN_SOURCE=700 would also work.

-- 
Geoff Clare <netnews@gclare.org.uk>

Back to comp.os.linux.development.apps | Previous | NextPrevious in thread | Find similar


Thread

warning: implicit declaration of function ‘mkstemp’ Philipp Klaus Krause <pkk@spth.de> - 2017-08-03 11:51 +0200
  Re: warning: implicit declaration of function ‘mkstemp’ Richard Kettlewell <invalid@invalid.invalid> - 2017-08-03 11:08 +0100
    Re: warning: implicit declaration of function ‘mkstemp’ Philipp Klaus Krause <pkk@spth.de> - 2017-08-03 12:30 +0200
  Re: warning: implicit declaration of function ‘mkstemp’ jt@toerring.de (Jens Thoms Toerring) - 2017-08-05 15:11 +0000
    Re: warning: implicit declaration of function ‘mkstemp’ Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2017-08-07 13:47 +0100

csiph-web