From cbde5993107646f14ae85382e474c4e7216263cb Mon Sep 17 00:00:00 2001 From: Lieuwe Rooijakkers Date: Sun, 8 Sep 2024 17:46:53 +0200 Subject: mslaap --- src/mslaap.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/mslaap.c diff --git a/src/mslaap.c b/src/mslaap.c new file mode 100644 index 0000000..4b32974 --- /dev/null +++ b/src/mslaap.c @@ -0,0 +1,46 @@ +#include +#include +#include +#include + +#include "util/option.h" + +static const char *usage_string = + "Gebruik: %s n" + "\n" + "Slaap voor het gegeven aantal microseconden.\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_mslaap(int argc, char **argv) { + char **args = parse_options(argc, argv); + + if (*args == NULL) { + fprintf(stderr, "mslaap: geen hoeveelheid microseconden opgegeven\n"); + return 1; + } + + errno = 0; + const useconds_t us = strtoul(*args, NULL, 10); + if (errno != 0) { + fprintf(stderr, "mslaap: ongeldig aantal microseconden opgegeven\n"); + return 1; + } + + if (usleep(us) != 0) { + fprintf(stderr, "mslaap: fout tijdens slapen\n"); + return 1; + } + return 0; +} -- cgit v1.2.3-70-g09d2