I am currently trying to write a program that will read from either stdin from a file (using <) or from piped input. I have the portion using the < working because i am able to read the st_size of the file and create a read() call accordingly:
My question now is how can I use some call of read to read single characters into a buffer? Every attempt I make doesnt seem to work correctly...
Ive tried using read() to read 1 character from stdin into an integer, and then setting buffer to those integers, but this doesnt seem to work. I usually get garbled output using this method, like so:
tag@ubuntu:~/Desktop/ComSci/HW CL 6$ printf 'XR' | ./binsort 2 | od -c
0000000 \b \0 2 \n
All this program was supposed to do was print XR, not these 4 random characters.
Basically, my question is how can I read a variable size piped stdin with read() into a buffer? I must use read() in order to do this...