Hi all!
I’ve accidentally found that “getc” and “sysread” behave differently
after “exec”
getc does not get remaining data from the STDIN but sysread does it
bdimych@mint-vbox ~ $
bdimych@mint-vbox ~ $
bdimych@mint-vbox ~ $ echo -n ab | ruby -e “p STDIN.getc; exec ‘ruby’,
‘-e’, ‘p STDIN.getc’”
“a”
nil
bdimych@mint-vbox ~ $
bdimych@mint-vbox ~ $ echo -n ab | ruby -e “p STDIN.sysread(1); exec
‘ruby’, ‘-e’, ‘p STDIN.sysread(1)’”
“a”
“b”
bdimych@mint-vbox ~ $
bdimych@mint-vbox ~ $
bdimych@mint-vbox ~ $
why so? where is “b” in the first case?