fputc.c (501B)
1 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <unistd.h> 5 #include <errno.h> 6 7 #include "ioprivate.h" 8 9 int fputc(int c, FILE *f) 10 { 11 c &= 0xff; 12 13 // Make sure we have output buffer space for one character. 14 if (f->opos >= f->omax) { 15 if (__getospace(f) < 0) 16 return EOF; 17 } 18 19 // Add the character to the buffer 20 f->obuf[f->opos++] = c; 21 22 // Flush the buffer if appropriate. 23 if ((f->bufmode == _IOLBF && c == '\n') || (f->bufmode == _IONBF)) { 24 if (fflush(f) < 0) 25 return EOF; 26 } 27 28 return c; 29 } 30