コード例 #1
0
ファイル: supp_file.c プロジェクト: ikamikaz3/my_42sh
int	exec_rm(char **env)
{
  char	**tab5;
  char	*str;

  tab5 = init_tab_rm();
  str = cpy_str("/bin", tab5[0]);
  if ((my_access(str)) == 2)
    {
      my_do(str, env, tab5);
      return (0);
    }
  free(str);
  return (0);
}
コード例 #2
0
ファイル: runtime-bootstrap.c プロジェクト: medo64/mono
//jni funcs
void
Java_org_mono_android_AndroidRunner_init (JNIEnv* env, jobject _this, jstring path0, jstring path1, jstring path2, jstring path3)
{
	char buff[1024];

	_log ("IN Java_com_example_hellojni_HelloJni_init \n");
	cpy_str (env, file_dir, path0);
	cpy_str (env, cache_dir, path1);
	cpy_str (env, data_dir, path2);
	cpy_str (env, assemblies_dir, path3);

	_log ("-- file dir %s\n", file_dir);
	_log ("-- cache dir %s\n", cache_dir);
	_log ("-- data dir %s\n", data_dir);
	_log ("-- assembly dir %s\n", assemblies_dir);
	prctl (PR_SET_DUMPABLE, 1);


	sprintf (buff, "%s/libmonosgen-2.0.so", data_dir);
	void *libmono = dlopen (buff, RTLD_LAZY);


	mono_jit_init_version = dlsym (libmono, "mono_jit_init_version");
	mono_assembly_open = dlsym (libmono, "mono_assembly_open");
	mono_domain_get = dlsym (libmono, "mono_domain_get");
	mono_jit_exec = dlsym (libmono, "mono_jit_exec");
	mono_set_assemblies_path = dlsym (libmono, "mono_set_assemblies_path");
	mono_string_new = dlsym (libmono, "mono_string_new");
	mono_class_from_name_case = dlsym (libmono, "mono_class_from_name_case");
	mono_assembly_get_image = dlsym (libmono, "mono_assembly_get_image");
	mono_class_from_name = dlsym (libmono, "mono_class_from_name");
	mono_class_get_method_from_name = dlsym (libmono, "mono_class_get_method_from_name");
	mono_object_to_string = dlsym (libmono, "mono_object_to_string");
	mono_string_to_utf8 = dlsym (libmono, "mono_string_to_utf8");
	mono_runtime_invoke = dlsym (libmono, "mono_runtime_invoke");
	mono_free = dlsym (libmono, "mono_free");
	mono_set_crash_chaining = dlsym (libmono, "mono_set_crash_chaining");
	mono_set_signal_chaining = dlsym (libmono, "mono_set_signal_chaining");
	mono_dl_fallback_register = dlsym (libmono, "mono_dl_fallback_register"); 
	mono_thread_attach = dlsym (libmono, "mono_thread_attach"); 
	mono_domain_set_config = dlsym (libmono, "mono_domain_set_config");
	mono_runtime_set_main_args = dlsym (libmono, "mono_runtime_set_main_args");

	//MUST HAVE envs
	setenv ("TMPDIR", cache_dir, 1);
	setenv ("MONO_CFG_DIR", file_dir, 1);

	create_and_set (file_dir, "home", "HOME");
	create_and_set (file_dir, "home/.local/share", "XDG_DATA_HOME");
	create_and_set (file_dir, "home/.local/share", "XDG_DATA_HOME");
	create_and_set (file_dir, "home/.config", "XDG_CONFIG_HOME");


	//Debug flags
	// setenv ("MONO_LOG_LEVEL", "debug", 1);
	// setenv ("MONO_VERBOSE_METHOD", "GetCallingAssembly", 1);

	mono_set_assemblies_path (assemblies_dir);
	mono_set_crash_chaining (1);
	mono_set_signal_chaining (1);
	mono_dl_fallback_register (my_dlopen, my_dlsym, NULL, NULL);
	root_domain = mono_jit_init_version ("TEST RUNNER", "mobile");
	mono_domain_set_config (root_domain, assemblies_dir, file_dir);

	sprintf (buff, "%s/libruntime-bootstrap.so", data_dir);
	runtime_bootstrap_dso = dlopen (buff, RTLD_LAZY);

	sprintf (buff, "%s/libMonoPosixHelper.so", data_dir);
	mono_posix_helper_dso = dlopen (buff, RTLD_LAZY);	
}