WSGetData (C 関数)

int WSGetData(WSLINK link,char *b,int len,int *count)

link で指定されたWSTP接続からテキストデータを得て,結果を最長len のバッファb に,実際に読み込んだバイト数をcount に保持しておく.

詳細

  • WSGetData()b を割り当てない.b は供給されなければならない.
  • WSGetData()はエラーがあると0を返し,関数が成功すると0以外の値を返す.
  • WSError()を使うと,WSGetData()が不成功の場合にエラーコードを引き出すことができる.
  • WSGetData()は,WSTPヘッダファイルwstp.hの中で宣言される.

例題

  (1)

#include "wstp.h"

/* read data from a link in textual form */

void f(WSLINK lp)
{
    int size, count;
    char *buff;

    switch(WSGetType(lp))
    {
        case WSTKSTR:
            if(! WSBytesToGet(lp, &size))
                {
                    /* unable to read the number of bytes from lp */
                    return;
                }

            buff = (char *)malloc(size * sizeof(char));
            if(buff == (char *)0)
                {
                    /* unable to allocate mmemory */
                    return;
                }

            if(! WSGetData(lp, buff, size &count))
                {
                    /* unable to read the string data from lp */
                    free(buff);
                    return;
                }

            /* ... */

            free(buff);

            break;
    }

    /* ... */
}