我正在将 C/pro*c 代码从 UNIX 移植到 LINUX。代码是:
#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);
return 0;
}
if ( socket_id <0 )
{
exit(FAILURE);
}
在 UNIX 中,socket_id 的值 > 0 在 Linux 中为 -1。原因是在 UNIX 目录下的 /dev 文件 tcp 存在。但在 LINUX 中,它位于 /dev 下,此 tcp 文件不存在。同样在 UNIX 中,这个 tcp 文件是不同于普通文件的字符特殊文件。
有没有办法在 LINUX 中创建与 UNIX 中相同的字符特殊文件,或者如何进一步进行?