C headers: compiler specific vs library specific?
Posted
by
leonbloy
on Stack Overflow
See other posts from Stack Overflow
or by leonbloy
Published on 2014-06-12T14:56:14Z
Indexed on
2014/06/12
15:24 UTC
Read the original article
Hit count: 262
Is there some clear-cut distinction between standard C *.h
header files that are provided by the C compiler, as oppossed to those which are provided by a standard C library? Is there some list, or some standard locations?
Motivation: int this answer I got a while ago, regarding a missing unistd.h
in the latest TinyC compiler, the author argued that unistd.h
(contrarily to sys/unistd.h
) should not be provided by the compiler but by your C library.
I could not make much sense of that response (for one thing shouldn't that also apply to, say, stdio.h
?) but I'm still wondering about it. Is that correct? Where is some authoritative reference for this?
Looking in other compilers, I see that other "self contained" POSIX C compilers that are hosted in Windows (like the GCC toolchain that comes with MinGW, in several incarnations; or Digital Mars compiler), include all header files.
And in a standard Linux distribution (say, Centos 5.10) I see that the gcc
package provides a few header files (eg, stdbool.h
, syslimits.h
) in /usr/lib/gcc/i386-redhat-linux/4.1.1/include/
, and the glibc-headers
package provides the majority of the headers in /usr/include/
(including stdio.h
, /usr/include/unistd.h
and /usr/include/sys/unistd.h
).
So, in neither case I see support for the above claim.
© Stack Overflow or respective owner