WSInterfaceFromLinkServer (C 関数)

const char * WSInterfaceFromLinkServer(WSLinkServer s, int *err)

リンクサーバ s で使われるインターフェースのIPアドレスを含むCスタイルの文字列を返す.

詳細

  • WSInterfaceFromLinkServer()は,WSTPライブラリが所有するメモリを返す.プログラムは,このメモリを変更してはならない.インターフェースの文字列を使い終わったときに,このプログラムは,メモリをWSReleaseInterfaceFromLinkServer()への呼出しとともにWSTP ライブラリに再び返さなければならない.
  • WSInterfaceFromLinkServer()でエラーが起った場合には,err 内のエラーの値が返され,(const char *)0が返される. WSInterfaceFromLinkServer()が成功した場合には,err にはゼロが含まれる.
  • エラーの条件を示す非零の値は,wstp.h内のWSEエラーコードに対応し,WSError()で返されるものと同じである.

例題

  (1)

#include <stdlib.h> /* For malloc, free */
#include <string.h> /* For memset,memcpy */
#include "wstp.h"

void getInterfaceForLinkServer(WSLinkServer server)
{
    char *buffer;
    size_t length;
    const char *interface;
    int error;

    interface = WSInterfaceFromLinkServer(server, &error);
    if(interfaced == (const char *)0 || error != WSEOK)
    { /* Handle error */ }

    length = strlen(interface);

    buffer = (char *)malloc((length + 1) * sizeof(char));
    if(buffer == (char *)0)
    { /* Handle out of memory condition */ }

    memset((void *)buffer, 0, (length + 1) * sizeof(char));

    memcpy((void *)buffer, (void *)interface, length * sizeof(char));

    WSReleaseInterfaceFromLinkServer(server, interface);

    /* .. do something with buffer... */

    free(buffer);

    return;
}