alway use perror for error output