MLGetData (C Function)

MLGetData has been replaced by WSGetData.

int MLGetData(MLINK link,char *b,int len,int *count)

gets textual data from the MathLink connection specified by link, storing the result in a buffer b of maximum length len, and storing the actual number of bytes read in count.

Details

  • MLGetData() does not allocate ; must be provided.
  • MLGetData() returns 0 in the event of an error, and a nonzero value if the function succeeds.
  • Use MLError() to retrieve the error code if MLGetData() fails.
  • MLGetData() is declared in the MathLink header file mathlink.h.

Examples

Basic Examples  (1)

#include "mathlink.h"

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

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

    switch(MLGetType(lp))
    {
        case MLTKSTR:
            if(! MLBytesToGet(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(! MLGetData(lp, buff, size &count))
                {
                    /* unable to read the string data from lp */
                    free(buff);
                    return;
                }

            /* ... */

            free(buff);

            break;
    }

    /* ... */
}