WSReleaseInterfaceFromLinkServer (C 関数)

void WSReleaseInterfaceFromLinkServer(WSLinkServer s, const char *i)

サーバ sWSInterfaceFromLinkServer()への呼出しで,WSTPライブラリによって割り当てられたメモリ i を解放する.

詳細

  • WSInterfaceFromLinkServer()は,メモリを割り当てて,リンクサーバ接続に使われたインターフェースのIPアドレスを含むC言語スタイルの文字列を返す.このメモリは,プログラムがいったん使い終わったら,ライブラリがこのメモリを取り戻すことができるように,WSTPライブラリに返されなければならない.
  • インターフェースの文字列 i は,WSInterfaceFromLinkServer()から返されるC言語スタイルの文字列へのポインタでなければならない.
  • プログラムは,i で表される文字列に対して,無駄に呼出しをかけてはならない.

例題

  (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;
}