Estoy portando código C / pro * c de UNIX a Linux. El codigo es:
#define __NFDBIT (8 * sizeof(unsigned long))
#define __FD_SETSIZ 1024
#define __FDSET_LONG (__FD_SETSIZ/__NFDBIT)
typedef struct {
unsigned long fds_bits [__FDSET_LONG];
} __ernel_fd_set;
typedef __ernel_fd_set fd_set_1;
int main()
{
fd_set_1 listen_set;
int listen_sd;
int socket_id;
FD_ZERO(&listen_set);
socket_id = t_open("/dev/tcp", O_RDWR|O_NONBLOCK, (struct t_info *) 0);
if ( socket_id <0 )
{
exit(FAILURE);
}
return 0;
}
En UNIX, el valor de socket_id está > 0
en Linux -1
. La razón está en UNIX, hay un /dev/tcp
. Esto no está presente en Linux. También en UNIX este tcp
archivo es un archivo especial de caracteres que es diferente del archivo normal.
¿Hay alguna forma de crear el mismo archivo especial de caracteres en Linux que en UNIX o cómo continuar con esto?