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 (;;) {