From 31f44481f3e3fef9b3a92d28ae84a872cf20e3a9 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 3 Feb 2019 12:38:03 +0100 Subject: [PATCH] Add /dev/{stdin,stdout,stderr} as symlinks to /proc/self/fd/{0,1,2} Also change /bin/cat to open /dev/stdin if no arguments are provided. --- Kernel/sync.sh | 3 +++ Userland/cat.cpp | 9 +++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Kernel/sync.sh b/Kernel/sync.sh index 447f40ed3f..bb5a353045 100755 --- a/Kernel/sync.sh +++ b/Kernel/sync.sh @@ -13,6 +13,9 @@ mknod mnt/dev/psaux c 10 1 mknod mnt/dev/ptmx c 5 2 mkdir mnt/dev/pts mknod mnt/dev/gui_events c 66 1 +ln -s /proc/self/fd/0 mnt/dev/stdin +ln -s /proc/self/fd/1 mnt/dev/stdout +ln -s /proc/self/fd/2 mnt/dev/stderr cp -vR ../Base/* mnt/ chown -vR 100:100 mnt/users/anon cp -v ../Userland/sh mnt/bin/sh diff --git a/Userland/cat.cpp b/Userland/cat.cpp index 4a5162a41a..5454d7e982 100644 --- a/Userland/cat.cpp +++ b/Userland/cat.cpp @@ -8,13 +8,10 @@ int main(int argc, char** argv) { - if (argc != 2) { - printf("usage: cat \n"); - return 1; - } - int fd = open(argv[1], O_RDONLY); + const char* input_file = argc > 1 ? argv[1] : "/dev/stdin"; + int fd = open(input_file, O_RDONLY); if (fd == -1) { - printf("failed to open %s: %s\n", argv[1], strerror(errno)); + printf("failed to open %s: %s\n", input_file, strerror(errno)); return 1; } for (;;) {