21 lines
542 B
C++
21 lines
542 B
C++
// 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(getc_unlocked(fp) != EOF);
|
|
// POSIX guarantees being able to ungetc() at least one character
|
|
// NB: ungetc_unlocked is apparently not present
|
|
assert(ungetc('X', fp) != EOF);
|
|
// check whether ungetc() works with getc_unlocked()
|
|
assert(getc_unlocked(fp) == 'X');
|
|
|
|
assert(!fclose(fp));
|
|
return 0;
|
|
}
|