亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? system.c

?? kaffe Java 解釋器語言,源碼,Java的子集系統,開放源代碼
?? C
字號:
/* * java.lang.System.c * * Copyright (c) 1996, 1997, 1998, 1999 *	Transvirtual Technologies, Inc.  All rights reserved. * Copyright (c) 2003 *	Mark J. Wielaard <mark@klomp.org> * * See the file "license.terms" for information on usage and redistribution  * of this file.  */#include "config.h"#include "config-std.h"#include "config-io.h"#include "config-mem.h"#if defined(HAVE_SYS_UTSNAME_H)#include <sys/utsname.h>#endif#if defined(HAVE_PWD_H)#include <pwd.h>#endif#include <sys/time.h>#include <time.h>#include <ctype.h>#include "../../../kaffe/kaffevm/classMethod.h"#include "../../../kaffe/kaffevm/gtypes.h"#include "../../../kaffe/kaffevm/object.h"#include "../../../kaffe/kaffevm/constants.h"#include "../../../kaffe/kaffevm/access.h"#include "../../../kaffe/kaffevm/baseClasses.h"#include "../../../kaffe/kaffevm/stringSupport.h"#include "../../../kaffe/kaffevm/support.h"#include "../../../kaffe/kaffevm/external.h"#include "../../../kaffe/kaffevm/soft.h"#include "../../../kaffe/kaffevm/debug.h"#include "../../../kaffe/kaffevm/exception.h"#include "../../../include/system.h"#include "defs.h"#include "java_io_InputStream.h"#include "java_io_PrintStream.h"#include "java_lang_System.h"#include "java_lang_Throwable.h"#include <native.h>#include <jni.h>static char cwdpath[MAXPATHLEN];extern jlong currentTime(void);extern userProperty* userProperties;extern char* realClassPath;extern char* realBootClassPath;extern jint java_lang_Object_hashCode(struct Hjava_lang_Object*);extern void printStackTrace(struct Hjava_lang_Throwable*,	struct Hjava_lang_Object*, int);/* * Initialise kaffe.net.www.protocole.http.HttpURLConnction defaults * properties. * * http.proxyHost	Host name of HTTP proxy server * http.proxyPort	Port number of HTTP proxy server * http.nonProxyHosts	Avoid proxy on these hosts * * How these properties are undocumented in the API doc.  We know * about them from www.icesoft.no's webpage. */static voidinitProxyProperties (struct Hjava_util_Properties *prop){	static char *http_prefix = "http://";	char *proxy;	char *start, *p;	char c;	int len;			/* Build HTTP proxy properties from $http_proxy and $no_proxy           environement variables */	proxy = getenv("http_proxy");	if (proxy == NULL)		return;	/* Check it's HTTP protocol */	start = proxy;	p = http_prefix;	while (*p && (tolower((int) *start) == *p)) {		start++;		p++;	}	if (*p != '\0')		return;		/* Extract the given URL of the form	   http://(user(:password)?@)?hostname(:port)?(/path)?  */	/* for now, skip user and password */	for (p = start; *p && (*p != '/'); p++) {		if (*p == '@')			break;	}	if (*p == '@')		start = p + 1;	/* retreive hostname */	for (p = start; *p && (*p != '/'); p++) {		if (*p == ':')			break;	}	if (start == p)		return;		c = *p;	*p = '\0';	setProperty(prop, "http.proxyHost", start);	*p = c;	if (c == ':') {		/* retreive port number */		for (start = ++p; *p && (*p != '/'); p++)			;		if (start != p) {			c = *p;			*p = '\0';			setProperty (prop, "http.proxyPort", start);			*p = c;		}	}	proxy = getenv("no_proxy");	if (proxy == NULL)		return;	/* $no_proxy, it's a list of domains separated by coma	   as in ".foo.org,.bar.org", translate it to	   format "*.foo.org|*.bar.org".  */	len = 0;	for (p = proxy; *p; p++, len++) {		if (*p == ',')			len++;	}	if (len == 0)	    return;	/* allocate translation buffer but ignore out of memory errors */	start = KMALLOC(len + 2);	if (start == NULL)		return;	*start = '*';	for (p = start + 1; *proxy; proxy++) {		if (*proxy == ',') {			*p++ = '|';			*p++ = '*';		}		else {			*p++ = *proxy;		}	}	*p = '\0';	setProperty (prop, "http.nonProxyHosts", start);	KFREE(start);}/* * Initialise system properties to their defaults. */struct Hjava_util_Properties*java_lang_System_initProperties(struct Hjava_util_Properties* p){	int r;	char* jhome;	char* cpath;	char* dir;	char* tzone;	userProperty* prop;#if defined(HAVE_SYS_UTSNAME_H)	struct utsname system;#endif#if defined(HAVE_PWD_H)	struct passwd* pw;#endif		/* Add the default properties:	 *	 * Standard:	 *	 * java.version		Java version number	 * java.vendor          Java vendor specific string	 * java.vendor.url      Java vendor URL	 * java.home            Java installation directory	 *	 * java.io.tmpdir	Default directory for temporary files	 * java.library.path	Search path for native libraries	 *	 * java.vm.specification.version	 *			Java Virtual Machine specification version	 * java.vm.specification.vendor	 *			Java Virtual Machine specification vendor	 * java.vm.specification.name	 *			Java Virtual Machine specification name	 * java.vm.version	Java Virtual Machine implementation version	 * java.vm.vendor	Java Virtual Machine implementation vendor	 * java.vm.name		Java Virtual Machine implementation name	 *	 * java.specification.version	 *			Java Runtime Environment specification version	 * java.specification.vendor	 *			Java Runtime Environment specification vendor	 * java.specification.name	 *			Java Runtime Environment specification name	 *	 * java.class.version   Java class version number	 * java.class.path      Java classpath	 *	 * os.name              Operating System Name	 * os.arch              Operating System Architecture	 * os.version           Operating System Version	 *	 * file.separator       File separator ("/" on Unix)	 * path.separator       Path separator (":" on Unix)	 * line.separator       Line separator ("\n" on Unix)	 *	 * user.name            User account name	 * user.home            User home directory	 * user.dir             User's current working directory	 * user.language        User's language locale code	 * user.region          User's country locale code	 * user.timezone	User's timezone	 *	 * Others:	 *	 * java.compiler        Java JIT compiler	 * file.encoding	Character encoding for locale	 * file.encoding.pkg	Character encoding package	 * kaffe.compiler	Default java compiler	 * sun.boot.class.path  Bootclasspath	 * kaffe.library.path   Search path for kaffe's native libraries	 *	 */	setProperty(p, "java.version", "1.3");	setProperty(p, "java.vendor", kaffe_vendor);	setProperty(p, "java.vendor.url", kaffe_vendor_url);	setProperty(p, "java.vendor.url.bug", kaffe_vendor_url_bug);	setProperty(p, "java.compiler", getEngine());#if defined(__WIN32__)	setProperty(p, "java.io.tmpdir", "C:\\TEMP");#else	setProperty(p, "java.io.tmpdir", "/tmp");	/* XXX or /var/tmp?? */#endif	setProperty(p, "java.library.path", "");	setProperty(p, "kaffe.library.path", getLibraryPath());	setProperty(p, "java.vm.specification.version",		  kaffe_vm_specification_version);	setProperty(p, "java.vm.specification.vendor", 		  kaffe_vm_specification_vendor);	setProperty(p, "java.vm.specification.name", 		  kaffe_vm_specification_name);	setProperty(p, "java.vm.version", kaffe_vm_version);	setProperty(p, "java.vm.vendor", kaffe_vm_vendor);	setProperty(p, "java.vm.name", kaffe_vm_name);	setProperty(p, "java.specification.version", 		  kaffe_specification_version);	setProperty(p, "java.specification.vendor", kaffe_specification_vendor);	setProperty(p, "java.specification.name", kaffe_specification_name);	setProperty(p, "java.class.version", kaffe_class_version);	jhome = getenv(KAFFEHOME);	if (jhome == 0) {		jhome = ".";	}	setProperty(p, "java.home", jhome);        cpath = realClassPath;	if (cpath == 0) {		cpath = ".";	}	setProperty(p, "java.class.path", cpath);	setProperty(p, "sun.boot.class.path", realBootClassPath);         	setProperty(p, "file.separator", file_separator);	setProperty(p, "path.separator", path_separator);	setProperty(p, "line.separator", line_separator);#if defined(HAVE_GETCWD)	dir = getcwd(cwdpath, MAXPATHLEN);#elif defined(HAVE_GETWD)	dir = getwd(cwdpath);#else	dir = 0;	/* Cannot get current directory */#endif	if (dir == 0) {		dir = ".";	}	setProperty(p, "user.dir", dir);#if defined(HAVE_SYS_UTSNAME_H) && defined(HAVE_UNAME)	/* Setup system properties */	r = uname(&system);	assert(r >= 0);	setProperty(p, "os.name", system.sysname);	setProperty(p, "os.arch", system.machine);	setProperty(p, "os.version", system.release);#else	setProperty(p, "os.name", "Unknown");	setProperty(p, "os.arch", "Unknown");	setProperty(p, "os.version", "Unknown");#endif#if defined(HAVE_PWD_H) && defined(HAVE_GETUID)	/* Setup user properties */	pw = getpwuid(getuid());	if (pw != 0) {		setProperty(p, "user.name", pw->pw_name);		setProperty(p, "user.home", pw->pw_dir);	}	else#endif	{		setProperty(p, "user.name", "Unknown");		setProperty(p, "user.home", "Unknown");	}	/* We should try to work this stuff out really - XXX */	setProperty(p, "user.language", "EN");	setProperty(p, "user.region", "US");	/* Figure out the local time zone; fallback to GMT if we can't */	tzone = "GMT";#if defined(HAVE_TM_ZONE) && defined(HAVE_LOCALTIME)	{		const time_t now = time(NULL);		if (now != (time_t) -1) {			tzone = (char*)localtime(&now)->tm_zone;		}	}#endif	setProperty(p, "user.timezone", tzone);	setProperty(p, "file.encoding.pkg", "kaffe.io");	setProperty(p, "file.encoding", "Default");	/* Define the default java compiler - this should be configured	 * somehow.	 */	setProperty(p, "kaffe.compiler", "kjc");	initProxyProperties (p);		/* Now process user defined properties */	for (prop = userProperties; prop != 0; prop = prop->next) {		setProperty(p, prop->key, prop->value);	}	return (p);}/* * Return current time. */jlongjava_lang_System_currentTimeMillis(void){	return (currentTime());}/* * Set the stdin stream. */voidJava_java_lang_System_setIn0(JNIEnv *env, jclass system, jobject stream){	jfieldID in = (*env)->GetStaticFieldID(env, system, 					"in", "Ljava/io/InputStream;");	assert(in != NULL);	(*env)->SetStaticObjectField(env, system, in, stream);}/* * Set the stdout stream. */voidJava_java_lang_System_setOut0(JNIEnv *env, jclass system, jobject stream){	jfieldID out = (*env)->GetStaticFieldID(env, system, 					"out", "Ljava/io/PrintStream;");	assert(out != NULL);	(*env)->SetStaticObjectField(env, system, out, stream);}/* * Set the error stream. */voidJava_java_lang_System_setErr0(JNIEnv *env, jclass system, struct Hjava_io_PrintStream* stream){	jfieldID err = (*env)->GetStaticFieldID(env, system, 					"err", "Ljava/io/PrintStream;");	assert(err != NULL);	(*env)->SetStaticObjectField(env, system, err, stream);}jintjava_lang_System_identityHashCode(struct Hjava_lang_Object* o){       return (java_lang_Object_hashCode(o));}/* * See java/lang/System.java for info on these two routines. */voidjava_lang_System_debug(struct Hjava_lang_String *str){	char *s;	s = checkPtr(stringJava2C(str));	dprintf("%s\n", s);	KFREE(s);}voidjava_lang_System_debugE(struct Hjava_lang_Throwable *t){	Hjava_lang_String *msg;	const char *cname;	char *s;	cname = CLASS_CNAME(OBJECT_CLASS(&t->base));	msg = unhand(t)->detailMessage;	if (msg) {		s = checkPtr(stringJava2C(msg));		dprintf("%s: %s\n", cname, s);		KFREE(s);	} else {		dprintf("%s\n", cname);	}	printStackTrace(t, 0, 1);}voidjava_lang_System_arraycopy(struct Hjava_lang_Object* src, jint srcpos,			   struct Hjava_lang_Object* dst, jint dstpos,			   jint len) {	char* in; 	 	char* out; 	 	int elemsz; 	 	Hjava_lang_Class* sclass; 	 	Hjava_lang_Class* dclass;	if (src==0 || dst==0) {		throwException (NullPointerException);	}	if (len == 0) { 	 		return; 	 	} 	 	sclass = OBJECT_CLASS(src); 	 	dclass = OBJECT_CLASS(dst);	/* Must be arrays */ 	 	if (!CLASS_IS_ARRAY(sclass) || !CLASS_IS_ARRAY(dclass)) { 	 		throwException (ArrayStoreException);	} 	 	/* Make sure we'll keep in the array boundaries */ 	 	if ((srcpos < 0 || srcpos + len > ARRAY_SIZE(src)) || 	 	    (dstpos < 0 || dstpos + len > ARRAY_SIZE(dst)) || 	 	    (len < 0)) { 	 		throwException (ArrayIndexOutOfBoundsException);	}	sclass = CLASS_ELEMENT_TYPE(sclass); 	 	dclass = CLASS_ELEMENT_TYPE(dclass); 	 	elemsz = TYPE_SIZE(sclass); 	 	len *= elemsz; 	 	srcpos *= elemsz; 	 	dstpos *= elemsz; 	 	in = &((char*)ARRAY_DATA(src))[srcpos]; 	 	out = &((char*)ARRAY_DATA(dst))[dstpos];	if (sclass == dclass) {#if defined(HAVE_MEMMOVE) 	 		memmove((void*)out, (void*)in, len); 	 #else 	 		/* Do it ourself */ 	 #if defined(HAVE_MEMCPY) 	 		if (src != dst) { 	 			memcpy((void*)out, (void*)in, len); 	 		} else 	 #endif 	 		if (out < in) { 	 			/* Copy forwards */ 	 			for (; len > 0; len--) { 	 				*out++ = *in++; 	 			} 	 		} else { 	 			/* Copy backwards */ 	 			out += len; 	 			in += len; 	 			for (; len > 0; len--) { 	 				*--out = *--in; 	 			} 	 		} 	 #endif 	 	} else {		if (CLASS_IS_PRIMITIVE(sclass) || CLASS_IS_PRIMITIVE(dclass)) {			throwException (ArrayStoreException);		}		for (; len > 0; len -= sizeof(Hjava_lang_Object*)) { 	 			Hjava_lang_Object* val = *(Hjava_lang_Object**)in; 	 			if (val != 0 && !instanceof(dclass, OBJECT_CLASS(val))) { 	 				throwException (ArrayStoreException);			}			*(Hjava_lang_Object**)out = val; 	 			in += sizeof(Hjava_lang_Object*); 	 			out += sizeof(Hjava_lang_Object*); 	 		}	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本色综合中文字幕| 国产精华液一区二区三区| 成人久久视频在线观看| 欧美色偷偷大香| 久久久无码精品亚洲日韩按摩| 亚洲黄色免费电影| 国产精品一区二区久久精品爱涩| 欧美性受极品xxxx喷水| 欧美国产欧美综合| 日本亚洲免费观看| 91国在线观看| 最新日韩av在线| 国产一区二三区好的| 欧美另类videos死尸| 亚洲欧洲精品天堂一级| 国产在线日韩欧美| 91精品国产免费| 亚洲香蕉伊在人在线观| av电影在线观看完整版一区二区| 日韩美女视频在线| 五月婷婷欧美视频| 91福利社在线观看| 综合久久国产九一剧情麻豆| 国产精品一卡二| 亚洲精品一区二区在线观看| 日韩国产欧美一区二区三区| 在线免费不卡视频| 曰韩精品一区二区| 91蜜桃视频在线| 亚洲欧美一区二区三区极速播放| 国产91对白在线观看九色| 久久久亚洲精品一区二区三区| 日本视频一区二区| 日韩欧美一二三区| 裸体一区二区三区| 欧美mv日韩mv国产| 色域天天综合网| 一区二区国产视频| 欧美三级视频在线| 午夜成人在线视频| 日韩欧美在线观看一区二区三区| 日韩国产精品91| 日韩欧美一卡二卡| 韩国成人在线视频| 国产亚洲精品资源在线26u| 国产一区二区三区视频在线播放| 2019国产精品| 成人激情文学综合网| 国产精品麻豆视频| 日本乱码高清不卡字幕| 亚洲最色的网站| 欧美高清视频不卡网| 日本aⅴ免费视频一区二区三区| 欧美一区日韩一区| 国产一区不卡精品| 中文字幕在线视频一区| 91精品91久久久中77777| 亚洲成人激情av| 精品日本一线二线三线不卡| 国产一区二区导航在线播放| 中国色在线观看另类| 91美女蜜桃在线| 日日夜夜一区二区| 久久精品免视看| 91丨porny丨中文| 亚洲bt欧美bt精品| www久久精品| 99精品久久只有精品| 亚洲国产中文字幕在线视频综合| 日韩欧美一区在线| 99久久99久久久精品齐齐| 日韩精品电影一区亚洲| 亚洲国产成人在线| 777xxx欧美| 波多野结衣亚洲一区| 五月激情综合色| 亚洲国产成人在线| 欧美嫩在线观看| 不卡欧美aaaaa| 免费一级片91| 亚洲免费观看在线观看| 日韩女同互慰一区二区| 菠萝蜜视频在线观看一区| 日本欧美在线观看| 亚洲欧美日韩久久| 久久亚洲精品小早川怜子| 欧美午夜不卡视频| 国产a区久久久| 久久国产婷婷国产香蕉| 一区二区三区日韩欧美精品| 亚洲精品一区二区三区四区高清| 日本精品视频一区二区三区| 激情伊人五月天久久综合| 亚洲综合小说图片| 综合欧美一区二区三区| 久久久久久久久久电影| 91麻豆精品国产| 色综合久久中文综合久久97| 国产精品1区2区| 麻豆精品精品国产自在97香蕉| 亚洲欧美一区二区三区国产精品 | 亚洲国产视频一区二区| 久久亚洲一级片| 欧美一级理论片| 在线视频中文字幕一区二区| www.欧美色图| 国产寡妇亲子伦一区二区| 蜜桃免费网站一区二区三区| 午夜欧美在线一二页| 一区二区三区在线看| 国产精品久久久久一区二区三区 | 国产精品丝袜在线| 久久久久久久久久久久久夜| 日韩欧美在线不卡| 欧美一区二区在线看| 欧美色网站导航| 91国在线观看| 欧美性极品少妇| 在线观看av一区| 色噜噜狠狠成人中文综合| 99久久精品国产导航| 9i看片成人免费高清| 成人av在线观| 99久久久国产精品免费蜜臀| 成人av小说网| 91美女片黄在线观看| 91黄视频在线观看| 欧美无砖专区一中文字| 欧美午夜免费电影| 欧美色图激情小说| 欧美精品三级日韩久久| 日韩一区二区精品葵司在线| 欧美成人性福生活免费看| 天天av天天翘天天综合网色鬼国产| 亚洲一二三四久久| 亚洲大型综合色站| 美脚の诱脚舐め脚责91 | 亚洲一区在线观看免费| 天堂成人国产精品一区| 毛片av一区二区| 国产老妇另类xxxxx| 成人h动漫精品| 欧美视频中文字幕| 日韩一区二区在线观看| 国产亚洲综合性久久久影院| 国产精品初高中害羞小美女文| 亚洲日本va在线观看| 午夜在线电影亚洲一区| 精品一区二区免费在线观看| 顶级嫩模精品视频在线看| 在线日韩一区二区| 日韩精品一区国产麻豆| 国产精品乱人伦中文| 午夜视频一区二区三区| 国产毛片精品视频| 在线视频你懂得一区| 精品国免费一区二区三区| 国产精品传媒在线| 日韩 欧美一区二区三区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 99久久国产综合色|国产精品| 精品视频一区二区三区免费| 亚洲精品一区二区三区99| 亚洲色图视频网| 国产一区二区三区免费在线观看| 91在线一区二区三区| 日韩精品一区二区三区在线观看 | 欧美日高清视频| 国产亚洲视频系列| 亚洲成人1区2区| 成人国产精品免费网站| 日韩一级视频免费观看在线| 日韩理论片在线| 国产在线播放一区三区四| 欧美网站一区二区| 国产精品三级在线观看| 蜜乳av一区二区| 欧美视频在线观看一区二区| 日本一区二区三区国色天香| 日韩av一级电影| 色综合久久精品| 国产精品日韩成人| 久久激情五月婷婷| 欧美高清视频在线高清观看mv色露露十八| 国产精品久久国产精麻豆99网站| 精品一区二区在线播放| 欧美日韩一本到| 一区二区三区高清不卡| 成+人+亚洲+综合天堂| 国产日韩av一区| 久久丁香综合五月国产三级网站| 5月丁香婷婷综合| 亚洲国产另类av| 欧美日韩一级黄| 亚洲图片欧美色图| 在线免费观看成人短视频| 一区二区三区在线免费观看| 99精品视频在线观看| 成人欧美一区二区三区视频网页| 国产a区久久久|