WSTestHead (C 関数)

int WSTestHead(WSLINK link,const char *head,int *n)

link から次に読み取られるオブジェクトが頭部 head を持つ式であるかどうかをテストして, n に式の引数の数を保持する.

詳細

  • WSTestHead()は,リンク上の現行オブジェクトが頭部としての記号を持つ関数ではない場合,あるいは記号名がhead と一致しない場合には不成功に終る.
  • WSTestHead()はエラーがあると0を返し,関数が成功するとゼロ以外の値を返す.
  • WSError()を使うと,WSTestHead()が不成功の場合にエラーコードを引き出すことができる.
  • WSTestHead()は,関数が失敗すると,WSTestHead()を呼び出す直前に,リンク上の式へのストリームポインタを再設定する.この操作は,プログラマがWSCreateMark(link); WSTestHead(); WSSeekToMark()を呼び出したかのように振舞う.
  • WSTestHead()は,WSTPヘッダファイルwstp.hの中で宣言される.

例題

  (1)

#include "wstp.h"

/* test whether the head of the incoming object is "ReturnPacket" */

void f(WSLINK lp)
{
    int args;

    if(WSTestHead(lp, "ReturnPacket", &args))
        { /* read the contents of the ReturnPacket[] */ }
    else
        { /* the head of incoming packet is not "ReturnPacket" */ }
}