using errno correctly