- Subject: Re: Problems with structures in S-Lang
- From: Goran Koruga <goran.koruga@xxxxxxxxx>
- Date: Wed, 9 Feb 2000 07:35:33 +0100
On Mon, Feb 07 2000, John E. Davis wrote:
Thanks for your reply. I can't believe I have overlooked something so
simple.
Regards,
Goran
> Goran Koruga <goran.koruga@xxxxxxxxx> wrote:
> >/* here's the definition of the structure for S-Lang */
> >static SLang_IStruct_Field_Type timeval_struct[] =
> >{
> > MAKE_ISTRUCT_FIELD(struct timeval, sec, "sec", SLANG_UINT_TYPE, 1),
> > MAKE_ISTRUCT_FIELD(struct timeval, usec, "usec", SLANG_UINT_TYPE, 1),
>
> I believe that `sec' and `usec' should be `tv_sec' and `tv_usec', resp.
> Also, even though sizeof(long) == sizeof (int) on your 32 bit unix
> system, you should use SLANG_LONG_TYPE for portability.
>
> This example works for me:
>
> #include <stdio.h>
> #include <string.h>
> #include <slang.h>
> #include <stdlib.h>
>
> #include <sys/time.h>
> #include <unistd.h>
>
> static struct timeval *Msl_timestamp; /* it's malloc'd in main() */
>
> /* here's the definition of the structure for S-Lang */
> static SLang_IStruct_Field_Type timeval_struct[] =
> {
> MAKE_ISTRUCT_FIELD(struct timeval, tv_sec, "sec", SLANG_LONG_TYPE, 1),
> MAKE_ISTRUCT_FIELD(struct timeval, tv_usec, "usec", SLANG_LONG_TYPE, 1),
> SLANG_END_TABLE
> };
>
> /* here's how I set it */
> void Msl_set_timestamp(void)
> {
> gettimeofday(Msl_timestamp, NULL);
> }
>
> int main (int argc, char **argv)
> {
> (void) SLang_init_all ();
> (void) SLadd_istruct_table(timeval_struct, (VOID_STAR) &Msl_timestamp, "timestamp");
>
> Msl_timestamp = (struct timeval *) malloc (sizeof (struct timeval));
> Msl_set_timestamp ();
>
> SLang_load_file (argv[1]);
>
> return 0;
> }
--
Writing about music is like dancing about architecture.
-- Frank Zappa
[2000 date index]
[2000 thread index]
[Thread Prev] [Thread Next]
[Date Prev] [Date Next]