writev(2) and IOV_MAX confusion

David Schultz das at FreeBSD.ORG
Mon Feb 16 02:32:56 PST 2004


On Mon, Feb 16, 2004, Andre Oppermann wrote:
> The is a big confusion over the correct definition of IOV_MAX in relation
> to writev(2).  The man page for write(2)/writev(2) says you only have to
> include <sys/uio.h> to get everything.  Unfortunatly IOV_MAX is not (no
> longer?) defined there but in <sys/syslimits.h>.  Both Net- and OpenBSD
> still define it in <sys/uio.h> but NetBSD only for compatibility.  For
> them the correct place seems to be <sys/syslimits.h> too but only when
> _XOPEN_SOURCE is defined.
> 
> What is the correct place for IOV_MAX?  And what has to be adjusted, the
> man page or the .h files?

In POSIX, you get IOV_MAX only by including <limits.h>, and
FreeBSD's <limits.h> includes <sys/syslimits.h>, so the code is
correct here.  As far as I can tell, the man page doesn't say
anything about what you have to include to get IOV_MAX, but I
suppose it could be more clear.


More information about the freebsd-standards mailing list