I believe you need to call WSAStartup before any winsock call. That's a
difference between sockets on Unix (Linux, ..) and on Windows.
Danny
On Mon, 2008-06-16 at 22:21 +0900, Lance Fetters wrote:
> 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,
>
--
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel