pmap_set.c

来自「当你重新编译了EM85XX的交叉编译工具以支持SUNRPC时」· C语言 代码 · 共 64 行

C
64
字号
 /*  * pmap_set - set portmapper table from data produced by pmap_dump  *   * Author: Wietse Venema (wietse@wzv.win.tue.nl), dept. of Mathematics and  * Computing Science, Eindhoven University of Technology, The Netherlands.  */#include <stdio.h>#include <sys/types.h>#ifdef SYSV40#include <netinet/in.h>#endif#include <rpc/rpc.h>#include <rpc/pmap_clnt.h>static intparse_line(char *buf, u_long *prog, u_long *vers,	   int *prot, unsigned *port);intmain(int argc, char **argv){    char    buf[BUFSIZ];    u_long  prog;    u_long  vers;    int     prot;    unsigned port;    while (fgets(buf, sizeof(buf), stdin)) {	if (parse_line(buf, &prog, &vers, &prot, &port) == 0) {	    fprintf(stderr, "%s: malformed line: %s", argv[0], buf);	    return (1);	}	if (pmap_set(prog, vers, prot, (unsigned short) port) == 0)	    fprintf(stderr, "not registered: %s", buf);    }    return (0);}/* parse_line - convert line to numbers */static intparse_line(char *buf, u_long *prog, u_long *vers,	   int *prot, unsigned *port){    char    proto_name[256];    if (sscanf(buf, "%lu %lu %255s %u", prog, vers, proto_name, port) != 4) {	return (0);    }    if (strcmp(proto_name, "tcp") == 0) {	*prot = IPPROTO_TCP;	return (1);    }    if (strcmp(proto_name, "udp") == 0) {	*prot = IPPROTO_UDP;	return (1);    }    if (sscanf(proto_name, "%d", prot) == 1) {	return (1);    }    return (0);}

⌨️ 快捷键说明

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