Wolfram Language & System 11.0 (2016)|Legacy Documentation

This is documentation for an earlier version of the Wolfram Language.View current documentation (Version 11.2)

This feature is not supported on the Wolfram Cloud.

int WSTransferExpression(WSLINK dst,WSLINK src)
transfers an expression to destination link dst from source link src.


  • dst and src need not be distinct.
  • dst and src can be either loopback or ordinary links.
  • WSTransferExpression() returns 0 in the event of an error, and a nonzero value if the function succeeds.
  • WSTransferExpression() is often used to read an expression from a link in order to store it in a loopback link.
  • WSTransferExpression() is passed (WSLINK)0 for dst, the expression on src will be discarded.
  • WSTransferExpression() is declared in the WSTP header file wstp.h.

ExamplesExamplesopen allclose all

Basic Examples  (1)Basic Examples  (1)

#include "wstp.h"

/* transfer an expression to link 2 from loopback link 1 */

void f(WSLINK lp2, WSLINK lp1)
    /* send EvaluatePacket[ToExpression[str]] to lp1 */
if(! WSPutFunction(lp1, "EvaluatePacket", 1))
        { /* unable to put function to lp1 */ }

    if(! WSPutFunction(lp1, "ToExpression", 1))
        { /* unable to put function to lp1 */ }

    if(! WSPutString(lp1, "a = Table[RandomInteger[2,12]];"))
        { /* unable to put the string to lp1 */ }

    if(! WSEndPacket(lp1))
        { /* unable to put the end-of-packet indicator to lp1 */ }

    if(! WSFlush(lp1))
        { /* unable to put flush any outgoing data buffered in lp1 */ }

/* now transfer to lp2 from lp1 */
    if(! WSTransferExpression(lp2, lp1))
        { /* unable to transfer an expression from lp1 to lp2 */ }