Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: TheReader06 AT comcast DOT net To: cygwin AT cygwin DOT com Subject: Problem with select() function, works under normal Linux Date: Mon, 31 May 2004 02:40:44 +0000 Message-Id: <053120040240.9336.40BA9B2B000D83BD000024782200734840C0CF9D0A0B0E0AAD0A08AB@comcast.net> X-Authenticated-Sender: VGhlUmVhZGVyMDZAY29tY2FzdC5uZXQ= X-IsSubscribed: yes Like the subject says, I'm having trouble with select() under Cygwin, when it works under RedHat 9 and Fedora Core 2 FINAL. The output is shown below for both. And a bit of code at the bottom. Cygwin: JRR AT undead ~/Mud $ make g++ -c -g -Wall test.cpp g++ -c -g -Wall interpreter.cpp g++ -c -g -Wall db.cpp g++ -c -g -Wall cmd.info.cpp g++ -c -g -Wall cmd.comm.cpp g++ -c -g -Wall cmd.other.cpp g++ -c -g -Wall cmd.movement.cpp g++ -c -g -Wall cmd.fight.cpp g++ -c -g -Wall cmd.item.cpp g++ -c -g -Wall cmd.calc.cpp g++ -c -g -Wall intermud.cpp g++ -c -g -Wall imc2.cpp g++ -o test test.o interpreter.o db.o cmd.info.o cmd.comm.o cmd.other.o cmd.movement.o cmd.fight.o cmd.item.o cmd.calc.o intermud. o imc2.o JRR AT undead ~/Mud $ ./test Hello world! Starting game on port 10000. error on select wait: 9 (EBADF) error on select polling: 9 (EBADF) JRR AT undead ~/Mud $ g++ --version g++ (GCC) 3.3.1 (cygming special) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. JRR AT undead ~/Mud $ uname -a CYGWIN_NT-5.1 undead 1.5.10(0.116/4/2) 2004-05-25 22:07 i686 unknown unknown Cygwin JRR AT undead ~/Mud $ Linux RedHat 9: [root AT localhost testMUD]# make g++ -c -g -Wall test.cpp g++ -c -g -Wall interpreter.cpp g++ -c -g -Wall db.cpp g++ -c -g -Wall cmd.info.cpp g++ -c -g -Wall cmd.comm.cpp g++ -c -g -Wall cmd.other.cpp g++ -c -g -Wall cmd.movement.cpp g++ -c -g -Wall cmd.fight.cpp g++ -c -g -Wall cmd.item.cpp g++ -c -g -Wall cmd.calc.cpp g++ -c -g -Wall intermud.cpp g++ -c -g -Wall imc2.cpp g++ -o test test.o interpreter.o db.o cmd.info.o cmd.comm.o cmd.other.o cmd.movement.o cmd.fight.o cmd.item.o cmd.calc.o intermud. o imc2.o [root AT localhost testMUD]# ./test Hello world! Starting game on port 10000. Connection request from [192.168.1.102] Loaded character [Serai] [Serai][192.168.1.102] has joined the game. Serai: 'who' Serai: '/s' Intermud -->|<-- Normal Termination Clean shutdown. Removing player: [Serai][192.168.1.102] [root AT localhost testMUD]# g++ --version g++ (GCC) 3.3.2 Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [root AT localhost testMUD]# uname -a Linux localhost.localdomain 2.4.20-31.9 #1 Tue Apr 13 17:41:45 EDT 2004 i686 i686 i386 GNU/Linux [root AT localhost testMUD]# Some of the code: void mainLoop(int s) { char buff[1024]; int maxfd; fd_set readSet, writeSet, exceptSet; struct timeval nullTime, sleepTime; maxfd = 300; nullTime.tv_sec = 0; nullTime.tv_usec = 0; sleepTime.tv_sec = 0; sleepTime.tv_usec = SLEEP_TIME; /* 1000000 usec = 1 sec */ while (!finished) { if (!firstInfo) { FD_ZERO(&readSet); FD_SET((unsigned int)s, &readSet); if (select(maxfd + 1, &readSet, (fd_set *)0, (fd_set *)0, NULL) < 0) { fprintf(stderr, "error on select wait: %i\n", __ERRNO__); } } FD_ZERO(&readSet); FD_ZERO(&writeSet); FD_ZERO(&exceptSet); FD_SET((unsigned int)s, &readSet); if (select(maxfd + 1, &readSet, &writeSet, &exceptSet, &nullTime) < 0) { fprintf(stderr, "error on select polling: %i\n", __ERRNO__); exit(0); } Sorry if it's a bit long, and thanks in advance for any help that can be provided. Joshua -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/