21 lines · cpp
1// RUN: %clangxx -g %s -o %t && %run %t2 3#include <assert.h>4#include <stdio.h>5 6int main(int argc, char **argv) {7 FILE *fp = fopen(argv[0], "r");8 assert(fp);9 10 // the file should be at least one character long, always11 assert(getc_unlocked(fp) != EOF);12 // POSIX guarantees being able to ungetc() at least one character13 // NB: ungetc_unlocked is apparently not present14 assert(ungetc('X', fp) != EOF);15 // check whether ungetc() works with getc_unlocked()16 assert(getc_unlocked(fp) == 'X');17 18 assert(!fclose(fp));19 return 0;20}21