


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件着作权-源代码范本注意事项:常见的源代码包含:C语言,VB,C+,JAVA,.NET等。提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软件的程序结尾,代码中不得出现与申请表内容不符合的日期,着作权人,软 件名字等,不能出现开源代码,不能出现任何版权纠纷。格式要求:一、源代码应提交前、后各连续 30页,不足60页的,应当全部提交。、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页眉右上应标注页码,源代码每页不少于 50行。#in elude <tybs/>#in elude <tybs/>#in elude <tybs/&g
2、t;#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybs/>#in elude <tybsee/>#in elude <dn s/>#in elude <dn s/&
3、gt;#in elude <dn s/>#in elude <dn s/>#in elude <dst/>#defi ne NS_MAIN 1#in elude <n amed/>#en dif#ifdef DLZ#in elude <dlz/>#en difstatie tybs_boolean_twan t_stats = TYBS_FALSE;statie eharprogram. nameTYBS_DIR_NAMEMAX = "n amed"statie charabsolute_eo nffileTYBS
4、_DIR_PATHMAX;statie eharsaved_eomma nd_li ne512;statie eharvers ion 512;statie unsigned int maxsoeks = 0;voidn s_ma in _earlywar nin g(e onst ehar *format, .) va_list args;va_start(args, format);if (ns_g_lctx != NULL) tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_W A
5、RNING, format, args); else fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprintf(stderr, "n");fflush(stderr);va_end(args);Void ns_main_earlyfatal(const char *format, .) va_list args;va_start(args, format);if (ns_g_lctx != NULL) tybs_log_vwrite(ns_g_lctx, NS
6、_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, format, args);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, "exiting (due to early fatal error)"); else fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprin
7、tf(stderr, "n");fflush(stderr);va_end(args);exit(1);static voidassertion_failed(const char *file, int line, tybs_assertiontype_t type,const char *cond)if (ns_g_lctx != NULL) tybs_assertion_setcallback(NULL);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITIC
8、AL, "%s:%d: %s(%s) failed", file, line, tybs_assertion_typetotext(type), cond);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, "exiting (due to assertion failure)"); else fprintf(stderr, "%s:%d: %s(%s) failedn",file, line, tybs_as
9、sertion_typetotext(type), cond);fflush(stderr);if (ns_g_coreok)abort();exit(1);static voidlibrary_fatal_error(const char *file, int line, const char *format, va_list args) TYBS_FORMA T_PRINTF(3, 0); static void library_fatal_error(const char *file, int line, const char *format,va_list args)if (ns_g_
10、lctx != NULL) tybs_error_setfatal(NULL);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, "%s:%d: fatal error:", file, line);tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, format, args);tybs_log_write(ns_g_lctx,
11、 NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, "exiting (due to fatal error in library)"); else fprintf(stderr, "%s:%d: fatal error: ", file, line);vfprintf(stderr, format, args);fprintf(stderr, "n");fflush(stderr);if (ns_g_coreok)abort();exit(1);static
12、voidlibrary_unexpected_error(const char *file, int line, const char *format,va_list args) TYBS_FORMAT_PRINTF(3, 0);static voidlibrary_unexpected_error(const char *file, int line, const char *format, va_list args)if (ns_g_lctx != NULL) tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MA
13、IN, TYBS_LOG_ERROR, "%s:%d: unexpected error:", file, line);tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_ERROR, format, args); else fprintf(stderr, "%s:%d: fatal error: ", file, line);vfprintf(stderr, format, args);fprintf(stderr, "n");
14、fflush(stderr);static voidlwresd_usage(void) fprintf(stderr,"usage: lwresd -4|-6 -c conffile | -C resolvconffile ""-d debugleveln""-P listen-port -sn""-t chrootdir -u username -i pidfilen""-m usage|trace|record|size|mctxn");static void usage(void) if
15、 (ns_g_lwresdonly) lwresd_usage(); return;fprintf(stderr,"usage: named -4|-6 -c conffile -d debuglevel ""-f|-g -n number_of_cpusn""-p port -s -t chrootdir -u usernamen""-m usage|trace|record|size|mctxn");static void save_command_line(int argc, char *argv) int
16、i;char *src;char *dst;char *eob;const char truncated = "." tybs_boolean_t quoted = TYBS_FALSE; dst = saved_command_line;eob = saved_command_line + sizeof(saved_command_line); for (i = 1; i < argc && dst < eob; i+) *dst+ = ' 'src = argvi;while (*src != '0' &
17、;& dst < eob) if (quoted | isalnum(*src & 0xff) |*src = '-' | *src = '_' |*src = '.' | *src = '/') *dst+ = *src+; quoted = TYBS_FALSE; else *dst+ = ''quoted = TYBS_TRUE;INSIST(sizeof(saved_command_line) >= sizeof(truncated); if (dst = eob)strcpy(
18、eob - sizeof(truncated), truncated); else*dst = '0'static int parse_int(char *arg, const char *desc) char *endp; int tmp;long int ltmp;ltmp = strtol(arg, &endp, 10);tmp = (int) ltmp;if (*endp != '0')ns_main_earlyfatal("%s '%s' must be numeric", desc, arg); if (t
19、mp < 0 | tmp != ltmp)ns_main_earlyfatal("%s '%s' out of range", desc, arg); return (tmp);static struct flag_def const char *name;unsigned int value; mem_debug_flags = "trace", TYBS_MEM_DEBUGTRACE , "record", TYBS_MEM_DEBUGRECORD , "usage", TYBS_MEM_
20、DEBUGUSAGE , "size", TYBS_MEM_DEBUGSIZE , "mctx", TYBS_MEM_DEBUGCTX , NULL, 0 ;static voidset_flags(const char *arg, struct flag_def *defs, unsigned int *ret) for (;) const struct flag_def *def;const char *end = strchr(arg, ',');int arglen;if (end = NULL)end = arg + strle
21、n(arg);arglen = end - arg;for (def = defs; def->name != NULL; def+) if (arglen = (int)strlen(def->name) && memcmp(arg, def->name, arglen) = 0) *ret |= def->value; goto found;ns_main_earlyfatal("unrecognized flag '%.*s'", arglen, arg); found:if (*end = '0'
22、;)break;arg = end + 1;static voidparse_command_line(int argc, char *argv) int ch;int port;tybs_boolean_t disable6 = TYBS_FALSE;tybs_boolean_t disable4 = TYBS_FALSE; save_command_line(argc, argv);tybs_commandline_errprint = TYBS_FALSE;while (ch = tybs_commandline_parse(argc, argv, "46c:C:d:fgi:l
23、m:n:N:p:P:" "sS:t:T:u:vVx:") != -1) switch (ch) case '4':if (disable4)ns_main_earlyfatal("cannot specify -4 and -6"); if (tybs_net_probeipv4() != TYBS_R_SUCCESS) ns_main_earlyfatal("IPv4 not supported by OS"); tybs_net_disableipv6(); disable6 = TYBS_TRUE;br
24、eak;case '6':if (disable6)ns_main_earlyfatal("cannot specify -4 and -6");if (tybs_net_probeipv6() != TYBS_R_SUCCESS)ns_main_earlyfatal("IPv6 not supported by OS"); tybs_net_disableipv4(); disable4 = TYBS_TRUE;break;case 'c':ns_g_conffile = tybs_commandline_argumen
25、t; lwresd_g_conffile = tybs_commandline_argument; if (lwresd_g_useresolvconf)ns_main_earlyfatal("cannot specify -c and -C"); ns_g_conffileset = TYBS_TRUE; break;case 'C': lwresd_g_resolvconffile = tybs_commandline_argument; if (ns_g_conffileset)ns_main_earlyfatal("cannot speci
26、fy -c and -C"); lwresd_g_useresolvconf = TYBS_TRUE; break;case 'd':ns_g_debuglevel = parse_int(tybs_commandline_argument, "debug level");break;case 'f': ns_g_foreground = TYBS_TRUE; break;case 'g': ns_g_foreground = TYBS_TRUE; ns_g_logstderr = TYBS_TRUE; break;
27、/* XXXBEW -i should be removed */case 'i':lwresd_g_defaultpidfile = tybs_commandline_argument; break;case 'l':ns_g_lwresdonly = TYBS_TRUE; break;case 'm':set_flags(tybs_commandline_argument, mem_debug_flags, &tybs_mem_debugging);break;case 'N': /* Deprecated. */ca
28、se 'n':ns_g_cpus = parse_int(tybs_commandline_argument, "number of cpus");if (ns_g_cpus = 0)ns_g_cpus = 1; break;case 'p':port = parse_int(tybs_commandline_argument, "port"); if (port < 1 | port > 65535)ns_main_earlyfatal("port '%s' out of range
29、", tybs_commandline_argument); ns_g_port = port; break;/* XXXBEW Should -P be removed */case 'P':port = parse_int(tybs_commandline_argument, "port"); if (port < 1 | port > 65535)ns_main_earlyfatal("port '%s' out of range", tybs_commandline_argument); lw
30、resd_g_listenport = port; break;case 's': want_stats = TYBS_TRUE; break;case 'S':maxsocks = parse_int(tybs_commandline_argument, "max number of sockets");break;case 't': ns_g_chrootdir = tybs_commandline_argument; break;case 'T':if (strcmp(tybs_commandline_a
31、rgument, "clienttest") = 0) ns_g_clienttest = TYBS_TRUE;elsefprintf(stderr, "unknown -T flag '%sn", tybs_commandline_argument); break;case 'u': ns_g_username = tybs_commandline_argument; break;case 'v': printf("BIND %sn", ns_g_version); exit(0);case
32、'V': printf("BIND %s built with %sn", ns_g_version, ns_g_configargs);exit(0);case '': usage(); if (tybs_commandline_option = '') exit(0);ns_main_earlyfatal("unknown option '-%c'", tybs_commandline_option);default: ns_main_earlyfatal("parsing o
33、ptions returned %d", ch);argc -= tybs_commandline_index;argv += tybs_commandline_index;if (argc > 0) usage(); ns_main_earlyfatal("extra command line arguments");static tybs_result_tcreate_managers(void) tybs_result_t result;unsigned int socks;#ifdef TYBS_PLATFORM_USETHREADSunsigned
34、 int cpus_detected;#endif#ifdef TYBS_PLATFORM_USETHREADScpus_detected = tybs_os_ncpus();if (ns_g_cpus = 0)ns_g_cpus = cpus_detected;tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,TYBS_LOG_INFO, "found %u CPU%s, using %u worker thread%s", cpus_detected, cpus_detected
35、= 1 "" : "s", ns_g_cpus, ns_g_cpus = 1 "" : "s");#elsens_g_cpus = 1;#endifresult = tybs_taskmgr_create(ns_g_mctx, ns_g_cpus, 0, &ns_g_taskmgr);if (result != TYBS_R_SUCCESS) UNEXPECTED_ERROR(_FILE_, _LINE_, "tybs_taskmgr_create() failed: %s", tybs
36、_result_totext(result);return (TYBS_R_UNEXPECTED);result = tybs_timermgr_create(ns_g_mctx, &ns_g_timermgr);if (result != TYBS_R_SUCCESS) UNEXPECTED_ERROR(_FILE_, _LINE_,"tybs_timermgr_create() failed: %s", tybs_result_totext(result);return (TYBS_R_UNEXPECTED);result = tybs_socketmgr_cr
37、eate2(ns_g_mctx, &ns_g_socketmgr, maxsocks);if (result != TYBS_R_SUCCESS) UNEXPECTED_ERROR(_FILE_, _LINE_,"tybs_socketmgr_create() failed: %s", tybs_result_totext(result);return (TYBS_R_UNEXPECTED);result = tybs_socketmgr_getmaxsockets(ns_g_socketmgr, &socks);if (result = TYBS_R_SU
38、CCESS) tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_SERVER,TYBS_LOG_INFO, "using up to %u sockets", socks);result = tybs_entropy_create(ns_g_mctx, &ns_g_entropy);if (result != TYBS_R_SUCCESS) UNEXPECTED_ERROR(_FILE_, _LINE_,"tybs_entropy_create() failed: %s",
39、 tybs_result_totext(result);return (TYBS_R_UNEXPECTED);result = tybs_hash_create(ns_g_mctx, ns_g_entropy, DNS_NAME_MAXWIRE); if (result != TYBS_R_SUCCESS) UNEXPECTED_ERROR(_FILE_, _LINE_, "tybs_hash_create() failed: %s", tybs_result_totext(result);return (TYBS_R_UNEXPECTED);return (TYBS_R_
40、SUCCESS);static voiddestroy_managers(void) ns_lwresd_shutdown(); tybs_entropy_detach(&ns_g_entropy); if (ns_g_fallbackentropy != NULL) tybs_entropy_detach(&ns_g_fallbackentropy);tybs_taskmgr_destroy(&ns_g_taskmgr); tybs_timermgr_destroy(&ns_g_timermgr); tybs_socketmgr_destroy(&ns
41、_g_socketmgr); tybs_hash_destroy();static voidsetup(void) tybs_result_t result;#ifdef HA VE_LIBSCFchar *instance = NULL;#endifns_os_inituserinfo(ns_g_username); ns_os_tzset();ns_os_opendevnull();#ifdef HA VE_LIBSCFresult = ns_smf_get_instance(&instance, 0, ns_g_mctx);if (result = TYBS_R_SUCCESS)
42、ns_smf_got_instance = 1;elsens_smf_got_instance = 0;if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);#endif /* HA VE_LIBSCF */#ifdef PA TH_RANDOMDEVif (ns_g_chrootdir != NULL) result = tybs_entropy_create(ns_g_mctx, &ns_g_fallbackentropy);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal(&q
43、uot;tybs_entropy_create() failed: %s", tybs_result_totext(result);result = tybs_entropy_createfilesource(ns_g_fallbackentropy, PATH_RANDOMDEV);if (result != TYBS_R_SUCCESS) ns_main_earlywarning("could not open pre-chroot " "entropy source %s: %s",PATH_RANDOMDEV , tybs_result
44、_totext(result); tybs_entropy_detach(&ns_g_fallbackentropy);#endifns_os_chroot(ns_g_chrootdir);ns_os_minprivs();result = ns_log_init(TYBS_TF(ns_g_username != NULL); if (result != TYBS_R_SUCCESS) ns_main_earlyfatal("ns_log_init() failed: %s", tybs_result_totext(result);if (!ns_g_foregro
45、und)ns_os_daemonize();result = tybs_app_start();if (result != TYBS_R_SUCCESS) ns_main_earlyfatal("tybs_app_start() failed: %s",tybs_result_totext(result);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "starting BIND %s%s", ns_g_version, save
46、d_command_line);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,TYBS_LOG_NOTICE, "built with %s", ns_g_configargs);(void)tybs_resource_getlimit(tybs_resource_stacksize,&ns_g_initstacksize);(void)tybs_resource_getlimit(tybs_resource_datasize,&ns_g_initdatasize);(
47、void)tybs_resource_getlimit(tybs_resource_coresize,&ns_g_initcoresize);(void)tybs_resource_getlimit(tybs_resource_openfiles,&ns_g_initopenfiles);if (! tybs_file_isabsolute(ns_g_conffile) result = tybs_file_absolutepath(ns_g_conffile,absolute_conffile, sizeof(absolute_conffile);if (result !=
48、TYBS_R_SUCCESS)ns_main_earlyfatal("could not construct absolute path of " "configuration file: %s", tybs_result_totext(result);ns_g_conffile = absolute_conffile;result = tybs_time_now(&ns_g_boottime);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_time_now() failed
49、: %s",tybs_result_totext(result);result = create_managers();if (result != TYBS_R_SUCCESS) ns_main_earlyfatal("create_managers() failed: %s",tybs_result_totext(result);ns_builtin_init();#ifdef DLZresult = dlz_drivers_init();if (result != TYBS_R_SUCCESS) ns_main_earlyfatal("dlz_dri
50、vers_init() failed: %s", tybs_result_totext(result);#endifns_server_create(ns_g_mctx, &ns_g_server);static voidcleanup(void) destroy_managers(); ns_server_destroy(& ns_builtin_deinit();#ifdef DLZdlz_drivers_clear();#endifdns_name_destroy();tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERA
51、L, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "exiting");ns_log_shutdown();static char *memstats = NULL;void ns_main_setmemstats(const char *filename) if (memstats != NULL) free(memstats); memstats = NULL;if (filename = NULL)return;memstats = malloc(strlen(filename) + 1);if (memstats) strcpy(mems
52、tats, filename);#ifdef HA VE_LIBSCF tybs_result_t ns_smf_get_instance(char *ins_name, int debug, tybs_mem_t *mctx) scf_handle_t *h = NULL;int namelen;char *instance;REQUIRE(ins_name != NULL && *ins_name = NULL);if (h = scf_handle_create(SCF_VERSION) = NULL) if (debug)UNEXPECTED_ERROR(_FILE_,
53、 _LINE_, "scf_handle_create() failed: %s", scf_strerror(scf_error();return (TYBS_R_FAILURE);if (scf_handle_bind(h) = -1) if (debug)UNEXPECTED_ERROR(_FILE_, _LINE_, "scf_handle_bind() failed: %s", scf_strerror(scf_error();scf_handle_destroy(h);return (TYBS_R_FAILURE);if (namelen =
54、 scf_myname(h, NULL, 0) = -1) if (debug)UNEXPECTED_ERROR(_FILE_, _LINE_, "scf_myname() failed: %s", scf_strerror(scf_error(); scf_handle_destroy(h); return (TYBS_R_FAILURE);if (instance = tybs_mem_allocate(mctx, namelen + 1) = NULL) UNEXPECTED_ERROR(_FILE_, _LINE_, "ns_smf_get_instanc
55、e memory " "allocation failed: %s", tybs_result_totext(TYBS_R_NOMEMORY);scf_handle_destroy(h);return (TYBS_R_FAILURE);if (scf_myname(h, instance, namelen + 1) = -1) if (debug)UNEXPECTED_ERROR(_FILE_, _LINE_, "scf_myname() failed: %s", scf_strerror(scf_error(); scf_handle_des
56、troy(h); tybs_mem_free(mctx, instance); return (TYBS_R_FAILURE);scf_handle_destroy(h);*ins_name = instance;return (TYBS_R_SUCCESS);#endif int main(int argc, char *argv) tybs_result_t result;#ifdef HA VE_LIBSCF char *instance = NULL;#endif strlcat(version,#ifdef _DATE_"named version: BIND "
57、 VERSION " (" _DA TE_ ")", #else"named version: BIND " VERSION,#endifsizeof(version);result = tybs_file_progname(*argv, program_name, sizeof(program_name); if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("program name too long");if (strcmp(program_name, "
58、lwresd") = 0) ns_g_lwresdonly = TYBS_TRUE;tybs_assertion_setcallback(assertion_failed); tybs_error_setfatal(library_fatal_error); tybs_error_setunexpected(library_unexpected_error); ns_os_init(program_name);dns_result_register();dst_result_register(); tybscc_result_register();parse_command_line
59、(argc, argv);if (ns_g_chrootdir != NULL) int len = strlen(ns_g_chrootdir);if (strncmp(ns_g_chrootdir, ns_g_conffile, len) = 0 && (ns_g_conffilelen = '/' | ns_g_conffilelen = '') ns_main_earlywarning("config filename (-c %s) contains " "chroot path (-t %s)"
60、, ns_g_conffile, ns_g_chrootdir);result = tybs_mem_create(0, 0, &ns_g_mctx);if (result != TYBS_R_SUCCESS) ns_main_earlyfatal("tybs_mem_create() failed: %s", tybs_result_totext(result);tybs_mem_setname(ns_g_mctx, "main", NULL);setup();do result = tybs_app_run();if (result = TY
61、BS_R_RELOAD) ns_server_reloadwanted(ns_g_server); else if (result != TYBS_R_SUCCESS) UNEXPECTED_ERROR(_FILE_, _LINE_, "tybs_app_run(): %s", tybs_result_totext(result);result = TYBS_R_SUCCESS; while (result != TYBS_R_SUCCESS);#ifdef HA VE_LIBSCFif (ns_smf_want_disable = 1) result = ns_smf_get_instance(&instance, 1, ns_g_mctx);if (result = TYBS_R_SUCCESS && instance != NULL) if (smf_disable_instance(instance, 0) != 0) UNEXPECTED_ERROR(_FILE_, _LINE_, "s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省兰州大学物理科学与技术学院诚聘英才考前自测高频考点模拟试题及答案详解(易错题)
- 土地流转协议(15篇)
- 2025江西南昌市劳动保障事务代理中心招聘劳务派遣人员6人模拟试卷及答案详解(各地真题)
- 2025呼伦贝尔额尔古纳市蒙源旅游文化有限公司招聘136人模拟试卷及1套参考答案详解
- 2025国家电投集团上海核工院招聘考前自测高频考点模拟试题及参考答案详解
- 2025内蒙古政府单位招聘1人考前自测高频考点模拟试题及参考答案详解1套
- 2025广西防城港市总工会招聘编外工作人员1人考前自测高频考点模拟试题及1套参考答案详解
- 2025年光伏发电用测量设备项目合作计划书
- 2025甘肃兰州市城关区司法局招聘司法协理员25人模拟试卷有答案详解
- 2025福建漳州市诏安县财政投资评审中心招募见习人员1人考前自测高频考点模拟试题及1套完整答案详解
- 《陆上风电场工程概算定额》NBT 31010-2019
- 第二版《高中物理题型笔记》上册
- 工艺美术运动代表人物及作品
- (完整版)高考英语考纲3500词汇表
- 洁净厂房监理实施细则
- 初中语文人教九年级下册余光中《乡愁》PPT
- 不孕症规范化诊治流程
- 置业顾问培训方案
- 无陪护病房实施方案
- 全髋关节置换术共93张课件
- 心内科护理质量评分标准
评论
0/150
提交评论