don't include errno.h, it defines a variable