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

📄 gethostbyname.c

📁 基于组件方式开发操作系统的OSKIT源代码
💻 C
字号:
/* * Copyright (c) 1997-1999 University of Utah and the Flux Group. * All rights reserved. *  * This file is part of the Flux OSKit.  The OSKit is free software, also known * as "open source;" you can redistribute it and/or modify it under the terms * of the GNU General Public License (GPL), version 2, as published by the Free * Software Foundation (FSF).  To explore alternate licensing terms, contact * the University of Utah at csl-dist@cs.utah.edu or +1-801-585-3271. *  * The OSKit is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GPL for more details.  You should have * received a copy of the GPL along with the OSKit; see the file COPYING.  If * not, write to the FSF, 59 Temple Place #330, Boston, MA 02111-1307, USA. *//* * Resolves some hostnames. */#ifdef OSKIT#include <oskit/dev/dev.h>#include <oskit/dev/linux.h>#endif /* OSKIT */#include <netdb.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdarg.h>#include <syslog.h>#include <fcntl.h>#include <oskit/startup.h>#include <oskit/fs/memfs.h>#include <oskit/c/fs.h>#include <oskit/clientos.h>intresolve(char *b){	struct hostent *he;	printf("resolving %s...", b);	fflush(stdout);	he = gethostbyname(b);	if (he) {		printf("done.\n");		printf("%s -> %s\n", b, inet_ntoa(*((long *)he->h_addr)));		return 0;	} else {		printf("failed.\n");		return -1;	}}intcat(char *fname){    char buf[256];    int r, fd = open(fname, O_RDONLY);    if (fd == -1)	return -1;    #define W(f, s)	write(f, s, strlen(s))    W(1, "catting ");    W(1, fname);    W(1, "\n");    while ((r = read(fd, buf, sizeof buf)) > 0)	    write(1, buf, r);    close(fd);    return 0;}intmain(){#ifdef OSKIT	oskit_clientos_init();	start_fs_bmod();	start_clock();	start_network();#endif#if 0	/* check that unsupported/bootp.c wrote the correct files */	cat("/etc/host.conf");	cat("/etc/resolv.conf");	cat("/etc/hosts");#endif	resolve("marker");	resolve("fast.cs.utah.edu");	resolve("jackal");	resolve("localhost");	resolve("155.99.214.165");	return 0;}#ifdef OSKITstatic void my_syslog(int pri, const char *fmt, ...){        va_list args;        va_start(args, fmt);        osenv_log(pri, fmt, args);        va_end(args);}oskit_syslogger_t oskit_libc_syslogger = my_syslog;#endif

⌨️ 快捷键说明

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