[Mono-devel-list] Mono.Posix Structuring

Joshua Tauberer tauberer at for.net
Fri Sep 24 07:42:01 EDT 2004


Jonathan Pryor wrote:
> Earlier (on IRC) I had brought up the "problem" of supporting the 64-bit
> Extended APIs.  For example, there's stat(2) and stat64().  The extended
> APIs are primarily useful for 32-bit platforms that support files larger
> than 2^31 bytes.

I agree with what you said.  #ifdef the c wrappers, create a new 
Mono.Posix library.

I'd strongly suggest we .NET-ify the new wrappers, though.  The methods 
should be cased like other class library methods, and instead of 
returning error codes they should throw meaningful exceptions.  Then the 
return values can be used for something more helpful (like readlink 
returning the contents of the link, rather than putting it in an out 
parameter.)  I think it gives the library a best-of-both-worlds feel.

On the other hand, throwing an exception is probably too costly for some 
methods, like stat, where you can reasonably expect an error return 
value to occur often.

Is it worth having most of the methods throw exceptions, with a few 
quirky ones that don't?

-- 
- Joshua Tauberer

http://taubz.for.net

** Nothing Unreal Exists **





More information about the Mono-devel-list mailing list