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

📄 nsquery.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
/*      @(#)nsquery.c 1.1 92/07/30 SMI      *//*	Copyright (c) 1984 AT&T	*//*	  All Rights Reserved  	*//*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*//*	The copyright notice above does not evidence any   	*//*	actual or intended publication of such source code.	*/#ident	"@(#)nsquery:nsquery.c	1.7.2.3"#include  <sys/types.h>#include  <rfs/sema.h>#include  <rfs/rfsys.h>#include  <rfs/rfs_misc.h>#include  <rfs/comm.h>#include  <stdio.h>#include  <ctype.h>#include  <rfs/nserve.h>#include  <errno.h>void	exit();static	char	*cmd;extern	int	errno;extern	int	ns_errno;extern	int	optind,	opterr;extern	char	*optarg;extern	char	*dompart();extern	char	*namepart();main(argc,argv)int	argc;char	*argv[];{	int	chr;	int	errflag = 0, hflag = 0;	int	rtn;	char	*name = "*";	char 	*usage = "nsquery [-h] [<name>]";	cmd = argv[0];	if ((rtn = rfsys(RF_RUNSTATE)) < 0) {		perror(cmd);		exit(1);	}	if (rtn != DU_UP) {		fprintf(stderr, "%s: RFS is not running\n", cmd);		exit(1);	}	while ((chr = getopt(argc,argv,"h")) != EOF)		switch(chr) {	 	case 'h':			if (hflag)				errflag = 1;			else				hflag = 1;				break;		case '?':			errflag = 1;			break;		}	if (errflag || argc > optind + 1) {		fprintf(stderr,"Usage: %s\n",usage);		exit(1);	}	if (argv[optind] != NULL) {		name = argv[optind];		verify_name(name);	}	if (!hflag)		fprintf(stdout,"RESOURCE        ACCESS      SERVER                    DESCRIPTION\n\n");	if (ns_info(name) == RFS_FAILURE) {		if (ns_errno == R_SETUP) {			fprintf(stderr, "%s: cannot set up communication with the name server\n", cmd);			fprintf(stderr, "%s: possible cause: heavily loaded RFS activity\n", cmd);		} else if (ns_errno == R_RCV) {			fprintf(stderr, "%s: no information received from name server\n", cmd);			fprintf(stderr, "%s: possible cause: unknown domain name specified or a connection\n", cmd);			fprintf(stderr, "         to the name server could not be established\n");		} else			nserror(cmd);		exit(1);	}	exit(0);	/* NOTREACHED */}staticverify_name(name)char	*name;{	char	*mach;	char	*domain;	int	qname = 0, dname = 0;	if (name[strlen(name)-1] == SEPARATOR)		dname = 1;	if (*(domain = dompart(name)) != '\0') {		qname = 1;		if (strlen(domain) > SZ_DELEMENT) {			fprintf(stderr,"%s: domain name %s<%s> exceeds <%d> characters\n",cmd,dname ? "":"in ",name,SZ_DELEMENT);			exit(1);		}		if (v_dname(domain) != 0) {			fprintf(stderr,"%s: domain name %s<%s> contains invalid characters\n",cmd,dname ? "":"in ",name);			exit(1);		}	}	if (*(mach = namepart(name)) != '\0') {		if (strlen(mach) > SZ_MACH) {			fprintf(stderr,"%s: nodename %s<%s> exceeds <%d> characters\n",cmd,qname ? "in ":"",name,SZ_MACH);			exit(1);		}		if (v_uname(mach) != 0) {			fprintf(stderr,"%s: nodename %s<%s> contains invalid characters\n",cmd,qname ? "in ":"",name);			exit(1);		}	}}

⌨️ 快捷键说明

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