Then please tell me why PPPIOCNEWUNIT is only defined in linux/if_ppp.h and not net/if_ppp.h which is still true for glibc-2.3.2. And please don't tell me to ask the glibc folks. There are inconsistencies between kernel headers and userland headers which force the inclusion of kernel headers in userland applications.
I think I do.
In order to use kernel interfaces you _need_ to include kernel include
files.
False. You need to include the glibc kernel headers.