>-- snip >#include <err.h> >#include <errno.h> >#include <stdlib.h> > >int main(void) >{ > int *i; > warn("errno: %d", errno); > i = malloc(sizeof(int)); > warn("errno: %d", errno); > free(i); > return (errno); >} >-- snip
Your code is wrong. There's only a useful value in errno after something fails. This would be more reasonable: int main(void) { int *i; /* warn("errno: %d", errno); -- no error, nothing to check */ i = malloc(sizeof(int)); if(!i)warn("errno: %d", errno); /* only warn on failure */ free(i); /* -- free ignores NULL argument */ return (0); /* -- free cannot fail, no meaningful errno */ } This isn't specific to FreeBSD, by the way. It's ANSI C. Regards, John Levine, jo...@iecc.com, Primary Perpetrator of "The Internet for Dummies", Please consider the environment before reading this e-mail. http://jl.ly _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"