Hacker News new | ask | show | jobs
by zonidjan 2381 days ago
> 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.

gcc does this. It appears to be why /proc files don't work. gcc sees that stat calls it a 'regular file' and 0 bytes long, and actually performs a read() syscall with a length of 0.

> 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.

gcc probably does this. (It would explain why /dev/stdin works)