WSBytesToGet (C 函数)

int WSBytesToGet(WSLINK link,int *n)

计算当前数据的文本表示中剩余的要读取的字节数,并把结果存在 n 中.

更多信息

  • WSTP 具有实时转换链接中的当前可读数据为不同于链接的其他类型的能力. WSBytesToGet() 把当前数据转换为字符字符串表示.
  • WSBytesToGet() 如果为错误事件则返回0,如果函数成功则返回非零值.
  • 如果 WSBytesToGet()失败,使用 WSError() 检索错误代码.
  • WSTP 的标头文件 wstp.h 已对 WSBytesToGet() 作出声明.

范例

基本范例  (1)

#include <stdlib.h>
#include <string.h>
#include "wstp.h"

/* check the incoming string size to allocate enough memory to store the string */

void f(WSLINK lp)
{
    int incoming_bytes;
    char *string;
    const char *wsstring;

    switch(WSGetType(lp))
    {
        case WSTKSTR:
            if(! WSBytesToGet(lp, &incoming_bytes))
                { /* unable to get the size of the string */ }

            string = (char *)malloc(incoming_bytes + 1);
            if(string == (char *)0)
                { /* memory allocation failed */ }

            if(! WSGetString(lp, &wsstring))
                { /* unable to get the string from lp */ }

            memcpy(string, wsstring, incoming_bytes);

            *(string + incoming_bytes) = '\0';

            break;
        /* ... */
    };

    /* ... */
}