diff options
Diffstat (limited to 'bin/sleep')
| -rw-r--r-- | bin/sleep/Kbuild | 3 | ||||
| -rw-r--r-- | bin/sleep/sleep.c | 24 |
2 files changed, 27 insertions, 0 deletions
diff --git a/bin/sleep/Kbuild b/bin/sleep/Kbuild new file mode 100644 index 00000000..2ab7c332 --- /dev/null +++ b/bin/sleep/Kbuild @@ -0,0 +1,3 @@ +bin-$(BIN_SLEEP) := sleep +obj-y += sleep.o +libs-y := $(srctree)/lib/libc/libc.a 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; +} |
