getsockname.c
来自「minix操作系统最新版本(3.1.1)的源代码」· C语言 代码 · 共 78 行
C
78 行
/* getsockname() from socket emulation library for Minix 2.0.x*/#include <errno.h>#include <stdio.h>#include <string.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/gen/in.h>#include <net/gen/tcp.h>#include <net/gen/tcp_io.h>#include <net/gen/udp.h>#include <net/gen/udp_io.h>#define DEBUG 1/* getsockname...*/int getsockname(int fd, struct sockaddr *_RESTRICT address, socklen_t *_RESTRICT address_len){ nwio_tcpconf_t tcpconf; socklen_t len; struct sockaddr_in sin;#ifdef DEBUG fprintf(stderr,"mnx_getsockname: ioctl fd %d.\n", fd);#endif if (ioctl(fd, NWIOGTCPCONF, &tcpconf)==-1) {#ifdef DEBUG fprintf(stderr,"mnx_getsockname: error %d\n", errno);#endif return (-1); }#ifdef DEBUG1 fprintf(stderr, "mnx_getsockname: from %s, %u", inet_ntoa(tcpconf.nwtc_remaddr), ntohs(tcpconf.nwtc_remport)); fprintf(stderr," for %s, %u\n", inet_ntoa(tcpconf.nwtc_locaddr), ntohs(tcpconf.nwtc_locport));#endif/* addr->sin_addr.s_addr = tcpconf.nwtc_remaddr ; addr->sin_port = tcpconf.nwtc_locport;*/ memset(&sin, '\0', sizeof(sin)); sin.sin_family= AF_INET; sin.sin_addr.s_addr= tcpconf.nwtc_remaddr ; sin.sin_port= tcpconf.nwtc_locport; len= *address_len; if (len > sizeof(sin)) len= sizeof(sin); memcpy(address, &sin, len); *address_len= len; return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?