diff options
author | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-03-02 12:51:02 +0100 |
---|---|---|
committer | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-03-02 12:51:02 +0100 |
commit | 67812f624013eaa6f39baea397be976ad8994700 (patch) | |
tree | d7a0074659cb86941aad42a21e7e22be402f9cc2 | |
parent | 62135c100b835a2a22f5876c1d5d03ba69d454f3 (diff) | |
download | fases-67812f624013eaa6f39baea397be976ad8994700.tar.gz fases-67812f624013eaa6f39baea397be976ad8994700.zip |
core/cat: Fix bug - see description
`cat` used to not concatenate at all when ran like this:
$ cat
It did read standard input, but did not output anything to
standard output. fdopen() was used on STDIN_FILENO when it
shouldn't.
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
-rw-r--r-- | core/cat.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -49,7 +49,8 @@ int cat(int fildes, int unbuffered) { if (unbuffered) while ((length = read(fildes, s, 4096)) > 0) write(STDOUT_FILENO, s, length); else { - filstr = fdopen(fildes, "r"); + if (fildes != STDIN_FILENO) filstr = fdopen(fildes, "r"); + else filstr = stdin; while ((length = fread(s, 4096, 1, filstr)) > 0) fwrite(s, length, 1, stdout); } |