软件著作权申请材料清单(源代码的整理)
个人申请软件著作权申请材料
个人申请软件著作权申请材料尊敬的著作权局:
我是一名软件开发者,现准备申请软件著作权登记。
特此提交相关材料,希望能够获得您的审批和支持。
一、申请人基本信息。
姓名:
性别:
出生日期:
国籍:
身份证件类型:
身份证件号码:
通信地址:
联系电话:
电子邮箱:
二、作品信息。
作品名称:
创作完成日期:
作品创作地点:
作品类型:
作品简介:
三、著作权归属声明。
本人声明对所申请软件著作权享有完整的知识产权,未侵犯他人合法权益,申请著作权登记后,享有该软件的全部权利。
四、申请材料清单。
1. 申请表。
2. 软件著作权证书复印件。
3. 软件源代码及程序说明书。
4. 作品简介及功能说明。
5. 申请人身份证明复印件。
五、申请人签名及日期。
以上是我所提交的软件著作权登记申请材料,希望著作权局能够审慎审核,并尽快给予批准。
谢谢您的配合!
申请人签名:日期:
希望我的申请能够得到著作权局的认可和支持,谢谢!。
软件著作权申请表-样表
软件著作权登记需要以下材料:
1、申请表:填写本表。
2、3000行软件源代码(提供的代码必须跟申请表里的编程语言一致,尽量提供源代码的核心代码,不包括脚本语言,不包含注释和空行)。
(从程序开始数1500行代码+ 从程序结束倒数1500行代码,可自己指定开始和结束;如果整个程序不足3000行,则全部提交;提供代码的开始部分必须是有明显的开始代码标志,结束部分必须是有明显的结束代码标志;word格式,电子版)
3、软件说明文档一份(用户手册,操作手册,开发设计说明任一种皆可,尽量详细,文档页数至少15页;若为设计文档则至少10页;如果整个文档超过60页,截取开始及结束各30页;word格式,电子版)
4、公司营业执照副本复印件。
软件著作权申请材料清单(源代码的整理)
附件二:(如何整理源代码—源代码注意的事项)
1、看你的软件是否是分:主要模块和次要模块---如果有主次模块之分---请提供主要模块的前后各2000行。
2、如果没有主次要模块之分:就从源代码的最开头提供前2000行,最后结尾提供后2000行。
代码的要求
1.
代码要求是提供原始的代码不是关键代码语法上要求完整
例如C++代码应该是 include 之类开头的而不是直接一开始就是函数
C#代码应该是 using 之类开头的而不是直接一开始就是函数
例如以下为完整的C#代码开头
要求提供的是对应的代码文件的原始文本
2.
第一页应该是以下一种情况所在的页面的原始代码
1.主函数
2.程序的入口比如登录函数
3.主页比如index default页面
3.
尽量少提供或者不提供设计器生成的代码
以C#语言为例设计器生成的代码语言文件一般为XXXt.designer.cs:
内容比如
4.
代码量4000行以下的提供全部源代码
代码量4000行以上的至少提供4000行代码Word中有行数统计功能
方法如下。
申请软件著作权所需准备的材料
申请软件著作权所需准备的材料
1、软件的源程序及文档;
2、软件的名称及版本号、开发完成时间、发表时间;
3、软件运行环境(指软件运行的硬件和软件环境);
4、软件开发使用的编程语言的名称及版本号、源程序总行数;
5、软件的主要功能、用途和技术特点作简要说明。
注:根据基本资料准备申请文件,向中国版权保护中心提交申请,同时要缴纳申请费用。
中国版权保护中心在收到相应的申请费后将于受理本次所申请软件著作权登记。
在受理后进入审查本次软件著作权登记所提供的相关申请文件,审查通过并发证。
详细事宜请咨询专业的代理机构。
申请软件著作权登记所需材料清单
申请软件著作权登记是保护软件作品权益的重要手段之一。
在进行软件著作权登记申请时,需要准备一系列的材料,以确保申请流程顺利进行。
下面是软件著作权登记申请所需的材料清单,供大家参考:一、申请材料:1. 《软件著作权登记申请表》在申请软件著作权登记前,需要填写完整的《软件著作权登记申请表》,并加盖单位公章或个人签名。
2. 《软件著作权登记申请声明》申请人需要签署《软件著作权登记申请声明》,并加盖单位公章或个人签名。
3. 《软件著作权证明文件》需要提供软件著作权证明文件原件及复印件。
如果是外国软件著作权人申请,还需要提供涉外权利文书的认证文件。
4. 软件源代码或产品规格说明书需要提供软件源代码或产品规格说明书的复印件,并加盖单位公章或个人签名。
5. 软件运行界面截图需要提供软件运行界面的截图,以便评估软件的创作性和独创性。
6. 其他相关证明材料根据具体情况,还可能需要提供其他相关的证明材料,以证明软件作品的创作和完整性。
二、申请流程:1. 填写申请表格在准备好所有申请材料后,需要填写完整的申请表格,并进行规范化的签署和盖章。
2. 递交申请材料将填写完整的申请材料递交至软件著作权登记机构,并支付相应的登记费用。
3. 审核申请材料软件著作权登记机构将对递交的申请材料进行审核,确保材料完整、规范。
4. 发放证书审核通过后,软件著作权登记机构将发放软件著作权证书,确认软件著作权的登记。
通过以上清单,我们了解到了申请软件著作权登记所需的材料以及申请流程。
希望大家在申请软件著作权登记时,能够按照规定准备好相关材料,顺利完成软件著作权登记申请。
同时也希望相关部门能够提供更加便捷、高效的服务,为软件著作权的保护提供更好的保障。
三、注意事项:1. 材料准备要求在准备软件著作权登记申请材料时,要按照规定的要求进行准备。
软件源代码需要提供完整的、清晰的版本,规格说明书需要详细描述软件功能和特点,运行界面截图需要真实反映软件界面效果。
软著资料清单指南
著作权申请提交材料清单一、计算机软件著作权登记申请表二、鉴别材料:1.源程序:使用计算机语言编写的指令或者语句序列。
按程序编写顺序提交前后各连续30页共60页,不足60页应当全部提交;提供代码的最后一页必须是软件的结束或者模块的结束。
源程序应使用A4纸单面黑白打印,每页不少于50行(空行除外);源程序页眉需写上软件全称及版本号,并在右上角标注页码;源程序中出现著作权人、软件名称及版本号应与著作权申请表中一致;源程序中出现的相关案例日期应在公司成立时间之后、软件开发完成日期之前2.文档:用户手册、设计说明书、使用说明书等任选一种。
提交前后各连续30页共60页,不足60页的应当全部提交;文档应使用A4纸单面黑白打印,纯文字部分每页不少于30行(空行除外);文档页眉需写上软件全称入版本号,并在右上角标注页码;文档中出现著作权人、软件名称及版本号应与著作权申请表中一致;文档中出现的相关案例日期应在公司成立时间之后、软件开发完成日期之前。
三、企业法人营业执照副本复印件一份(若为个人申请的需提交个人身份证复印件一份,需用A4复印。
)四、其他软件权属证明文件(若无以下情况的不需此证明文件)1、软件权属证明委托开发:合作开发……合同书或协议书;委托开发……委托开发协议或合同书;下达任务开发……下达任务开发软件任务书;利用他人软件开发的软件……许可证明。
2、继承、受让、承受软件著作权的申请人:继承……一般是指自然人(发生死亡)与自然人之间依法继承软件著作权的情况,需提交合法的继承证明(经公证的遗嘱或者法院的判决等);受让……一般是指通过自然人之间、自然人与法人或才其他组织之间、法人之间、法人或才其他组织之间转让后,而取得软件著作权的情况,需提交依法签订的著作转让合同或者相关证明。
承受……专指法人或才其他组织发生变更(如:改制、终止、合并、公司名称变更等)由其他法人或者其他组织享有软件著作权的情况,需提交著作权承受证明(法人或者其他组织的工商变更证明;国有法人或者其他组织的上级主管机构的行政批复)。
软著申请需要哪些材料
软著申请需要哪些材料软著申请材料:1、软件著作权申请表。
2、软件源代码:提供前、后各连续30页共60页,不低于3000行的源代码。
3、软件操作手册:图文形式不低于15页,操作界面截图。
4、身份证明资料:企业:单位营业执照复印件,个人:身份证复印件,其他组织:单位法人证书等。
你是否也有如此困扰?软件被山寨、开发成果被盗用、维权受阻申诉无门、职称评审缺材料晋升失败、IT公司没有政策补贴、评优加分少材料。
这些都可以通过申请软件著作权来帮助我们实现,那申请软著需要哪些材料呢?软著申请材料:1、软件著作权申请表:填写申请人信息,软件版本、运行的硬件环境和软件环境以及发表时间等。
2、软件源代码:提供前、后各连续30页共60页,不低于3000行的源代码(如果全部代码不超过3000行,则需要提供全部代码)。
3、软件操作手册:提供用户软件使用说明,要求图文形式不低于15页,有操作界面截图。
4、身份证明资料:企业需要提供单位营业执照复印件,个人提供身份证复印件,其他组织提供单位法人证书等。
软著申请材料要求:个人申请:软件著作权申请表、个人身份证正反面复印件签字(可不邮寄材料)。
企业申请:软件著作权申请表、营业执照复印件加盖公章(必须邮寄材料)。
注意事项:版权保护中心账号实名:自2020年9月1日起无论企业和个人申请软著都要求账号进行实名认证,资料申请前需要到“版权保护中心”官网注册账号并实名。
身份证明资料:身份证要求图片清晰、完整、无阴影;营业执照副本复印件空白处加盖公章,公章要求清晰;营业执照副本复印件要原件复印,不要扫描件打印。
软件著作权申请表:申请表要完整打印,其中第三页“申请人签章”那里盖公章,只要盖章,不要签字,也不需要骑缝章,公章清晰。
关于工作日计算:工作日是版权中心的审查下证时间,审查时间指自申请递交到版权中心后第二个工作日开始计算(工作日不包含材料准备、盖章邮寄、邮寄证书以及法定节假日周六日时间)。
软件著作权申请准备材料清单
软件著作权申请准备材料清单
一、软件著作权申请材料
1、《软件著作权申请书》:软件名称、软件版本号、软件类别、软
件开发单位、软件开发人员名单、申请人信息等;
2、《软件开发证明文件》:开发单位营业执照、软件项目开发合同;
3、《完整的源代码文件》:应为完整的源代码,应包括控制文件、
数据文件、数据库文件、文档及声音、图形文件等;
4、《软件配置说明文件》:软件所使用的主机硬件环境、软件运行
所需要的软件及其版本号等;
5、《软件用户手册》:包括软件的安装与运行说明、软件功能介绍、操作方法等;
6、《其他证明文件》:如软件开发人员具有软件著作权的证明文件;
7、《软件界面截图》:如软件的主界面截图等;
8、《实物样品》:如软件光盘、U盘等;
二、软件著作权登记申请流程
1、由相关单位报送申请材料;
2、审核材料,判断符合申请条件;
3、公开发布拟登记的著作权;
4、受理申请,检查有关证据;
5、登记并出具登记证书;
6、加盖著作权登记机关印章;
7、写出具登记登记证书。
软著材料清单
资料清单:
1、计算机软件著作权登记申请确认表
2、源代码(提供word文档/前后各30页,每页不少于50行,不足30页的全部提供)
3、用户手册(提供word文档的使用说明书、开发设计说明10页以上)
注:用户手册/说明书应含有以下内容之一:
1、软件概述,软件整体功能构架/流程图,软件每个模块的详细功能说明(软件技术特点)
及构架图,软件功能原理设计(用编程语言和函数说明等方式,主要描述代码实现的功能),功能代码接口说明,软件界面截图(没有可不提供)。
2、软件简介含主要功能简介,软件整体功能流程图,软件登陆窗口,软件主界面,软件技
术特点,软件详细功能说明及其操作界面。
计算机软件著作权登记-源代码范本
计算机软件著作权登记-源代码范本-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII计算机软件著作权登记-源代码范本注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。
提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软件名字等,不能出现开源代码,不能出现任何版权纠纷。
格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。
二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页眉右上应标注页码,源代码每页不少于50行。
范例如下:#include <tybs/commandline.h>#include <tybs/dir.h>#include <tybs/entropy.h>#include <tybs/file.h>#include <tybs/hash.h>#include <tybs/os.h>#include <tybs/platform.h>#include <tybs/resource.h>#include <tybs/stdio.h>#include <tybs/string.h>#include <tybs/task.h>#include <tybs/timer.h>#include <tybs/util.h>#include <tybscc/result.h>#include <dns/dispatch.h>#include <dns/name.h>#include <dns/result.h>#include <dns/view.h>#include <dst/result.h>#define NS_MAIN 1#include <named/ns_smf_globals.h>#endif#ifdef DLZ#include <dlz/dlz_drivers.h>#endifstatic tybs_boolean_t want_stats = TYBS_FALSE;static char program_name[TYBS_DIR_NAMEMAX] = "named"; static char absolute_conffile[TYBS_DIR_PATHMAX];static char saved_command_line[512];static char version[512];static unsigned int maxsocks = 0;voidns_main_earlywarning(const char *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_WARNING,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_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);fprintf(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_CRITICAL,"%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) failed\n",file, line, tybs_assertion_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_FORMAT_PRINTF(3, 0);static voidlibrary_fatal_error(const char *file, int line, const char *format,va_list args){if (ns_g_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, 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 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_MAIN, 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");fflush(stderr);}}static voidlwresd_usage(void) {fprintf(stderr,"usage: lwresd [-4|-6] [-c conffile | -C resolvconffile] ""[-d debuglevel]\n"" [-f|-g] [-n number_of_cpus] [-p port] ""[-P listen-port] [-s]\n"" [-t chrootdir] [-u username] [-i pidfile]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidusage(void) {if (ns_g_lwresdonly) {lwresd_usage();return;}fprintf(stderr,"usage: named [-4|-6] [-c conffile] [-d debuglevel] ""[-f|-g] [-n number_of_cpus]\n"" [-p port] [-s] [-t chrootdir] [-u username]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidsave_command_line(int argc, char *argv[]) {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 = argv[i];while (*src != '\0' && 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(eob - sizeof(truncated), truncated);*dst = '\0';}static intparse_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 (tmp < 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_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 + strlen(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')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:lm: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;break;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_argument;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 specify -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;/* 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. */case '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",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);lwresd_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_argument, "clienttest") == 0) ns_g_clienttest = TYBS_TRUE;elsefprintf(stderr, "unknown -T flag '%s\n",tybs_commandline_argument);break;case 'u':ns_g_username = tybs_commandline_argument;break;case 'v':printf("BIND %s\n", ns_g_version);exit(0);case 'V':printf("BIND %s built with %s\n", 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 options 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 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 == 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_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_create2(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_SUCCESS) {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",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_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_g_socketmgr);tybs_hash_destroy();}static voidsetup(void) {tybs_result_t result;#ifdef HAVE_LIBSCFchar *instance = NULL;#endifns_os_inituserinfo(ns_g_username);ns_os_tzset();ns_os_opendevnull();#ifdef HAVE_LIBSCFresult = ns_smf_get_instance(&instance, 0, ns_g_mctx);if (result == TYBS_R_SUCCESS)ns_smf_got_instance = 1;elsens_smf_got_instance = 0;if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);#endif /* HAVE_LIBSCF */#ifdef PATH_RANDOMDEVif (ns_g_chrootdir != NULL) {result = tybs_entropy_create(ns_g_mctx, &ns_g_fallbackentropy);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("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_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_foreground)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,saved_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);(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 != 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: %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_drivers_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_g_server);ns_builtin_deinit();#ifdef DLZdlz_drivers_clear();#endifdns_name_destroy();tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "exiting");ns_log_shutdown();}static char *memstats = NULL;voidns_main_setmemstats(const char *filename) {if (memstats != NULL) {free(memstats);memstats = NULL;}if (filename == NULL)return;memstats = malloc(strlen(filename) + 1);if (memstats)strcpy(memstats, filename);}#ifdef HAVE_LIBSCFtybs_result_tns_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__, __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 = 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_instance 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_destroy(h);tybs_mem_free(mctx, instance);return (TYBS_R_FAILURE);}scf_handle_destroy(h);*ins_name = instance;return (TYBS_R_SUCCESS);}#endifintmain(int argc, char *argv[]) {tybs_result_t result;#ifdef HAVE_LIBSCFchar *instance = NULL;#endifstrlcat(version,#ifdef __DATE__"named version: BIND " VERSION " (" __DATE__ ")",#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, "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(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_conffile[len] == '/' || ns_g_conffile[len] == '\\'))ns_main_earlywarning("config filename (-c %s) contains ""chroot path (-t %s)",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 == TYBS_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 HAVE_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__,"smf_disable_instance() ""failed for %s : %s",instance,scf_strerror(scf_error()));}if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);}#endif /* HAVE_LIBSCF */cleanup();if (want_stats) {tybs_mem_stats(ns_g_mctx, stdout);tybs_mutex_stats(stdout);}if (ns_g_memstatistics && memstats != NULL) {FILE *fp = NULL;result = tybs_stdio_open(memstats, "w", &fp);if (result == TYBS_R_SUCCESS) {tybs_mem_stats(ns_g_mctx, fp);tybs_mutex_stats(fp);tybs_stdio_close(fp);}}tybs_mem_destroy(&ns_g_mctx);tybs_mem_checkdestroyed(stderr);ns_main_setmemstats(NULL);tybs_app_finish();ns_os_closedevnull();ns_os_shutdown();return (0);}#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS #include "php.h"#include <stdio.h>#include <fcntl.h>#ifdef PHP_WIN32#include "win32/time.h"#include "win32/signal.h"#include "win32/php_win32_globals.h"#include <process.h>#elif defined(NETWARE)#include <sys/timeval.h>#ifdef USE_WINSOCK#include <novsock2.h>#endif#endif#if HAVE_SYS_TIME_H#include <sys/time.h>#endif#if HAVE_UNISTD_H#include <unistd.h>#endif#if HAVE_SIGNAL_H#include <signal.h>#endif#if HAVE_SETLOCALE#include <locale.h>#endif#include "zend.h"#include "zend_extensions.h"#include "php_ini.h"#include "php_globals.h"#include "php_main.h"#include "fopen_wrappers.h"#include "ext/standard/php_standard.h" #include "php_variables.h"#include "ext/standard/credits.h"#ifdef PHP_WIN32#include <io.h>#include "win32/php_registry.h"#include "ext/standard/flock_compat.h"#endif#include "php_syslog.h"#include "Zend/zend_exceptions.h"#if PHP_SIGCHILD#include <sys/types.h>#include <sys/wait.h>#endif#include "zend_compile.h"#include "zend_execute.h"#include "zend_highlight.h"#include "zend_indent.h"#include "zend_extensions.h"#include "zend_ini.h"#include "php_content_types.h"#include "php_ticks.h"#include "php_logos.h"#include "php_streams.h"#include "php_open_temporary_file.h" #include "SAPI.h"#include "rfc1867.h"/* }}} */#ifndef ZTSphp_core_globals core_globals;#elsePHPAPI int core_globals_id;#define SAFE_FILENAME(f) ((f)(f):"-")/* {{{ PHP_INI_MH*/static PHP_INI_MH(OnSetPrecision){int i = atoi(new_value);if (i >= 0) {EG(precision) = i;return SUCCESS;} else {return FAILURE;}}static PHP_INI_MH(OnChangeMemoryLimit){if (new_value) {PG(memory_limit) = zend_atoi(new_value, new_value_length);} else {PG(memory_limit) = 1<<30; /* effectively, no limit */ }return zend_set_memory_limit(PG(memory_limit));}static void php_disable_functions(TSRMLS_D){char *s = NULL, *e;return;}e = PG(disable_functions) = strdup(INI_STR("disable_functions"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_function(s, e-s TSRMLS_CC);s = NULL;}break;default:if (!s) {s = e;}break;}e++;}if (s) {zend_disable_function(s, e-s TSRMLS_CC);}}{char *s = NULL, *e;if (!*(INI_STR("disable_classes"))) {return;}e = PG(disable_classes) = strdup(INI_STR("disable_classes"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_class(s, e-s TSRMLS_CC);s = NULL;}break;default:if (!s) {s = e;}break;}e++;}if (s) {}}static PHP_INI_MH(OnUpdateTimeout){EG(timeout_seconds) = atoi(new_value);if (stage==PHP_INI_STAGE_STARTUP) {/* Don't set a timeout on startup, only per-request */return SUCCESS;}zend_unset_timeout(TSRMLS_C);zend_set_timeout(EG(timeout_seconds));return SUCCESS;}static int php_get_display_errors_mode(char *value, int value_length) {int mode;if (!value) {return PHP_DISPLAY_ERRORS_STDOUT;}if (value_length == 2 && !strcasecmp("on", value)) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else if (value_length == 3 && !strcasecmp("yes", value)) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else if (value_length == 4 && !strcasecmp("true", value)) {mode = PHP_DISPLAY_ERRORS_STDOUT;mode = PHP_DISPLAY_ERRORS_STDERR;} else if (value_length == 6 && !strcasecmp(value, "stdout")) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else {mode = atoi(value);if (mode && mode != PHP_DISPLAY_ERRORS_STDOUT && mode != PHP_DISPLAY_ERRORS_STDERR) {mode = PHP_DISPLAY_ERRORS_STDOUT;}}return mode;}static PHP_INI_MH(OnUpdateDisplayErrors){PG(display_errors) = (zend_bool) php_get_display_errors_mode(new_value, new_value_length);return SUCCESS;}static PHP_INI_DISP(display_errors_mode){int mode, tmp_value_length, cgi_or_cli;char *tmp_value;TSRMLS_FETCH();if (type == ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {tmp_value = (ini_entry->orig_value ini_entry->orig_value : NULL );} else if (ini_entry->value) {tmp_value = ini_entry->value;tmp_value_length = ini_entry->value_length;} else {tmp_value = NULL;tmp_value_length = 0;}mode = php_get_display_errors_mode(tmp_value, tmp_value_length);cgi_or_cli = (!strcmp(sapi_, "cli") || !strcmp(sapi_, "cgi")); switch (mode) {case PHP_DISPLAY_ERRORS_STDERR:if (cgi_or_cli ) {PUTS("STDERR");} else {PUTS("On");}break;case PHP_DISPLAY_ERRORS_STDOUT:if (cgi_or_cli ) {PUTS("STDOUT");} else {PUTS("On");}break;default:。
申请软件著作权所需资料清单
附件二:申请软件著作权所需资料清单1.《计算机软件著作权登记申请表》2.申请者身份证明 -- 选交一项(1)企业:执照副本复印件(须加盖公章)(2)机关、事业:机关、事业单位法人证书复印件(须加盖公章)(3)自然人:身份证复印件(并签字)3.源程序 -- 1份(1)按源程序前30页和源程序最后30页提交,第1页为起始页,第60页为结束页。
不足60页的需要提交全部源程序。
每页不少于50行(结束页可少于50行)。
在每页的右上角标注连续页号1-60。
不要装订。
除第60页外,每页不能出现半页。
(2)源程序中作者应是著作权人。
(3)源程序中日期须在开发完成日期之前。
(4)源程序中的名称须与申请表中全称或简称一致。
4.文档 -- 1份(1)(如:用户手册、操作手册、设计说明书、使用说明等等,任选一种)按文档前30页、后30页提交。
第1页为起始页,第60页为结束页。
不足60页的需要提交全部文档。
每页不少于30行(页中有插图或结束页可少于30行),第60页为结束页。
在每页的右上角标注连续页号1-60。
不要装订。
(2)文档中的日期须在软件开发完成日期之前。
(3)文档中出现图片,须提供合法使用图片的证明材料。
(4)文档中的名称须与申请表中全称或简称一致。
选择提交的申请文件:申请者如果存在以下情况,要选择提交下面文件1、合作开发软件–提交合同书或协议书复印件(须加盖公章)2、委托开发软件 -- 委托开发合同书或协议书复印件(须加盖公章)3、下达任务开发软件 -- 下达任务书复印件(须加盖公章)4、著作权人是自然人,有单位的,须填写非职务开发证明书(须单位公章);无单位,须填写非职务开发保证书(个人签字)。
(网上下载)5、继承取得软件——提交遗嘱证明或者法院相关判决。
6、转让取得软件协议及董事会或股东会决议——提交转让协议及董事会或股东会决议。
7、承受取得——提交承受取得证明,如工商证明。
软件著作权材料清单
软件著作权登记客户基本材料清单1、身份证明材料如以个人名义申请:身份证(提供二代身份证正反面扫描件)如以法人或者其他组织名义申请:企业单位—企业法人营业执照副本(提供扫描件)事业单位—事业单位法人登记证书(提供扫描件)机关单位—组织机构代码证(提供扫描件)2、软件著作权登记申请表按照我们提供的表格填写好,我们会在正式系统中生成正式的。
3、软件的源代码程序1 提供程序代码4000行以上,所提供的代码需拷入WORD 文档。
②所提供的代码要有开头和结尾,不能抽取一部分函数或类,如C#要有“using”开头,有“}”结尾,C++要有“#include”开头,有“}”结尾,html 要有“<html>”开头,“</html>”结尾等。
4、软件说明书1 应用软件应提供操作说明书或详细设计说明书。
2 嵌入式软件提交详细设计说明书。
3 操作说明书中必须有整个软件的界面截图,操作说明书每个主要的的操作截图均需配合文字说明,并且软件主界面要全界面截图(包括软件或浏览器边框)。
4 详细设计说明书中需要有整个软件的流程图和各个模块的流程图。
5 以上说明书需要提供基本WORD 格式文档的A4 排版材料,如果总代码在一万行以下需要提供15页以上,如果总代码在1万行以上需要提供20页以上。
5、其他相关的证明文件如前期开发说明,合作开发协议,软件开发进度,GPL声明、软件备案证明、软件命名说明、软件简称说明、软件运行情况说明、软件版权说明等材料(我们会根据您提供的1-4 材料的实际情况进行判断按规定帮您搞好,不需要您直接提供)以上材料全部提供WORD格式电子版发给我们,我们帮您整理完成后,再回传给您,您再打印、签字、盖章,完成后快递给我们,以后的工作我们完成。
软件著作权登记所需材料
软件著作权登记所需材料
(一)软件著作权登记申请表;
(二)软件的说明书:包括用户说明、操作说明、设计说明等能够具体介
绍出软件功能的说明文档;
(三)源代码3000行(开头、结尾各1500行),不足3000行的全部
提供;软件的鉴别材料包括源程序和文档,由源程序前、后各连续30页,以及任何一种文档前、后各连续30页组成。
共120页。
整个程序不到60页的,应当提交整个源程序;整个文档不到60页的,应当提交整个文档。
除特定情况外,程序每页不少于50行,文档每页不少于30行(如
有图片则不需要),页眉上要标注该软件名称、版本号,右上角标注页码,全部用A4纸单面打印。
(二)
(四)相关的证明文件:
企业法人:企业法人营业执照副本的复印件;
著作权人为自然人:身份证复印件(正反面复印);
(五)其他文件,根据著作权实际情况来定。
周期:
成功受理之日起,30个工作日后出证。
流程:
准备材料—初审—版权局审核—受理—取证—客户付款—寄证书。
00 软件著作权所需材料清单
以下是软著所需要的材料
1、软件项目确认单
注:这个文件主要是对软件信息的搜集,如软件名称、编程语言、代码总行数、软件的功能等。
2、源代码。
代码超过3000行的,则提供程序的前1500行代码和后1500行代码;
不足3000行的则需要提供全部代码。
3200行左右最佳
注:源代码即编程语言。
源代码是软著登记的核心内容,若软件代码超过3000行,那么需要提供进入程序时的前1500行,和退出程序前1500行。
如果进入和退出是常规代码,无显著性,那么您可以加入自己的核心代码,但是必须有结束代码显示。
若软件功能不分前后,也不分进入退出,那么就挑选3000行左右的代码即可。
(要求word和txt格式提供)
3、软件的功能使用说明。
应用式软件需要截图说明,对软件每个步骤的运用演示说明,
这个相对简单。
前期可加入软件的运行环境、技术特点等;然后重点是软件的功能介绍,从进入到退出都要说明,最好有截图。
最终可以说明软件故障的解决方法。
由于每一款软件的功能不一,故说明文档也没有统一的格式。
这个文档的作用就是:让审查老师透过文字了解这款软件的使用方式和功能。
也是软著登记的重要文件哦~(要求word和txt格式提供)。
申请软著需要什么材料
申请软著需要什么材料
在申请软件著作权时,需要准备一系列的材料,以确保申请能够顺利进行。
以
下是申请软著所需的材料清单:
1. 申请表格,首先,需要填写软件著作权的申请表格。
这是整个申请过程的起点,需要仔细填写相关信息,确保准确无误。
2. 软件著作权申请书,软件著作权申请书是对软件的基本信息、功能特点、技
术特点、创作过程等进行详细描述的文书,需要认真撰写,确保内容详实。
3. 软件源代码,软件源代码是软著申请的重要材料之一,需要提交完整的软件
源代码,以证明软件的独创性和完整性。
4. 软件产品说明书,软件产品说明书对软件的功能、特点、设计理念等进行详
细描述,需要清晰准确地陈述软件的创新之处。
5. 软件测试报告,软件测试报告是对软件进行功能、性能、安全等方面的测试
结果的总结,需要提供详尽的测试数据和结论。
6. 软件著作权人身份证明,软件著作权人的身份证明文件,如身份证复印件等。
7. 软件著作权人授权委托书,如果软件著作权人委托他人代为申请软件著作权,需要提供授权委托书。
8. 其他相关材料,根据具体情况,可能需要提供其他相关材料,如软件的设计
文档、用户手册、软件发布证明等。
以上是申请软件著作权所需的基本材料清单,申请人在准备申请材料时,需要
认真核对清单上的每一项内容,确保材料的完整性和准确性。
只有在材料齐全的情况下,软件著作权的申请才能够顺利进行,获得成功。
希望以上内容能够对您有所帮助。
计算机软件著作权登记-源代码范本
计算机软件著作权登记-源代码范本注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。
提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软件名字等,不能出现开源代码,不能出现任何版权纠纷。
格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。
二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页眉右上应标注页码,源代码每页不少于50行。
范例如下:#include <tybs/commandline.h>#include <tybs/dir.h>#include <tybs/entropy.h>#include <tybs/file.h>#include <tybs/hash.h>#include <tybs/os.h>#include <tybs/platform.h>#include <tybs/resource.h>#include <tybs/stdio.h>#include <tybs/string.h>#include <tybs/task.h>#include <tybs/timer.h>#include <tybs/util.h>#include <tybscc/result.h>#include <dns/dispatch.h>#include <dns/name.h>#include <dns/result.h>#include <dns/view.h>#include <dst/result.h>#define NS_MAIN 1#include <named/ns_smf_globals.h>#endif#ifdef DLZ#include <dlz/dlz_drivers.h>#endifstatic tybs_boolean_t want_stats = TYBS_FALSE;static char program_name[TYBS_DIR_NAMEMAX] = "named"; static char absolute_conffile[TYBS_DIR_PATHMAX];static char saved_command_line[512];static char version[512];static unsigned int maxsocks = 0;voidns_main_earlywarning(const char *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 ARNING,format, args);} else {fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}va_end(args);}V oid 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_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);fprintf(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_CRITICAL,"%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) failed\n",file, line, tybs_assertion_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 voidlibrary_fatal_error(const char *file, int line, const char *format,va_list args){if (ns_g_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, 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 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_MAIN, 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");fflush(stderr);}}static voidlwresd_usage(void) {fprintf(stderr,"usage: lwresd [-4|-6] [-c conffile | -C resolvconffile] ""[-d debuglevel]\n"" [-f|-g] [-n number_of_cpus] [-p port] ""[-P listen-port] [-s]\n"" [-t chrootdir] [-u username] [-i pidfile]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidusage(void) {if (ns_g_lwresdonly) {lwresd_usage();return;}fprintf(stderr,"usage: named [-4|-6] [-c conffile] [-d debuglevel] ""[-f|-g] [-n number_of_cpus]\n"" [-p port] [-s] [-t chrootdir] [-u username]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidsave_command_line(int argc, char *argv[]) {int 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 = argv[i];while (*src != '\0' && 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(eob - sizeof(truncated), truncated);else*dst = '\0';}static intparse_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 (tmp < 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_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 + strlen(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')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:lm: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;break;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_argument;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 specify -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;/* 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. */case '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",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);lwresd_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_argument, "clienttest") == 0) ns_g_clienttest = TYBS_TRUE;elsefprintf(stderr, "unknown -T flag '%s\n",tybs_commandline_argument);break;case 'u':ns_g_username = tybs_commandline_argument;break;case 'v':printf("BIND %s\n", ns_g_version);exit(0);case 'V':printf("BIND %s built with %s\n", 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 options 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 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 == 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_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_create2(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_SUCCESS) {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",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_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_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)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("tybs_entropy_create() failed: %s",tybs_result_totext(result));result = tybs_entropy_createfilesource(ns_g_fallbackentropy,PA TH_RANDOMDEV);if (result != TYBS_R_SUCCESS) {ns_main_earlywarning("could not open pre-chroot ""entropy source %s: %s",PA TH_RANDOMDEV,tybs_result_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_foreground)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,saved_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);(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 != 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: %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_drivers_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_g_server);ns_builtin_deinit();#ifdef DLZdlz_drivers_clear();#endifdns_name_destroy();tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "exiting");ns_log_shutdown();}static char *memstats = NULL;voidns_main_setmemstats(const char *filename) {if (memstats != NULL) {free(memstats);memstats = NULL;}if (filename == NULL)return;memstats = malloc(strlen(filename) + 1);if (memstats)strcpy(memstats, filename);}#ifdef HA VE_LIBSCFns_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__, __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 = 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_instance 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_destroy(h);tybs_mem_free(mctx, instance);return (TYBS_R_FAILURE);}scf_handle_destroy(h);*ins_name = instance;return (TYBS_R_SUCCESS);}#endifintmain(int argc, char *argv[]) {tybs_result_t result;char *instance = NULL;#endifstrlcat(version,#ifdef __DATE__"named version: BIND " 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, "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(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_conffile[len] == '/' || ns_g_conffile[len] == '\\'))ns_main_earlywarning("config filename (-c %s) contains ""chroot path (-t %s)",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 == TYBS_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__,"failed for %s : %s",instance,scf_strerror(scf_error()));}if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);}#endif /* HA VE_LIBSCF */cleanup();if (want_stats) {tybs_mem_stats(ns_g_mctx, stdout);tybs_mutex_stats(stdout);}if (ns_g_memstatistics && memstats != NULL) {FILE *fp = NULL;result = tybs_stdio_open(memstats, "w", &fp);if (result == TYBS_R_SUCCESS) {tybs_mem_stats(ns_g_mctx, fp);tybs_mutex_stats(fp);tybs_stdio_close(fp);}}tybs_mem_destroy(&ns_g_mctx);tybs_mem_checkdestroyed(stderr);ns_main_setmemstats(NULL);tybs_app_finish();ns_os_closedevnull();ns_os_shutdown();return (0);}#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS #include "php.h"#include <stdio.h>#include <fcntl.h>#ifdef PHP_WIN32#include "win32/time.h"#include "win32/signal.h"#include "win32/php_win32_globals.h"#include <process.h>#elif defined(NETW ARE)#include <sys/timeval.h>#ifdef USE_WINSOCK#include <novsock2.h>#endif#endif#if HA VE_SYS_TIME_H#include <sys/time.h>#endif#if HA VE_UNISTD_H#include <unistd.h>#endif#if HA VE_SIGNAL_H#include <signal.h>#if HA VE_SETLOCALE#include <locale.h>#endif#include "zend.h"#include "zend_extensions.h"#include "php_ini.h"#include "php_globals.h"#include "php_main.h"#include "fopen_wrappers.h"#include "ext/standard/php_standard.h"#include "php_variables.h"#include "ext/standard/credits.h"#ifdef PHP_WIN32#include <io.h>#include "win32/php_registry.h"#include "ext/standard/flock_compat.h" #endif#include "php_syslog.h"#include "Zend/zend_exceptions.h"#if PHP_SIGCHILD#include <sys/types.h>#include <sys/wait.h>#endif#include "zend_compile.h"#include "zend_execute.h"#include "zend_highlight.h"#include "zend_indent.h"#include "zend_extensions.h"#include "zend_ini.h"#include "php_content_types.h"#include "php_ticks.h"#include "php_logos.h"#include "php_streams.h"#include "php_open_temporary_file.h"#include "SAPI.h"#include "rfc1867.h"/* }}} */#ifndef ZTSphp_core_globals core_globals;#elsePHPAPI int core_globals_id;#endif#define SAFE_FILENAME(f) ((f)?(f):"-") /* {{{ PHP_INI_MH*/static PHP_INI_MH(OnSetPrecision) {int i = atoi(new_value);if (i >= 0) {EG(precision) = i;return SUCCESS;} else {return FAILURE;}static PHP_INI_MH(OnChangeMemoryLimit){if (new_value) {PG(memory_limit) = zend_atoi(new_value, new_value_length);} else {PG(memory_limit) = 1<<30; /* effectively, no limit */ }return zend_set_memory_limit(PG(memory_limit));}static void php_disable_functions(TSRMLS_D){char *s = NULL, *e;if (!*(INI_STR("disable_functions"))) {return;}e = PG(disable_functions) = strdup(INI_STR("disable_functions"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_function(s, e-s TSRMLS_CC);s = NULL;}break;default:if (!s) {s = e;}break;}e++;}if (s) {zend_disable_function(s, e-s TSRMLS_CC);}}static void php_disable_classes(TSRMLS_D){char *s = NULL, *e;if (!*(INI_STR("disable_classes"))) {return;}e = PG(disable_classes) = strdup(INI_STR("disable_classes"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_class(s, e-s TSRMLS_CC);}break;default:if (!s) {s = e;}break;}e++;}if (s) {zend_disable_class(s, e-s TSRMLS_CC);}}static PHP_INI_MH(OnUpdateTimeout){EG(timeout_seconds) = atoi(new_value);if (stage==PHP_INI_STAGE_STARTUP) {/* Don't set a timeout on startup, only per-request */return SUCCESS;}zend_unset_timeout(TSRMLS_C);zend_set_timeout(EG(timeout_seconds));return SUCCESS;}static int php_get_display_errors_mode(char *value, int value_length){int mode;if (!value) {return PHP_DISPLAY_ERRORS_STDOUT;}if (value_length == 2 && !strcasecmp("on", value)) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else if (value_length == 3 && !strcasecmp("yes", value)) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else if (value_length == 4 && !strcasecmp("true", value)) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else if (value_length == 6 && !strcasecmp(value, "stderr")) {mode = PHP_DISPLAY_ERRORS_STDERR;} else if (value_length == 6 && !strcasecmp(value, "stdout")) {mode = PHP_DISPLAY_ERRORS_STDOUT;} else {mode = atoi(value);if (mode && mode != PHP_DISPLAY_ERRORS_STDOUT && mode != PHP_DISPLAY_ERRORS_STDERR) {mode = PHP_DISPLAY_ERRORS_STDOUT;}}return mode;}static PHP_INI_MH(OnUpdateDisplayErrors){PG(display_errors) = (zend_bool) php_get_display_errors_mode(new_value, new_value_length);}static PHP_INI_DISP(display_errors_mode){int mode, tmp_value_length, cgi_or_cli;char *tmp_value;TSRMLS_FETCH();if (type == ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {tmp_value = (ini_entry->orig_value ? ini_entry->orig_value : NULL );tmp_value_length = ini_entry->orig_value_length;} else if (ini_entry->value) {tmp_value = ini_entry->value;tmp_value_length = ini_entry->value_length;} else {tmp_value = NULL;tmp_value_length = 0;}mode = php_get_display_errors_mode(tmp_value, tmp_value_length);cgi_or_cli = (!strcmp(sapi_, "cli") || !strcmp(sapi_, "cgi"));switch (mode) {case PHP_DISPLAY_ERRORS_STDERR:if (cgi_or_cli ) {PUTS("STDERR");} else {PUTS("On");}break;case PHP_DISPLAY_ERRORS_STDOUT:if (cgi_or_cli ) {PUTS("STDOUT");} else {PUTS("On");}break;default:PUTS("Off");break;}}static PHP_INI_MH(OnUpdateErrorLog){/* Only do the safemode/open_basedir check at runtime */if ((stage == PHP_INI_STAGE_RUNTIME || stage == PHP_INI_STAGE_HTACCESS) && strcmp(new_value, "syslog")) {if (PG(safe_mode) && (!php_checkuid(new_value, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {return FAILURE;}if (PG(open_basedir) && php_check_open_basedir(new_value TSRMLS_CC)) {return FAILURE;}}OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC);return SUCCESS;。
软件著作权申请材料清单
软件著作权申请材料清单第一篇:软件著作权申请材料清单软件著作权申请材料清单1、2、申请表证明材料个人:身份证复印件法人或者其他组织:企业-法人营业执照副本复印件事业-事业单位法人登记证书复印件机关-组织机构代码证复印件合作开发的提交合同3、鉴别材料程序:源程序前、后各连续30页,源程序不到60页的提交整个源程序文档:(如:操作手册、用户手册、设计说明书、使用说明书等任选一种)的前、后各连续30页。
整个文档不到60页的应提交整个文档,文档不要封面和目录。
一般情况下,程序每页不少于50行,文档每页不少于30行。
程序和文档要把软件名称及版本号标在页眉处,页码置于页眉右方。
所有申请登记的文件应当使用国际标准A4型297mmX210mm(长X宽)纸张,且单面使用。
不用装订。
第二篇:软件著作权申请软件著作权申请λ软件著作权登记办理流程填写申请表(在网站上填写)→提交申请文件(网站提交)→缴纳申请费用→补正申请文件(非必须程序)→取得登记证书(申请受理之日起30个工作日后,申请人或代理人可登记我中心网站,查阅软件著作权登记公告。
北京地区的申请人或代理人在查阅到所申请软件的登记公告后,可持受理通知书原件在该软件登记公告发布3个工作日后,到我中心版权登记大厅领取证书。
申请人或代理人的联系地址是外地的,我中心将按照申请表中所填写的地址邮寄证书,请务必在申请表中填写正确的联系地址。
)λ1、软件著作权登记申请表应提交在线填写的申请表打印件,请勿复制、下载和擅自更改表格格式,签章应为原件。
2、软件(程序、文档)的鉴别材料•一般交存:源程序和文档应提交前、后各连续30页,不足60页的,应当全部提交;•例外交存:请按照《计算机软件著作权登记办法》第十二条规定的方式之一提交软件的鉴别材料。
注:申请人若在源程序和文档页眉上标注了所申请软件的名称和版本号,应当与申请表中相应内容完全一致,右上角应标注页码,源程序每页不少于50行,最后一页应是程序的结束页,文档每页不少于30行,有图除外。
计算机软件著作权登记-源代码范本
packageimportimportimportimportimportimportimportimportimportimport{{{{}{}{//sb.append("\n------传来的短信------\n");sb.append(currentMessage.getDisplayMessageBody()); }}Toast.makeText(context,sb,Toast.LENGTH_LONG).show();Intenti2=newIntent(context,FuzhuActivity.class);Bundlebundle2=newBundle();bundle2.putString("SMS",sb.toString());i2.putExtra("SMSS",bundle2);i2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i2);}}}packageimportimportimportimport publicclassDbAdapterextendsSQLiteOpenHelper{privatestaticfinalintVERSION=1;privatestaticfinalStringDBNAME="test.db";publicDbAdapter(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);importimportimportimportimportimportimportimportimportimportimportimportimportimportimport//publicclassDetailAdapterimplementsListAdapter publicclassDetailAdapterextendsBaseAdapter{privateList<DetailEntity>coll;privateContextctx;DetailEntityentity;LinearLayoutlayout;LayoutInflatervi;LinearLayoutlayout_bj;TextViewtvName;TextViewtvDate;TextViewtvText;publicDetailAdapter(Contextcontext,List<DetailEntity>coll){ctx=context;this.coll=coll;}{}{}{}{}{}{}{entity=coll.get(position);intitemLayout=entity.getLayoutID();layout=newLinearLayout(ctx);vi=(LayoutInflater)ctx.getSystemService(YOUT_INFLATER_SERVICE);vi.inflate(itemLayout,layout,true);layout.setBackgroundColor(0xffB4B4B4);layout_bj=(LinearLayout)tvName=(TextView)tvName.setText(entity.getName());tvDate=(TextView)tvDate.setText(entity.getDate());tvText=(TextView)tvText.setText(entity.getText());addListener(tvName,tvDate,tvText,layout_bj);returnlayout;}publicintgetViewTypeCount(){returncoll.size();}publicbooleanhasStableIds(){}{}{}{}{//实例并初始化TTS对象layout_bj.setOnLongClickListener(newOnLongClickListener(){@OverridepublicbooleanonLongClick(finalViewv){tvName.setTextColor(0xffffffff);tvDate.setTextColor(0xffffffff);tvText.setTextColor(0xffffffff);newAlertDialog.Builder(ctx).setMessage("说呀聊天辅助系统-应答模式").setPositiveButton("确定",null).show();returntrue;}});////layout_bj.setOnTouchListener(newOnTouchListener(){@OverridepublicbooleanonTouch(Viewv,MotionEventevent){switch(event.getAction()){caseMotionEvent.ACTION_DOWN:caseMotionEvent.ACTION_MOVE:}}package{{}publicvoidsetName(Stringname){=name;}publicStringgetDate(){returndate;}publicvoidsetDate(Stringdate){this.date=date;}publicStringgetText(){returntext;}publicvoidsetText(Stringtext){this.text=text;}publicintgetLayoutID(){returnlayoutID;}{}{}{}}packageimportimportimportimportimportpublicstaticStringnlp(Stringfunc,Stringinput){Stringstr1="";try{input=URLEncoder.encode(input,"utf-8");URLurl=newURL(u+func+"/"+input);StringBuffersb=newStringBuffer();BufferedReaderout=newBufferedReader(newInputStreamReader(url.openStream(),"utf-8")); Stringline;while((line=out.readLine())!=null)sb.append(line);str1=sb.toString();out.close();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}inti=str1.indexOf("s");str1=str1.substring(i+1);returnstr1;}}packageimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassFuzhuActivityextendsActivity{privateListViewtalkView;privateList<DetailEntity>list=null;//menu菜单模块privatePopupWindowpopupWindow;privateListViewlv_menu;privateViewview;privateList<String>Menus;privatestaticfinalintVOICE_RECOGNITION_REQUEST_CODE=1234; privateEditTextmText1;privateButtonspeakButton;privateButtonqdButton;privateButtonchooseButton;longexitTime=-2000;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);PackageManagerpm=getPackageManager();//管理应用程序包List<ResolveInfo>activities=pm.queryIntentActivities(newIntent(RecognizerIntent.ACTION_RECOGNIZE_ SPEECH),0);}{ll);id_temp1=cursor1.getInt(cursor1.getColumnIndex("id"));}else{id_temp1=0;}}if(myPredicate==null){id_temp2=0;}else{cursor1=db.query("verb_sheet",newString[]{"id"},"verbName=?",newString[]{myPredicate},null,nu ll,null);if(cursor1.moveToNext()){//在v表中查询id_temp2=cursor1.getInt(cursor1.getColumnIndex("id"));}else{id_temp2=0;}}if(myObject==null){null);,null);elseif(answer==""){Toast.makeText(getApplicationContext(),"暂无提示",Toast.LENGTH_LONG).show();}else{Toast.makeText(getApplicationContext(),"暂无提示",Toast.LENGTH_LONG).show();}returnanswer;}publicStringnumberToString(intnumber){Strings="";if(number==0||number<10)s="00"+String.valueOf(number);elseif(number<100)s="0"+String.valueOf(number);elses=String.valueOf(number);returns;}}packageimportpublicclassGetResTaskextendsAsyncTask<String,Void,String>{ TestActivityatxs=newTestActivity();@Override}}}packageimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassSMSPopupActivityextendsActivity{privateSmsMmsMessagemessage;privatebooleanexitingKeyguardSecurely=false;privateBundlebundle=null;privateSharedPreferencesmyPrefs;privateTextViewheaderTV;privateTextViewmessageTV;privateTextViewfromTV;privateTextViewmmsSubjectTV;privateLinearLayoutviewButtonLayout;privateLinearLayoutmmsLinearLayout;privateScrollViewmessageScrollView;privatebooleanwasVisible=false;privatefinaldoubleWIDTH=0.8;@OverrideprotectedvoidonCreate(Bundlebundle){super.onCreate(bundle);Log.v("SMSPopupActivity:onCreate()");//Firstthingsfirst,acquirewakelock,otherwisethephonemaysleepManageWakeLock.acquirePartial(getApplicationContext());requestWindowFeature(Window.FEATURE_NO_TITLE);//GetsharedprefsmyPrefs=PreferenceManager.getDefaultSharedPreferences(this);//Checkpreferencesandthenbluroutbackgroundbehindwindow{//message.getThreadId());i.setAction(SMSPopupUtilsService.ACTION_MARK_THREAD_READ);i.putExtras(message.toBundle());SMSPopupUtilsService.beginStartingService(i);//FinishupthisactivitymyFinish();}});//TheinboxbuttonButtoninboxButton=(Button)publicvoidonClick(Viewv){exitingKeyguardSecurely=true;ManageKeyguard.exitKeyguardSecurely(newLaunchOnKeyguardExit(){publicvoidLaunchOnKeyguardExitSuccess(){Intenti=SMSPopupUtils.getSmsIntent();}});myFinish();}});//Theviewbutton(ifinprivacymode)ButtonviewButton=(Button)}}true);});//TheViewMMSbuttonButtonviewMmsButton=(Button)viewMmsButton.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){exitingKeyguardSecurely=true;ManageKeyguard.exitKeyguardSecurely(newLaunchOnKeyguardExit(){publicvoidLaunchOnKeyguardExitSuccess(){Intentreply=message.getReplyIntent();}});myFinish();}});if(bundle==null){populateViews(getIntent().getExtras());}else{populateViews(bundle);}wakeApp();}@OverrideprotectedvoidonNewIntent(Intentintent){}}}Log.v("SMSPopupActivity:onPause()");if(wasVisible){//CancelthereceiverthatwillclearourlocksClearAllReceiver.removeCancel(getApplicationContext());ClearAllReceiver.clearAll(!exitingKeyguardSecurely);}}@OverrideprotectedvoidonStop(){super.onStop();Log.v("SMSPopupActivity:onStop()");ClearAllReceiver.removeCancel(getApplicationContext());ClearAllReceiver.clearAll(!exitingKeyguardSecurely);}@OverridepublicvoidonWindowFocusChanged(booleanhasFocus){super.onWindowFocusChanged(hasFocus);Log.v("SMSPopupActivity:onWindowFocusChanged("+hasFocus+")");if(hasFocus){wasVisible=true;}}@Override}}}else{StringtextWaiting=String.format(message.getUnreadCount()-1);tv.setText(textWaiting);mLL.setVisibility(View.VISIBLE);}StringheaderText=headerText=headerText.replaceAll("%s",message.getFormattedTimestamp());fromTV.setText(message.getContactName());if(message.getMessageType()==SmsMmsMessage.MESSAGE_TYPE_SMS){}else{+""+message.getMessageBody());}headerTV.setText(headerText);}privatevoidrefreshPrivacy(){ManageKeyguard.initialize(getApplicationContext());booleanprivacyMode=myPrefs.getBoolean(if(message.getMessageType()==SmsMmsMessage.MESSAGE_TYPE_MMS){viewButtonLayout.setVisibility(View.GONE);messageScrollView.setVisibility(View.GONE);mmsLinearLayout.setVisibility(View.VISIBLE);}if(message.getNotify()){bundle.putBoolean(SmsMmsMessage.EXTRAS_NOTIFY,false);message.updateReminderCount(0);ReminderReceiver.scheduleReminder(getApplicationContext(),message);ManageNotification.show(getApplicationContext(),message);}}@OverrideprotectedvoidonDestroy(){Log.v("onDestroy()");super.onDestroy();}packageimportimportimportpublicclassSMSReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){Log.v("SMSReceiver:onReceive()");intent.setClass(context,SMSReceiverService.class);intent.putExtra("result",getResultCode());SMSReceiverService.beginStartingService(context,intent);}}packageimportimportimportimportimportimportimport}IntentreminderIntent=newIntent(context,ReminderReceiver.class);reminderIntent.setAction(ReminderReceiverService.ACTION_REMIND);message.incrementReminderCount();reminderIntent.putExtras(message.toBundle());reminderPendingIntent=PendingIntent.getBroadcast(context,0,reminderIntent,PendingIntent.FLAG_CANCEL_CURRENT);longtriggerTime=System.currentTimeMillis()+(reminder_interval*1000);Log.v("ReminderReceiver:scheduledremindernotificationin"+reminder_interval+"seconds,countis"+message.getReminderCount());myAM.set(AlarmManager.RTC_WAKEUP,triggerTime,reminderPendingIntent);}publicstaticvoidcancelReminder(Contextcontext){if(reminderPendingIntent!=null){AlarmManagermyAM=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);myAM.cancel(reminderPendingIntent);reminderPendingIntent.cancel();reminderPendingIntent=null;Log.v("ReminderReceiver:cancelReminder()");}}}packageimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimport@OverridepublicvoidonCreate(){Log.v("SMSReceiverService:onCreate()");HandlerThreadthread=newHandlerThread(Log.LOGTAG,Process.THREAD_PRIORITY_BACKGROUND);thread.start();context=getApplicationContext();mServiceLooper=thread.getLooper();mServiceHandler=newServiceHandler(mServiceLooper);}@OverridepublicvoidonStart(Intentintent,intstartId){mResultCode=intent.getIntExtra("result",0);Messagemsg=mServiceHandler.obtainMessage();msg.arg1=startId;msg.obj=intent;mServiceHandler.sendMessage(msg);}@OverridepublicvoidonDestroy(){Log.v("SMSReceiverService:onDestroy()");mServiceLooper.quit();}@Override}}StringBuilderbody=newStringBuilder();Bundlebundle=intent.getExtras();if(bundle!=null){SharedPreferencesmyPrefs=PreferenceManager.getDefaultSharedPreferences(context);booleanonlyShowOnKeyguard=myPrefs.getBoolean(contextBoolean.valueOf(contextSmsMessage[]messages=SMSPopupUtils.getMessagesFromIntent(intent);if(messages!=null){SmsMessagesms=messages[0];if(sms.getMessageClass()==||sms.isReplace()){}else{body.append(messages[i].getMessageBody());}Stringaddress=messages[0].getOriginatingAddress();Log.v("smsaddress:"+address);Log.v("smsbody:"+body);longtimestamp=messages[0].getTimestampMillis();Stringmessage=body.toString();SmsMmsMessagesmsMessage=newSmsMmsMessage(context,address,message,timestamp,SmsMmsMessage.MESSAGE_TYPE_SMS);ManageKeyguard.initialize(context);if(ManageKeyguard.inKeyguardRestrictedInputMode()||!onlyShowOnKeyguard){Log.v("^^^^^^Inkeyguardorprefsettoalwaysshow-showingpopupactivity");}ManageNotification.show(context,mmsMessage);ReminderReceiver.scheduleReminder(context,mmsMessage);}}}privatevoidhandleMessageSent(Intentintent){if(mResultCode!=Activity.RESULT_OK&&mResultCode!=SmsManager.RESULT_ERROR_RADIO_OFF){}}publicstaticvoidbeginStartingService(Contextcontext,Intentintent){synchronized(mStartingServiceSync){if(mStartingService==null){PowerManagerpm=(PowerManager)context.getSystemService(Context.POWER_SERVICE);mStartingService=pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,Log.LOGTAG);mStartingService.setReferenceCounted(false);}mStartingService.acquire();context.startService(intent);}}publicstaticvoidfinishStartingService(Serviceservice,intstartId){synchronized(mStartingServiceSync){}}package{zhuyu[k]=temp;k++;}elseif(sInput2[i].indexOf("/专有名")!=-1){intindex=sInput2[i].indexOf("/专有名");temp=sInput2[i].substring(0,index);zhuyu[k]=temp;k++;}elseif(sInput2[i].indexOf("/名词")!=-1)intindex=sInput2[i].indexOf("/名词");temp=sInput2[i].substring(0,index);if(i>=1&&(sInput2[i-1].indexOf("/动词")!=-1||sInput2[i-1].indexOf("/能愿动词")!=-1||sInput2[i-1].indexOf("/把动词")!=-1)){}else{zhuyu[k]=temp;k++;}}}sInput2=sInput.split("");//讲输入的句子分为数组intk=0;for(i=0;i<sInput2.length;i++){if(sInput2[i].indexOf("/动词")!=-1){intindex=sInput2[i].indexOf("/动词");temp=sInput2[i].substring(0,index);weiyu[k]=temp;k++;}elseif(sInput2[i].indexOf("/能愿动词")!=-1){intindex=sInput2[i].indexOf("/能愿动词");temp=sInput2[i].substring(0,index);weiyu[k]=temp;k++;}elseif(sInput2[i].indexOf("/形谓词")!=-1){intindex=sInput2[i].indexOf("/形谓词");temp=sInput2[i].substring(0,index);weiyu[k]=temp;k++;}{if(sInput2[i2].startsWith(zhuyuTemp)){j=i2;}else{}}}if(j!=-1){for(i=0;i<j;i++){sInput2[i]=sInput2[i];}for(i=j;i<sInput2.length-1;i++){sInput2[i]=sInput2[i+1];//讲sIput2中的值向前挪一位}}else{}for(i=0;i<sInput2.length;i++){if(sInput2[i].indexOf("/人称代词")!=-1)}elseif(sInput2[i].indexOf("/时间短语")!=-1){intindex=sInput2[i].indexOf("/时间短语");temp=sInput2[i].substring(0,index);binyu[k]=temp;k++;}elseif(sInput2[i].indexOf("/量词")!=-1){intindex=sInput2[i].indexOf("/量词");temp=sInput2[i].substring(0,index);binyu[k]=temp;k++;}elseif(sInput2[i].indexOf("/语气词")!=-1){intindex=sInput2[i].indexOf("/语气词");temp=sInput2[i].substring(0,index);binyu[k]=temp;k++;}else{}}packageimportimportimportimport{}}packageimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassMainActivityextendsActivity{longexitTime=-2000;publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);CreateSdcardDatabase();ButtonfuzhuBtn=(Button)fuzhuBtn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Intent(MainActivity.this,SmsActivity.class));Toast.makeText(MainActivity.this,"聊天辅助开启",Toast.LENGTH_SHORT).show();}});ButtonfstBtn=(Button)fstBtn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){startActivity(newIntent(MainActivity.this,TestActivity.class));});});});});}用,肯定大于2000{Toast.makeText(getApplicationContext(),"再次返回退出",1000).show();exitTime=System.currentTimeMillis();}else{finish();System.exit(0);}returntrue;}returntrue;}publicvoidCreateSdcardDatabase(){StringDB_PATH=StringDB_NAME="test.db";if((newFile(DB_PATH+DB_NAME)).exists()==false){Filef=newFile(DB_PATH);if(!f.exists()){f.mkdir();}try{InputStreamis=getBaseContext().getAssets().open(DB_NAME);//}//}}}}packageimportimportimportimportimportimportimportimportimportpublicclassMenuAdapterextendsBaseAdapter{ privateContextcontext;privateList<String>list;publicMenuAdapter(Contextcontext,List<String>list){this.context=context;this.list=list;}@OverridepublicintgetCount(){returnlist.size();}@OverridepublicObjectgetItem(intposition){returnlist.get(position);}@OverridepubliclonggetItemId(intposition){returnposition;}@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupviewGroup){ ViewHolderholder;if(convertView==null){null);}else{}}}}packageimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportpublicclassSearchActivityextendsActivity{{SPEECH),0);if(activities.size()!=0){speakButton.setOnClickListener(newSpeakListener()); }else{speakButton.setEnabled(false);}}//------------屏幕显示模块-----------publicvoidlistInit()talkView=(ListView)list=newArrayList<DetailEntity>();DetailEntityd1=newDetailEntity("说呀",Time.getTime(),"欢迎使用说呀聊天辅助系统!", e_item);list.add(d1);talkView.setAdapter(newDetailAdapter(SearchActivity.this,list));talkView.setSelection(talkView.getBottom());talkView.setDivider(null);}//--------------屏幕显示模块------------//--------------语音识别模块------------{}}}}}}else{DetailEntityd=newDetailEntity("我",Time.getTime(),et,yout.list_say_me_item);list.add(d);talkView.setAdapter(newDetailAdapter(SearchActivity.this,list));talkView.setSelection(talkView.getBottom());((EditText)mText1).setText("");getResponce(et);}}}/////////////////////////////////////////////////////////////////////////////// privatevoidshowMenu(Viewparent){WindowManagerwindowManager=(WindowManager)getSystemService(Context.WINDOW_SERVICE);if(popupWindow==null){LayoutInflaterlayoutInflater=(LayoutInflater)getSystemService(YOUT_INFLATER_SERVICE); view=null);lv_menu=(ListView)Menus=newArrayList<String>();Menus.add("应答模式");Menus.add("录入模式");Menus.add("删除记录");//}//////if(Menus.get(position)=="应答模式"){startActivity(newIntent(SearchActivity.this,TestActivity.class));intversion=if(version>5){}finish();}if(Menus.get(position)=="录入模式"){startActivity(newIntent(SearchActivity.this,StudyActivity.class));intversion=if(version>5){}finish();}if(Menus.get(position)=="删除记录"){newAlertDialog.Builder(SearchActivity.this).setMessage("是否删除聊天记录?").setPositiveButton("删除",newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstublist.clear();聊天.setNegativeButton("取消",null).show();}if(popupWindow!=null){popupWindow.dismiss();}}});}publicvoidgetResponce(Stringet){finalWebViewwv=(WebView)findViewById(R.id.webView1);wv.getSettings().setJavaScriptEnabled(true);wv.setScrollBarStyle(0);WebSettingswebSettings=wv.getSettings();webSettings.setAllowFileAccess(true);webSettings.setBuiltInZoomControls(true);StringURL=+et+"&cl=3";wv.loadUrl(URL);//加载数据wv.setWebChromeClient(newWebChromeClient(){@OverridepublicvoidonProgressChanged(WebViewview,intnewProgress){if(newProgress==100){}else{}}});}});}}});}elseif(number<100)s="0"+String.valueOf(number);//如果数字是两位数,则在前面加一个"0"elses=String.valueOf(number);//默认数据库中主谓宾三张表数据不会超过999条。
申请软著所需材料清单及流程
申请软著所需材料清单及流程
1软件著作权登记申请表
2、软件(程序、文档)的鉴别材料(源代码):前后各2000行,共计4000行(前40页,后40页,每页不少于50行,不包含空行和注释)。
3、身份证明材料2份,单位申请的需要提供营业执照复印件加盖公章,个体户申请的提供个体户营业执照复印件加签字。
4、提供设计说明书(或软件用户手册、操作手册、使用说明书任选一种),说明书内涉及到的截图一定要清晰可见,附上详细的流程图说明(图文并茂)。
软件全称、简称、版本号、开发完成日期、软件开发情况(独立开发、合作开发、委托开发、下达任务开发)
原始取得权利情况、继受取权利情况
权利范围、软件用途
技术特点((软件名称、用途、技术特点、开发的软硬件环境、编程语言及编程语言版本号、程序量、零售价格)
软件名称、用途、技术特点、开发的软硬件环境、编程语言及编程语言版本号、程序量、零售价格
5、工程师联系方式
6、授权委托书、受委托人身份证复印件
7、其他证明文件:
合作开发——合作开发合同书或合作开发协议书1份A4纸
委托开发——委托开发协议书1份A4纸
下达任务开发——任务书1份A4纸
登记机构:中国版权保护中心(北京有代办机构,其他地区网上注册)
流程:
1、网上注册用户名
2、打印软件著作权申请表
3、准备相关材料、打印、盖章、邮寄
4、递交文件至中国版权保护中心
5、缴费,领取受理通知单
6、二审,若有问题会发补正通知,按要求修改直至通过
7、领取软件著作权登记证书(一般取得受理通知单后30个工作
日领取,官方网站公告3个工作日后出证)。
软件著作权材料清单
计算机软件著作权申请材料清单
一.企业基本信息采集表软件及著作权登记信息采集表。
二.最新营业执照(副本)电子版。
三.用户手册、操作手册、使用说明书等文档选择一种提交,文档中必须带有软件的功能介绍和相应的软件界面截图四.软件的源代码(程序和文档的鉴别材料应当由源程序和任何一种文档前、后各连续30页组成。
整个程序和文档不到60页的,应当提交整个源程序和文档。
除特定情况外,程序每页不少于50行,文档每页不少于30行)
企业基本信息采集表(一家企业填一份)
软件著作权登记信息采集表(一个软件填一份)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附件二:(如何整理源代码—源代码注意的事项)
1、看你的软件是否是分:主要模块和次要模块---如果有主次模块之分---请提供主要模块的前后各2000行。
2、如果没有主次要模块之分:就从源代码的最开头提供前2000行,最后结尾提供后2000行。
代码的要求
1.
代码要求是提供原始的代码不是关键代码语法上要求完整
例如C++代码应该是 include 之类开头的而不是直接一开始就是函数
C#代码应该是 using 之类开头的而不是直接一开始就是函数
例如以下为完整的C#代码开头
要求提供的是对应的代码文件的原始文本
2.
第一页应该是以下一种情况所在的页面的原始代码
1.主函数
2.程序的入口比如登录函数
3.主页比如index default页面
3.
尽量少提供或者不提供设计器生成的代码
以C#语言为例设计器生成的代码语言文件一般为XXXt.designer.cs:
内容比如
4.
代码量4000行以下的提供全部源代码
代码量4000行以上的至少提供4000行代码Word中有行数统计功能
方法如下。