home *** CD-ROM | disk | FTP | other *** search
/ Super Net 1 / SUPERNET_1.iso / PC / OTROS / MSDOS / WATTCP / UNZIPPED / MSWATTCP / SRC / SOCK_PRN.C < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-26  |  1.1 KB  |  60 lines

  1. /***
  2.  *
  3.  * File: sock_prn
  4.  *
  5.  * 27-Aug-93 lr    - final cleanup
  6.  * 18-Jun-92 lr
  7.  *
  8.  */
  9.  
  10. #define WATTCP_KERNEL
  11. #include <tcp.h>
  12.  
  13. #include <stdarg.h>
  14. #include <string.h>
  15.  
  16. /* socket based stuff */
  17.  
  18.  
  19. int
  20. sock_printf( sock_type *s, char *format, ... )
  21. {
  22.     va_list argptr;
  23.     static char buffer[ DEFAULT_BUFSIZE ];
  24.     int length;
  25.  
  26.     va_start( argptr, format );
  27.     vsprintf( buffer, format, argptr );
  28.     va_end( argptr );
  29.  
  30.     if ( (length = strlen( buffer )) > DEFAULT_BUFSIZE ) {
  31.     outs("ERROR: tcp sock_Printf overrun\n\r");
  32.     return( 0 );
  33.     }
  34.     sock_puts( s, buffer );
  35.     return( length );
  36. }
  37.  
  38. /*
  39.  * sock_scanf - return number of fields returned
  40.  */
  41. int
  42. sock_scanf( sock_type *s, char *format, ... )
  43. {
  44.     va_list argptr;
  45.     static char buffer[ DEFAULT_BUFSIZE ];
  46.     int fields;
  47.     int status;
  48.  
  49.     fields = 0;
  50.     while (!( status = sock_dataready( s ))) {
  51.     if (status == -1) return( -1 );
  52.     if ( fields = sock_gets( s, buffer, DEFAULT_BUFSIZE )) {
  53.         va_start( format, argptr );
  54.         fields = vsscanf( buffer, format, argptr );
  55.         va_end( argptr );
  56.     }
  57.     }
  58.     return( fields );
  59. }
  60.