The question is whether, as you suspect, it does
test < test.in > test.out
Or whether it does
cat test.in | test | check-results
In the first case, stdin is a regular file, so that
- Read will always return the number of bytes requested, unless it encounters EOF.
- You can mmap stdin (or lseek in it, although that's probably not useful).
If stdout is a regular file, the same applies (but to write instead of read). lseek, again, would probably not be useful unless the problem had some very odd requirements.