
Dear Julien,
In message CADF714Y4ufr4SuoF83tgyJxyhx1gdKYKw9E6JWtYhHfM3NxzUg@mail.gmail.com you wrote:
So if we add support to read from stdin instead from a file where we pass the file name as an argument, we should probably do this in a consistent way. It would be a frustrating experience to the end user to learn that he can use stdin here but not there - so we would probably have to rework all these use cases? And how should we implement this - would a file name "-" mean stdin (1), or should we simply pass "/dev/stdin" as file argument (2)?
With (1), we need to change more code, while (2) could probably be pretty transparent.
If I understand well, your proposition for (1) would be to use mmap(2) for everything, but use read(2) for the special case "-".
I did not mean to suggest this. I probably makes more sense to use the same code everywhere.
I'm not sure it is a good idea. The standard input can be handled like any other file. And note the input could also be a named pipe, that you won't be able to mmap. With the patch proposed, it would work just fine.
But the patch would only be a part of the implementation. I think we should see it all together to be able to compare approaches.
Also, in the case you're having several files as input, they will be consumed one after the other. So if the input is "-d /dev/stdin:/dev/stdin:/dev/stdin", you can give the three files through stdin.
Ouch. That would be error prone as hell. Not all things that can be done should be done ;-)
Best regards,
Wolfgang Denk