⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sock_scn.c

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 C
字号:
#include <stdio.h>
#include <stdarg.h>
#include <string.h>

#include "copyrigh.h"
#include "wattcp.h"
#include "misc.h"
#include "pctcp.h"

/*
 * MSC/DJGPP 2.01 doesn't have vsscanf()
 */
#if defined(__DJGPP__) && (DJGPP_MINOR < 2)
  static int vsscanf (const char *buf, const char *fmt, va_list arglist)
  {
    FILE *fil = stdin;
    fil->_ptr = (char*) buf;
    return _doscan (fil, fmt, arglist);
  }
#endif

#if defined(_MSC_VER)
  static int vsscanf (const char *buf, const char *fmt, va_list arglist)
  {
    extern _input (FILE*, const char*, va_list);
    FILE *fil = stdin;
    fil->_ptr = (char*) buf;
    return _input (fil, fmt, arglist);
  }
#endif

/*
 * sock_scanf - return number of fields returned
 */
int sock_scanf (sock_type *s, const char *fmt, ...)
{
  char buffer [tcp_MaxBufSize];
  int  fields;
  int  status;

  fields = 0;
  while ((status = sock_dataready(s)) == 0)
  {
    if (status == -1)
       return (-1);

    fields = sock_gets (s, (BYTE*)&buffer, tcp_MaxBufSize);
    if (fields)
    {
      va_list args; 
      va_start (args, fmt);
      fields = vsscanf (buffer, fmt, args);
      va_end (args);
    }
  }
  return (fields);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -