diff options
Diffstat (limited to 'bin/sleep/sleep.c')
| -rw-r--r-- | bin/sleep/sleep.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/bin/sleep/sleep.c b/bin/sleep/sleep.c new file mode 100644 index 00000000..7b4ce77a --- /dev/null +++ b/bin/sleep/sleep.c @@ -0,0 +1,24 @@ +#include <err.h> +#include <stdlib.h> +#include <time.h> +#include <unistd.h> + +int main(int argc, char **argv) +{ + double seconds; + struct timespec ts; + + if (argc != 2) { + write(1, "usage: sleep seconds\n", 21); + return 0; + } + + seconds = strtod(argv[1], NULL); + ts.tv_sec = (time_t)seconds; + ts.tv_nsec = (long)((seconds - (double)ts.tv_sec) * 1e9); + + if (nanosleep(&ts, NULL) < 0) + err(1, "nanosleep"); + + return 0; +} |
