EXIT_SUCCESS and EXIT_FAILURE would be clearer for return codes from main()