#include <stdio.h> int main (int argc, char *argv[]) { char buf[100]; int result = 0; if (ferror (stdin) != 0) { fputs ("error bit set for stdin at startup\n", stdout); result = 1; } if (fgets (buf, sizeof buf, stdin) != buf) { fputs ("fgets with existing input has problem\n", stdout); result = 1; } if (ferror (stdin) != 0) { fputs ("error bit set for stdin after setup\n", stdout); result = 1; } if (fputc ('a', stdin) != EOF) { fputs ("fputc to stdin does not terminate with an error\n", stdout); result = 1; } if (ferror (stdin) == 0) { fputs ("error bit not set for stdin after fputc\n", stdout); result = 1; } clearerr (stdin); if (ferror (stdin) != 0) { fputs ("error bit set for stdin after clearerr\n", stdout); result = 1; } return result; }