diff options
| author | Kacper <kacper@mail.openlinux.dev> | 2025-12-15 02:01:33 +0100 |
|---|---|---|
| committer | Kacper <kacper@mail.openlinux.dev> | 2025-12-15 02:01:59 +0100 |
| commit | 3b3325f761b09ebbfef04c44eed546cc4fdeb329 (patch) | |
| tree | aa19ea259bcda2410c2b3dd4512f19fb85aeaf8f /bin | |
| parent | 15d2df7811ef3cb79cc3e501d0d5f9b993d42bea (diff) | |
Added aio and eventfd support, along with sleep and yes utilities
Diffstat (limited to 'bin')
| -rw-r--r-- | bin/Kbuild | 3 | ||||
| -rw-r--r-- | bin/pwd/pwd.c | 3 | ||||
| -rw-r--r-- | bin/sleep/Kbuild | 3 | ||||
| -rw-r--r-- | bin/sleep/sleep.c | 24 | ||||
| -rw-r--r-- | bin/yes/Kbuild | 3 | ||||
| -rw-r--r-- | bin/yes/yes.c | 22 |
6 files changed, 57 insertions, 1 deletions
@@ -1,8 +1,11 @@ +obj-y += basename/ obj-y += clear/ obj-y += echo/ obj-y += false/ obj-y += free/ obj-y += gzip/ obj-y += pwd/ +obj-y += sleep/ obj-y += sync/ obj-y += true/ +obj-y += yes/ diff --git a/bin/pwd/pwd.c b/bin/pwd/pwd.c index 564b22e7..fef433cf 100644 --- a/bin/pwd/pwd.c +++ b/bin/pwd/pwd.c @@ -1,10 +1,11 @@ +#include "stddef.h" #include <err.h> #include <limits.h> +#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #include <sys/uio.h> -#include <stdio.h> #include <unistd.h> int main(int argc, char **argv) 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; +} diff --git a/bin/yes/Kbuild b/bin/yes/Kbuild new file mode 100644 index 00000000..be596906 --- /dev/null +++ b/bin/yes/Kbuild @@ -0,0 +1,3 @@ +bin-y := yes +obj-y := yes.o +libs := $(srctree)/lib/libc/libc.a diff --git a/bin/yes/yes.c b/bin/yes/yes.c new file mode 100644 index 00000000..0ddb2da1 --- /dev/null +++ b/bin/yes/yes.c @@ -0,0 +1,22 @@ +#include <string.h> +#include <sys/uio.h> + +int main(int argc, char **argv) +{ + char *str; + struct iovec iov[2]; + + str = (argc > 1) ? argv[1] : "y"; + + iov[0].iov_base = str; + iov[0].iov_len = strlen(str); + + iov[1].iov_base = "\n"; + iov[1].iov_len = 1; + + while (1) { + writev(1, iov, 2); + } + + return 0; +} |
