getsrv~2.c

来自「操作系统源代码」· C语言 代码 · 共 51 行

C
51
字号
/* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that: (1) source distributions retain this entire copyright * notice and comment, and (2) distributions including binaries display * the following acknowledgement:  ``This product includes software * developed by the University of California, Berkeley and its contributors'' * in the documentation or other materials provided with the distribution * and in all advertising materials mentioning features or use of this * software. Neither the name of the University nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#if defined(LIBC_SCCS) && !defined(lint)static char sccsid[] = "@(#)getservbyport.c	5.6 (Berkeley) 6/1/90";#endif /* LIBC_SCCS and not lint */#include <stddef.h>#include <string.h>#ifdef _MINIX#include <net/gen/netdb.h>#endifextern int _serv_stayopen;struct servent *getservbyport(port, proto)	int port;	const char *proto;{	register struct servent *p;	setservent(_serv_stayopen);	while (p = getservent()) {		if (p->s_port != port)			continue;		if (proto == 0 || strcmp(p->s_proto, proto) == 0)			break;	}	if (!_serv_stayopen)		endservent();	return (p);}

⌨️ 快捷键说明

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