What does this program print?

from C file I/O
C23 (GCC 13.3.0) beginner 3 min

What does this program print?

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

int main(void) {
    FILE *stream = tmpfile();
    if (stream == NULL) return 1;
    if (fputs("red\nblue\n", stream) == EOF ||
        fseek(stream, 0, SEEK_SET) != 0) return 1;

    char buffer[5];
    if (fgets(buffer, sizeof buffer, stream) == NULL) return 1;
    printf("%zu %d\n", strlen(buffer), buffer[3] == '\n');
    return fclose(stream) == EOF ? 1 : 0;
}
Open in playground
Report an error