ftell (stdin) verursacht einen ungültigen Suchfehler

Der folgende Code gibt "Illegal seek" aus:

#include <stdio.h>
#include <errno.h>
#include <string.h>

int main() {
    errno = 0;
    getchar();
    getchar();
    getchar();
    ftell( stdin );
    printf( "%s\n", strerror(errno) );
}

Dies tritt auf, wenn ich "cat script | ./a.out" sowie "./a.out" ausführe. Das Problem ist natürlich mit ftell. Meine Frage ist: warum tritt das auf? Ich würde denken, dass stdin suchbar sein kann. fseek verursacht ebenfalls den gleichen Fehler. Wenn stdin nicht suchbar ist, kann ich auf irgendeine Weise das Gleiche tun?

Vielen Dank für Ihre Antworten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage