comments
save errno in warn()