From 885f5974cdf65b59415837ae97f5a14ef1350670 Mon Sep 17 00:00:00 2001 From: Kacper Date: Tue, 9 Dec 2025 19:20:15 +0100 Subject: feat: add gzip and new headers --- bin/echo/Kbuild | 5 +++++ bin/echo/echo | Bin 0 -> 3480 bytes bin/echo/echo.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 bin/echo/Kbuild create mode 100755 bin/echo/echo create mode 100644 bin/echo/echo.c (limited to 'bin/echo') diff --git a/bin/echo/Kbuild b/bin/echo/Kbuild new file mode 100644 index 00000000..919423fd --- /dev/null +++ b/bin/echo/Kbuild @@ -0,0 +1,5 @@ +bin-y := echo + +libs-y += $(srctree)/lib/libc/libc.a + +obj-y += echo.o diff --git a/bin/echo/echo b/bin/echo/echo new file mode 100755 index 00000000..c9bbb0df Binary files /dev/null and b/bin/echo/echo differ diff --git a/bin/echo/echo.c b/bin/echo/echo.c new file mode 100644 index 00000000..b8e5bbe0 --- /dev/null +++ b/bin/echo/echo.c @@ -0,0 +1,30 @@ +#include +#include +#include + +int main(int argc, char **argv) +{ + if (argc <= 1) + return 0; + + struct iovec iov[2 * argc - 2]; + int iovcnt = 0; + + for (int i = 1; i < argc; i++) { + iov[iovcnt].iov_base = argv[i]; + iov[iovcnt].iov_len = strlen(argv[i]); + iovcnt++; + + if (i < argc - 1) { + iov[iovcnt].iov_base = " "; + iov[iovcnt].iov_len = 1; + iovcnt++; + } + } + + iov[iovcnt].iov_base = "\n"; + iov[iovcnt].iov_len = 1; + iovcnt++; + + return writev(STDOUT_FILENO, iov, iovcnt) < 0 ? 1 : 0; +} -- cgit v1.2.3