Re: readv() return and errno

From: Alex Riesen (Alexander.Riesen@synopsys.com)
Date: Tue Mar 19 2002 - 08:27:59 EST


On Fri, Mar 15, 2002 at 01:54:26PM -0800, Jim Hollenback wrote:
> In doing some testing on the project I'm working on I came
> across something that is causing a bit of confusion on my part.
>
> According to readv(2) EINVAL is returned for an invalid
> argument. The examples given were count might be greater than
> MAX_IOVEC or zero. The test case I am working with has count = 0
> and I get return of 0 and errno 0 instead of the expected -1
> and errno EINVAL.
>
> Am I missing something?

http://www.opengroup.org/onlinepubs/007904975/
"The Open Group Base Specifications Issue 6", IEEE Std 1003.1-2001:

 The readv() function may fail if:

 [EINVAL]
 The iovcnt argument was less than or equal to 0, or greater than {IOV_MAX}.

Notice the "may"? From the same document:

 may

 Describes a feature or behavior that is optional for an implementation
 that conforms to IEEE Std 1003.1-2001. An application should not rely on
 the existence of the feature or behavior. An application that relies on
 such a feature or behavior cannot be assured to be portable across
 conforming implementations.

 To avoid ambiguity, the opposite of may is expressed as need not,
 instead of may not.
    
So the 0 there just mean nothing, exactly what you get.
 
-alex
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Mar 23 2002 - 22:00:18 EST