// RUN: %clangxx -g %s -o %t && %run %t #include <assert.h> #include <stdio.h> int main(int argc, char **argv) { FILE *fp = fopen(argv[0], "r"); assert(fp); // the file should be at least one character long, always assert(fgetc(fp) != EOF); // POSIX guarantees being able to ungetc() at least one character assert(ungetc('X', fp) != EOF); // check whether ungetc() worked assert(getc(fp) == 'X'); assert(!fclose(fp)); return 0; }