home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / DMAKE38C.ZIP / UNIX / BSD43 / VF / VFPRINTF.C < prev   
C/C++ Source or Header  |  1992-01-23  |  1KB  |  49 lines

  1. /*
  2.  * Copyright (c) 1988 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that the above copyright notice and this paragraph are
  7.  * duplicated in all such forms and that any documentation,
  8.  * advertising materials, and other materials related to such
  9.  * distribution and use acknowledge that the software was developed
  10.  * by the University of California, Berkeley.  The name of the
  11.  * University may not be used to endorse or promote products derived
  12.  * from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  */
  17.  
  18. #if defined(LIBC_SCCS) && !defined(lint)
  19. static char sccsid[] = "@(#)vfprintf.c    5.2 (Berkeley) 6/27/88";
  20. #endif /* LIBC_SCCS and not lint */
  21.  
  22. #include <stdio.h>
  23. #include <varargs.h>
  24.  
  25. int
  26. vfprintf(iop, fmt, ap)
  27.     FILE *iop;
  28.     char *fmt;
  29.     va_list ap;
  30. {
  31.     int len;
  32.     char localbuf[BUFSIZ];
  33.  
  34.     if (iop->_flag & _IONBF) {
  35.         iop->_flag &= ~_IONBF;
  36.         iop->_ptr = iop->_base = localbuf;
  37.         len = _doprnt(fmt, ap, iop);
  38.         (void) fflush(iop);
  39.         iop->_flag |= _IONBF;
  40.         iop->_base = NULL;
  41.         iop->_bufsiz = 0;
  42.         iop->_cnt = 0;
  43.     } else
  44.         len = _doprnt(fmt, ap, iop);
  45.  
  46.     return (ferror(iop) ? EOF : len);
  47. }
  48.  
  49.