Subject: Re: [FEEDBACK] Issue with fd_set, FD_ZERO, FD_SET, FD_SETSIZE : Cygwin
From: "gs-cygwin.com--- via Cygwin" <[email-masked]>
To: Yeo Kai Wei <[email-masked]>
Cc: [email-masked]
Date: Mon, 6 Feb 2023 18:19:16 -0500
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>

On Tue, Feb 07, 2023 at 07:03:23AM +0800, Yeo Kai Wei wrote:
> 
> On 7/2/2023 4:59 am, [email-masked] wrote:
> > On Tue, Feb 07, 2023 at 04:33:53AM +0800, Yeo Kai Wei wrote:
> > > Hi All,
> > > 
> > > Thanks for the help.
> > > 
> > > I tried adding "#include <sys/select.h>".
> > > 
> > > However, this is the error message that was returned to me.
> > > 
> > > $ gcc -o selectStdIn selectStdIn.c
> > > selectStdIn.c:9:10: fatal error: sys/select.h: No such file or directory
> > >   #include <sys/select.h>
> > > 
> > > Thank you.
> > > 
> > > On 7/2/2023 4:30 am, [email-masked] wrote:
> > > > On Tue, Feb 07, 2023 at 04:25:22AM +0800, Yeo Kai Wei via Cygwin wrote:
> > > > > Hi,
> > > > > 
> > > > > I would like to report an issue with Cygwin 3.4.2 on Windows.
> > > > > 
> > > > > It doesn't seem to be able to work with  fd_set, FD_ZERO, FD_SET, FD_SETSIZE
> > > > > macros.
> > > > > 
> > > > > The code is in italics. The filename was selectStdIn.c. The terminal command
> > > > > used was "gcc -o selectStdIn selectStdIn.c"
> > > > > 
> > > > > Thank you.
> > > > > 
> > > > > /
> > > > > /
> > > > > 
> > > > > /CODE
> > > > > /
> > > > > 
> > > > > /#include <stdio.h>//
> > > > > //#include <stdlib.h>//
> > > > > //#include <sys/time.h>//
> > > > > //#include <unistd.h>//
> > > > > / /
> > > > > //void main()//
> > > > > //{//
> > > > > //    fd_set fds; //set of file descriptors//
> > > > > / /
> > > > > //    struct timeval tv;//
> > > > > / /
> > > > > //    int flag;//
> > > > > / /
> > > > > //    char byte;//
> > > > > / /
> > > > > //    FD_ZERO(&fds);//
> > > > > / /
> > > > > //    FD_SET(0, &fds);//
> > > > > / /
> > > > > //    tv.tv_sec = 5;//
> > > > > / /
> > > > > //    tv.tv_usec = 0;//
> > > > > / /
> > > > > //    flag = select(FD_SETSIZE, //
> > > > > //            &fds,//
> > > > > //            NULL,//
> > > > > //            NULL,//
> > > > > //            &tv);//
> > > > > / /
> > > > > //    if(-1 == flag)//
> > > > > //        perror("select error");//
> > > > > //    else if(flag)//
> > > > > //    {//
> > > > > //        read(0,&byte,1);//
> > > > > / /
> > > > > //        puts("data read");//
> > > > > //    }//
> > > > > / /
> > > > > //    if(flag)//
> > > > > //        printf("The byte value is %c\n", byte);//
> > > > > ////
> > > > > //}/
> > > > > 
> > > > > 
> > > > > TERMINAL COMMANDS
> > > > > 
> > > > > $ gcc -o selectStdIn selectStdIn.c
> > > > > selectStdIn.c: In function 'main':
> > > > > selectStdIn.c:8:2: error: unknown type name 'fd_set'; did you mean 'fpos_t'?
> > > > >     fd_set fds; //set of file descriptors
> > > > >     ^~~~~~
> > > > >     fpos_t
> > > > > selectStdIn.c:16:2: warning: implicit declaration of function 'FD_ZERO'
> > > > > [-Wimpli
> > > > > cit-function-declaration]
> > > > >     FD_ZERO(&fds);
> > > > >     ^~~~~~~
> > > > > selectStdIn.c:18:2: warning: implicit declaration of function 'FD_SET'
> > > > > [-Wimplic
> > > > > it-function-declaration]
> > > > >     FD_SET(0, &fds);
> > > > >     ^~~~~~
> > > > > selectStdIn.c:24:9: warning: implicit declaration of function 'select'; did
> > > > > you
> > > > > mean 'sleep'? [-Wimplicit-function-declaration]
> > > > >     flag = select(FD_SETSIZE,
> > > > >            ^~~~~~
> > > > >            sleep
> > > > > selectStdIn.c:24:16: error: 'FD_SETSIZE' undeclared (first use in this
> > > > > function)
> > > > >     flag = select(FD_SETSIZE,
> > > > >                   ^~~~~~~~~~
> > > > > selectStdIn.c:24:16: note: each undeclared identifier is reported only once
> > > > > for
> > > > > each function it appears in
> > > > $ man select
> > > > 
> > > > #include <sys/select.h>
> > Please post at bottom of messages on this mailing list.
> > 
> > You need to install the cygwin-devel package to get <sys/select.h>
> > 
> > Cheers, Glenn
> 
> Hi All,
> 
> I updated Cygwin to 3.4.5-1.x86_64.
> 
> $ uname -a
> CYGWIN_NT-10.0-19045 DESKTOP-P3E71RB 3.4.5-1.x86_64 2023-01-19 19:09 UTC
> x86_64 Cygwin
> 
> 
> However, the same problem occurs.
> 
> Cygwn-devel doesn't seem to work.
> 
> $ gcc -o selectStdIn selectStdIn.c
> selectStdIn.c:9:10: fatal error: sys/select.h: No such file or directory
>  #include <sys/select.h>
>           ^~~~~~~~~~~~~~
> compilation terminated.

https://www.cygwin.com/packages/x86_64/cygwin-devel/cygwin-devel-3.4.5-1

/usr/include/sys/select.h is included in the cygwin-devel package.

Did you install the cygwin-devel package?
Does /usr/include/sys/select.h exist in your cygwin environment?

Perhaps you accidentally have multiple cygwin installations on your
system and you installed cygwin-devel into a different location?

Since you did not have the cygwin-devel package installed on your
system, you are likely very new to developing on cygwin.  You also seem
to be very new to cygwin and installing cygwin packages.

You may want to spend more time reading the available documentation on
how to use cygwin and develop on cygwin, as you seem to be having
trouble with some very elementary steps.  https://www.cygwin.com/
The documentation is very good.  Please read through it.

(This is my way of saying I won't be responding further to this thread.)

Cheers, Glenn

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple