MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mathlink: How do I pass arbitrary data from Mathematica to C?


On 25 Mar, 06:17, ragfield <ragfi... at gmail.com> wrote:
> On Mar 23, 1:00 am, Karen Bindash <KarenBind... at googlemail.com> wrote:
>
> > Does that make sense? Any ideas how to pass arbitrary data to a C
> > program?
>
> You won't be able to do this directly.  You will have to write your
> own C function that converts the data from aMathematicatype to the
> raw data your function is expecting.  This is not very difficult.  Try
> something like this (not tested):
>
> /* MyFile.tm */
>
> :Begin:
> :Function: myFunc
> :Pattern: MyFunc[reals:(_Real...)]
> :Arguments: { reals }
> :ArgumentTypes: Manual
> :ReturnType: Manual
> :End:
>

But this makes nom sence to me, as my data is not necessarily going to
consist of real numbers. It might do, but I certainly dont wish to
assume thst.

> /* library function to call */
> extern int g(const double* theData, int theLength);
>

The function I am calling will have the prototype

int g (void *data, int length_of_data)


I did wonder if it should be treated as a collection of unsigned
characters, but I'm not sure if a Mathematica String would be
appropiate, as then characters like "\n" (new line) might have some
significance, which I dont want them to.



  • Prev by Date: Re: Tally
  • Next by Date: Re: Tagged list processing
  • Previous by thread: Re: Mathlink: How do I pass arbitrary data from Mathematica to C?
  • Next by thread: Re: Mathlink: How do I pass arbitrary data from Mathematica to C?