#include #include #include #include #include "util/option.h" static const char *usage_string = "Gebruik: %s \n" "\n" "Slaap voor het gegeven aantal seconden.\n" "\n" " -h Toon deze hulptekst\n" " -V Toon versienummer\n"; static char** parse_options(int argc, char **argv) { const struct option_spec spec[] = { {'h', OPTION_HELPUSAGE(usage_string)}, {'V', OPTION_VERSION()}, OPTION_SPEC_END }; return option_parse(argc, argv, spec); } int entry_slaap(int argc, char **argv) { char **args = parse_options(argc, argv); if (*args == NULL) { fprintf(stderr, "slaap: geen hoeveelheid seconden opgegeven\n"); return 1; } errno = 0; const double secs = strtod(*args, NULL); if (errno != 0) { fprintf(stderr, "slaap: ongeldig aantal seconden opgegeven\n"); return 1; } if (secs < 0) { fprintf(stderr, "slaap: negatief tijdsinterval opgegeven\n"); return 1; } if (usleep(secs * 1e6 + 0.5) != 0) { fprintf(stderr, "slaap: fout tijdens slapen\n"); return 1; } return 0; }