home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / src / stdio / c / printf < prev    next >
Text File  |  1994-03-08  |  1KB  |  76 lines

  1. static char sccs_id[] = "@(#) printf.c 1.1 " __DATE__ " HJR";
  2.  
  3. /* printf.c (c) Copyright 1990 H.Rogers */
  4.  
  5. #include <stdlib.h>
  6. #include <stdarg.h>
  7. #include <stdio.h>
  8.  
  9. __STDIOLIB__
  10.  
  11. int
  12. vsprintf (register char *buf, register const char *format,
  13.       register va_list ap)
  14. {
  15.   return (__printf (buf, format, ap));
  16. }
  17. int
  18. vfprintf (register FILE * f, register const char *format, register va_list ap)
  19. {
  20.   register int n;
  21.  
  22.   if (!__pbuf)
  23.     if (!(__pbuf = malloc (BUFSIZ << 1)))
  24.       return (-1);
  25.   n = __printf (__pbuf, format, ap);
  26.   if ((n = __fwrite (f, __pbuf, n)) < 0)
  27.     return (-1);
  28.  
  29.   if (f->o_ptr > f->o_base && !!(f->flag & _IOLBF) && __flsbuf (-1, f) < 0)
  30.     return (-1);
  31.  
  32.   return (n);
  33. }
  34. int
  35. vprintf (register const char *format, register va_list ap)
  36. {
  37.   return (vfprintf (stdout, format, ap));
  38. }
  39.  
  40. int
  41. sprintf (register char *buf, const char *format,...)
  42. {
  43.   va_list ap;
  44.   register int r;
  45.  
  46.   va_start (ap, format);
  47.   r = vsprintf (buf, format, ap);
  48.   va_end (ap);
  49.  
  50.   return (r);
  51. }
  52. int
  53. fprintf (register FILE * f, const char *format,...)
  54. {
  55.   va_list ap;
  56.   register int r;
  57.  
  58.   va_start (ap, format);
  59.   r = vfprintf (f, format, ap);
  60.   va_end (ap);
  61.  
  62.   return (r);
  63. }
  64. int
  65. printf (const char *format,...)
  66. {
  67.   va_list ap;
  68.   register int r;
  69.  
  70.   va_start (ap, format);
  71.   r = vfprintf (stdout, format, ap);
  72.   va_end (ap);
  73.  
  74.   return (r);
  75. }
  76.