⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ga_echeck.c

📁 unix网络编程卷1:套接口API的全书源码
💻 C
字号:
#include	"gai_hdr.h"/* * Basic error checking of flags, family, socket type, and protocol. *//* include ga_echeck */intga_echeck(const char *hostname, const char *servname,		  int flags, int family, int socktype, int protocol){	if (flags & ~(AI_PASSIVE | AI_CANONNAME))		return(EAI_BADFLAGS);	/* unknown flag bits */	if (hostname == NULL || hostname[0] == '\0') {		if (servname == NULL || servname[0] == '\0')			return(EAI_NONAME);	/* host or service must be specified */	}	switch(family) {		case AF_UNSPEC:			break;#ifdef	IPv4		case AF_INET:			if (socktype != 0 &&				(socktype != SOCK_STREAM &&				 socktype != SOCK_DGRAM &&				 socktype != SOCK_RAW))				return(EAI_SOCKTYPE);	/* invalid socket type */			break;#endif#ifdef	IPv6		case AF_INET6:			if (socktype != 0 &&				(socktype != SOCK_STREAM &&				 socktype != SOCK_DGRAM &&				 socktype != SOCK_RAW))				return(EAI_SOCKTYPE);	/* invalid socket type */			break;#endif#ifdef	UNIXdomain		case AF_LOCAL:			if (socktype != 0 &&				(socktype != SOCK_STREAM &&				 socktype != SOCK_DGRAM))				return(EAI_SOCKTYPE);	/* invalid socket type */			break;#endif		default:			return(EAI_FAMILY);		/* unknown protocol family */	}	return(0);}/* end ga_echeck */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -