Hello,

compiling C programs which use snprintf function with gcc option -std=c99 gives a warning about implicit declaration of snprintf.
Should snprintf be declared by including stdio.h when using C99 standard?

For example, with the following program in snprintf.c:

#include <stdio.h>

int main(void)
{
        char buf[10];
        snprintf(buf, 10, "%i", 0);
        return 0;
}

Compiling with gcc-3 and gcc-4 gives these warnings:

$ gcc-3 -std=c99 snprintf.c
snprintf.c: In function `main':
snprintf.c:6: warning: implicit declaration of function `snprintf'

$ gcc-4 -std=c99 snprintf.c
snprintf.c: In function ‘main’:
snprintf.c:6: warning: implicit declaration of function ‘snprintf’
snprintf.c:6: warning: incompatible implicit declaration of built-in function 
‘snprintf’

Here are package versions checked with cygcheck -c:
cygwin: 1.7.0-46
gcc-core: 3.4.4-999
gcc4-core: 4.3.2-2

It seems gcc defines __STRICT_ANSI__ when passed the -std=c99 option and the declaration of snprintf is enclosed in
#ifndef __STRICT_ANSI__
in stdio.h.

Markus Rinne

Cygwin Configuration Diagnostics

Current System Time: Sun Apr 19 21:24:58 2009



Windows XP Professional Ver 5.1 Build 2600 Service Pack 3



Path:   C:\cygwin-1.7\usr\local\bin

        C:\cygwin-1.7\bin

        C:\cygwin-1.7\bin

        C:\cygwin-1.7\usr\X11R6\bin

        C:\WINDOWS\system32

        C:\WINDOWS

        C:\WINDOWS\System32\Wbem

        C:\Program Files\ThinkPad\Yhteysapuohjelmat

        C:\Program Files\Common Files\Lenovo

        C:\Python25\

        C:\WINDOWS\system32\WindowsPowerShell\v1.0

        C:\Program Files\Lenovo\Client Security Solution

        C:\Program Files\Intel\WiFi\bin\

        C:\Program Files\TortoiseSVN\bin

        C:\ohjelmat\OgreCommandLineTools



Output from C:\cygwin-1.7\bin\id.exe (nontsec)

UID: 1009(Markus)         GID: 513(Ei mit��n)

0(root)                   544(J�rjestelm�nvalvojat) 545(K�ytt�j�t)

513(Ei mit��n)



Output from C:\cygwin-1.7\bin\id.exe (ntsec)

UID: 1009(Markus)         GID: 513(Ei mit��n)

0(root)                   544(J�rjestelm�nvalvojat) 545(K�ytt�j�t)

513(Ei mit��n)



SysDir: C:\WINDOWS\system32

WinDir: C:\WINDOWS



USER = 'Markus'

PWD = '/home/Markus'

HOME = '/home/Markus'



HOMEPATH = '\Documents and Settings\Markus'

MANPATH = '/usr/local/man:/usr/share/man:/usr/man:'

OGRE_HOME = 'c:\ohjelmat\OgreSDK'

APPDATA = 'C:\Documents and Settings\Markus\Application Data'

HOSTNAME = 'fidori'

RR = 'C:\Program Files\Lenovo\Rescue and Recovery'

TVTCOMMON = 'C:\Program Files\Common Files\Lenovo'

TERM = 'cygwin'

PROCESSOR_IDENTIFIER = 'x86 Family 6 Model 15 Stepping 13, GenuineIntel'

WINDIR = 'C:\WINDOWS'

TVTPYDIR = 'C:\Program Files\Common Files\Lenovo\Python24'

TVT = 'C:\Program Files\Lenovo'

OLDPWD = '/usr/bin'

USERDOMAIN = 'FIDORI'

OS = 'Windows_NT'

ALLUSERSPROFILE = 'C:\Documents and Settings\All Users'

LC_ALL = 'en_US.UTF-8'

!:: = '::\'

VS90COMNTOOLS = 'C:\ohjelmat\Microsoft Visual Studio 9.0\Common7\Tools\'

TEMP = '/cygdrive/c/DOCUME~1/Markus/LOCALS~1/Temp'

COMMONPROGRAMFILES = 'C:\Program Files\Common Files'

USERNAME = 'Markus'

PROCESSOR_LEVEL = '6'

TPCCommon = 'C:\PROGRA~1\THINKV~1\PrdCtr'

FP_NO_HOST_CHECK = 'NO'

SYSTEMDRIVE = 'C:'

USERPROFILE = 'C:\Documents and Settings\Markus'

PS1 = '\[\e]0;\w\a\]\n\[\e[32m\...@\h \[\e[33m\]\w\[\e[0m\]\n\$ '

LOGONSERVER = '\\FIDORI'

PROCESSOR_ARCHITECTURE = 'x86'

!C: = 'C:\cygwin-1.7\bin'

SWSHARE = 'C:\SWSHARE'

SHLVL = '1'

PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1'

HOMEDRIVE = 'C:'

PROMPT = '$P$G'

COMSPEC = 'C:\WINDOWS\system32\cmd.exe'

TMP = '/cygdrive/c/DOCUME~1/Markus/LOCALS~1/Temp'

SYSTEMROOT = 'C:\WINDOWS'

PRINTER = 'Microsoft XPS Document Writer'

CVS_RSH = '/bin/ssh'

PROCESSOR_REVISION = '0f0d'

INFOPATH = '/usr/local/info:/usr/share/info:/usr/info:'

PROGRAMFILES = 'C:\Program Files'

NUMBER_OF_PROCESSORS = '2'

SESSIONNAME = 'Console'

COMPUTERNAME = 'FIDORI'

_ = '/usr/bin/cygcheck.exe'



HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin

HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2

HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options

HKEY_CURRENT_USER\Software\Cygwin

HKEY_CURRENT_USER\Software\Cygwin\Program Options

HKEY_CURRENT_USER\Software\Cygwin\setup

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start
 Menu2\Programs\Cygwin

  (default) = (unsupported type)

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2

  (default) = '/cygdrive'

  cygdrive flags = 0x00000022

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/

  (default) = 'C:\cygwin'

  flags = 0x0000000a

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin

  (default) = 'C:\cygwin/bin'

  flags = 0x0000000a

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib

  (default) = 'C:\cygwin/lib'

  flags = 0x0000000a

HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options

HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin

HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\Program Options

HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\setup

  (default) = 'C:\cygwin-1.7'



obcaseinsensitive set to 1



c:  hd  NTFS     38154Mb  90% CP CS UN PA FC     Windows

d:  cd             N/A    N/A                    

e:  hd  FAT32     5386Mb  69% CP    UN           PALAUTUS

f:  cd             N/A    N/A                    



C:/cygwin-1.7      /          system  binmode

C:\cygwin-1.7\bin  /usr/bin   system  binmode

C:\cygwin-1.7\lib  /usr/lib   system  binmode

.                  /cygdrive  user    binmode,cygdrive



Found: C:\cygwin-1.7\bin\awk.exe

Found: C:\cygwin-1.7\bin\awk.exe

 -> C:\cygwin-1.7\bin\gawk.exe

Found: C:\cygwin-1.7\bin\bash.exe

Found: C:\cygwin-1.7\bin\bash.exe

Found: C:\cygwin-1.7\bin\cat.exe

Found: C:\cygwin-1.7\bin\cat.exe

Found: C:\cygwin-1.7\bin\cp.exe

Found: C:\cygwin-1.7\bin\cp.exe

Found: C:\cygwin-1.7\bin\cpp.exe

Found: C:\cygwin-1.7\bin\cpp.exe

 -> C:\cygwin-1.7\etc\alternatives\cpp

 -> C:\cygwin-1.7\bin\cpp-3.exe

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

Reply via email to