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/