WSBytesToPut (C 函数)

int WSBytesToPut(WSLINK link,int *n)

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

更多信息

  • WSTP 提供函数,例如:WSPutString()WSPutSymbol()WSPutInteger32()WSPutReal64() 发送字符串、符号、整数和浮点数. 然而,有时使用字符字符串表示发送这些类型很方便. WSBytesToPut()WSPutType()WSPutRawSize()WSPutRawData() 一起使用字符字符串表示发送一个类型.
  • WSBytesToPut() 如果为错误事件返回0,如果函数成功则返回非零值.
  • 如果 WSBytesToPut() 失败,使用 WSError() 检索错误代码.
  • WSTP 的标头文件 wstp.h 已对 WSBytesToPut() 作出声明.

范例

基本范例  (1)

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

/* send an approximation of Pi across a link */

void f(WSLINK lp)
{
    char *Pi = "3.141592654";
    int bytes_left, i;

    if(! WSPutType(lp, WSTKOLDREAL))
        { /* unable to send the data type to lp */ }

    if(! WSPutRawSize(lp, strlen(Pi))
        { /* unable to send the length of Pi to lp */ }

    if(! WSBytesToPut(lp, &bytes_left))
        { /* unable to get the remaining bytes to send from lp */ }

    i = 0;
    while(bytes_left > 0)
    {
        /* send the data one byte at a time */
        if(! WSPutRawData(lp, Pi + i, 1))
            { /* unable to send a character of Pi to lp */ }

        if(! WSBytesToPut(lp, &bytes_left))
            { /* unable to get the remaining bytes to send from lp */ }

        i++;
    }
}