Right, I was thinking about another issue that isn't really applicable here, so I decided to specify 'binary' stream without following that thought all the way through.
Checking the standard though, fseek could work on text streams too, so that is not the problem.
It tends to fail when stdin is connected to a device like a terminal or a pipe. However, it tells you that by returning a non-zero value, which should certainly be checked for and handled if your program depends on the success of the reposition.
Rather, it is a possible problem in practice for stdin.
My motive is to encourage people to think about the issue in a different way rather than to promote the use of gets; to look at how gets is used and take issue with that rather than the fact that it is simply used.
It would have been more convincing if you had say, used fseek on stdin as a working (or not working) proof of concept.
The implication is that it has the potential to inflict harm, right?
I wasn't talking about firing it at the light switch - Just flicking the switch with it.