MLPutRawSize (C Function)
MLPutRawSize 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.
Details

- 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.
Examples
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 */ }
}