Tôi đang chuyển mã C / pro * c từ UNIX sang Linux. Mã này là:
#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;
}
Trong UNIX, giá trị của socket_id là > 0
trong Linux -1
. Lý do là trong UNIX, có một /dev/tcp
. Điều này không có trên Linux. Ngoài ra trong UNIX tcp
tệp này là tệp đặc biệt ký tự khác với tệp thông thường.
Có cách nào để tạo tệp đặc biệt cùng ký tự trong Linux như trong UNIX không hoặc làm cách nào để tiếp tục điều này?