> Why is this surprising? Do programmers not read books anymore? [...]
No need to be condescending. Three reasons:
1) A sophisticated compiler might read the length of a file before loading it, so that it can allocate a buffer of the right size. Doesn't work with /dev/stdin.
2) Alternatively, it might read the file via mmap(). Doesn't work with /dev/stdin.
3) Furthermore, it might check whether the file is a regular file. If not, it is almost certainly not what the programmer had in mind.
No need to be condescending. Three reasons:
1) A sophisticated compiler might read the length of a file before loading it, so that it can allocate a buffer of the right size. Doesn't work with /dev/stdin.
2) Alternatively, it might read the file via mmap(). Doesn't work with /dev/stdin.
3) Furthermore, it might check whether the file is a regular file. If not, it is almost certainly not what the programmer had in mind.