Target: Windows Mobile 6.0
Compiler: cegcc (both 0.51.0 and SVN (updated 2008-06-14))

I'm having issues getting select() to work on my target; note that I
have yet to try testing other targets.

When I tried to run the sample code included in the glibc man-page, I
found that it would segfault on the select() call. I then compiled it as
static and ran it remotely under gdb, and found that it was crashing at
newlib/libc/src/wince/msnet.c:175 (in the __MS_select):

  return( (*select)(nfds, rfds, wfds, efds, timeout));

The problem appears to be that __msnet_init() is never called, and so
the select function pointer is NULL.

I added a call to __msnet_init() to the sample code below and tried
running it again; this time it didn't crash, but unfortunately it
returned the following error (via perror()):

  select(): Bad file number

Does anyone have any idea what the problem might be?
Is this, perhaps, an issue with WM6?

Sample code follows:

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

int
main(void)
{
   fd_set rfds;
   struct timeval tv;
   int retval;

   /* __msnet_init(); */

   /* Watch stdin (fd 0) to see when it has input. */
   FD_ZERO(&rfds);
   FD_SET(0, &rfds);

   /* Wait up to five seconds. */
   tv.tv_sec = 5;
   tv.tv_usec = 0;

   retval = select(1, &rfds, NULL, NULL, &tv);

   /* Dont rely on the value of tv now! */
   if (retval == -1)
      perror("select()");
   else if (retval)
      printf("Data is available now.\n");
   /* FD_ISSET(0, &rfds) will be true. */
   else
      printf("No data within five seconds.\n");

   exit(EXIT_SUCCESS);
}


Cheers,

-- 
Lance Fetters
Ogaki, Gifu, Japan

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to