12409Sdlw /* 2*2577Sdlw char id_fputc[] = @(#)fputc_.c 1.2"; 32409Sdlw * 42409Sdlw * write a character to a logical unit bypassing formatted I/O 52409Sdlw * 62409Sdlw * calling sequence: 72409Sdlw * integer fputc 82409Sdlw * ierror = fputc (unit, char) 92409Sdlw * where: 102409Sdlw * char will be sent to the logical unit 112409Sdlw * ierror will be 0 if successful; a system error code otherwise. 122409Sdlw */ 132409Sdlw 142409Sdlw #include "../libI77/fiodefs.h" 152409Sdlw #include "../libI77/f_errno.h" 162409Sdlw 172409Sdlw extern unit units[]; /* logical units table from iolib */ 182409Sdlw 192409Sdlw long fputc_(u, c, clen) 202409Sdlw long *u; char *c; long clen; 212409Sdlw { 222409Sdlw int i; 232409Sdlw 242409Sdlw if (*u < 0 || *u >= MXUNIT) 25*2577Sdlw return((long)(errno=F_ERUNIT)); 262409Sdlw if (!units[*u].ufd) 272409Sdlw return((long)(errno=F_ERNOPEN)); 282409Sdlw putc (*c, units[*u].ufd); 292409Sdlw if (ferror(units[*u].ufd)) 302409Sdlw { 312409Sdlw i = errno; 322409Sdlw clearerr(units[*u].ufd); 332409Sdlw return((long)i); 342409Sdlw } 352409Sdlw return(0L); 362409Sdlw } 37