> On Mar 14, 2017, at 4:08 PM, John McCall <rjmcc...@apple.com> wrote: > >> On Mar 14, 2017, at 7:00 PM, Carl Hoefs <newsli...@autonomy.caltech.edu> >> wrote: >> macOS 10.12.3, Xcode 8.2.1, ObjC >> >> I'm finding the following line to be problematic: >> >> NSMutableData *myData = [NSMutableData dataWithLength:80]; >> >> I assume this ends up calling calloc(3) to allocate and zero out the data. >> But for some reason, it's always setting errno to a seemingly random nonzero >> value, generally either errno=2 (ENOENT) or errno=22 (EINVAL). >> >> Now that I know it does this, I can make accommodations for it, but is this >> expected behavior? > > I don't know why it's happening here, but unless you're calling a function > that specifically documents its errno behavior, you should assume that every > call you make might randomly overwrite errno with gibberish.
The POSIX standard specifically states that errno's value is undefined almost everywhere and can be arbitrarily changed by almost anything. http://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html <http://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html> -- Greg Parker gpar...@apple.com <mailto:gpar...@apple.com> Runtime Wrangler _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com