MLPutRawSize()
This feature is not supported on the Wolfram Cloud.

has been replaced by WSPutRawSize.

int MLPutRawSize(MLINK link, int s)
prepares link to receive raw character data or numeric data of length s bytes.

DetailsDetails

  • Use MLPutRawSize() in conjunction with MLPutType() and MLPutRawData() to manually put data to a link rather than using the type-specific API functions such as MLPutInteger32() or MLPutUTF8String().
  • MLPutRawSize() returns a 0 in the event of an error and a nonzero value if the function succeeds.
  • Use MLError() to retrieve the error code if MLPutRawSize() fails.
  • MLPutRawSize() is declared in the MathLink header file mathlink.h.

ExamplesExamplesopen allclose all

Basic Examples  (1)Basic Examples  (1)

#include "mathlink.h"

/* send a function as raw data to a link */

void f(MLINK lp)
{
    int a = 2, b = 3;

    if(! MLPutType(lp, MLTKFUNC))
        { return; /* unable to put the function type to lp */ }

    if(! MLPutArgCount(lp, 2))
        { return; /* unable to put the number of arguments to lp */ }

    if(! MLPutType(lp, MLTKOLDSYM))
        { return; /* unable to put function head type to lp */ }
    
    if(! MLPutRawSize(lp, 4))
        { return; /* unable to put the size of the symbol to lp */ }

    if(! MLPutRawData(lp, (const unsigned char *)"Plus", 4))
        { return; /* unable to put the raw bytes to lp */ }

    if(! MLPutType(lp, MLTK_CINT))
        { return; /* unable to put the argument type to lp */ }

    if(! MLPutRawSize(lp, sizeof(int)))
        { return; /* unable to put the size of the integer to lp */ }

    if(! MLPutRawData(lp, (const unsigned char *)&a, sizeof(a)))
        { return; /* unable to put the raw bytes of a to lp */ }

    if(! MLPutType(lp, MLTK_CINT))
        { return; /* unable to put the second argument type to lp */ }

    if(! MLPutRawSize(lp, sizeof(int)))
        { return; /* unable to put the size of the integer to lp */ }

    if(! MLPutRawData(lp, (const unsigned char *)&b, sizeof(b)))
        { return; /* unable to put the raw bytes of b to lp */ }
}