第一篇:软件著作权申请中源代码文档的编辑方法(本站推荐)
软件著作权申请中源代码文档的编辑方法:
一、清除整个文档的空行:
方法:用ctrl+a(快捷方式),选中全部源程序代码文档;点击word的查找替换功能
查找:^p^P;替换为:^P。选择“全部替换”。反复N次,直到全部替换完成。
二、源代码每页不低于50行的实现方法:
1、设置整个文档的字体和字号:
方法:用ctrl+a,全选文档。在选中的文档上,点击鼠标右键(功能键),找到“字体”选项,选择“+中文正文”字体、五号字。如下图所示
2、通过文档的“段落”功能设置,实现文档“每页不低于50行”的要求。方法:ctrl+a,文档全选。在文档全选的情况下,点击鼠标右键(功能键)。找到“段落”选项。调出对话框对文档进行设置如下: 选择行距:固定值;设置值:14磅。
三、文档的页眉及页码的设置(字号用5号)
此文档的页眉填加“软件著作权的全称+版本号”和页码(右上角)。效果如下图:
四、文档首页设置与编辑方法:
文字竖排:先“插入文本框”,再录入文字“*****软件源程序”。选择“竖排”文字格式,调整字号,调整文本框到页面合适的位置。效果如下图:
五、提示:
1、文档的页眉上,尽量要用软件全称且含版本号。
目的:如果你的软件简称出现问题时,源代码文档不受任何影响!为调整几个字重新打印61页(源程序要求60页,封面1页)纸会很不爽的!
二〇一四年二月十四日
第二篇:软件著作权-源代码范本
天一博胜企业管理软件V1.0 源代码
软件著作权-源代码范本
注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。
提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软件名字等,不能出现开源代码,不能出现任何版权纠纷。
格式要求:
一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。
二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页眉右上应标注页码,源代码每页不少于50行。
范例如下:
#include
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, 天一博胜企业管理软件V1.0 源代码
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 void assertion_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)failedn”,file, line, tybs_assertion_typetotext(type), cond);
fflush(stderr);} if(ns_g_coreok)
abort();exit(1);} static void library_fatal_error(const char *file, int line, const char *format,va_list args)TYBS_FORMAT_PRINTF(3, 0);static void library_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 { 天一博胜企业管理软件V1.0 源代码
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 void library_unexpected_error(const char *file, int line, const char *format,va_list args)TYBS_FORMAT_PRINTF(3, 0);static void library_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 void lwresd_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 void usage(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”);} 天一博胜企业管理软件V1.0 源代码 static void save_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!= ' ' && 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(eobarg;
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 == ' ')
break;
arg = end + 1;} } static void parse_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();天一博胜企业管理软件V1.0 源代码
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? */ 天一博胜企业管理软件V1.0 源代码
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;
else
fprintf(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 '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 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_t 天一博胜企业管理软件V1.0 源代码 create_managers(void){ tybs_result_t result;unsigned int socks;#ifdef TYBS_PLATFORM_USETHREADS unsigned int cpus_detected;#endif #ifdef TYBS_PLATFORM_USETHREADS cpus_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“);#else ns_g_cpus = 1;#endif result = 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);天一博胜企业管理软件V1.0 源代码 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 void destroy_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 void setup(void){ tybs_result_t result;#ifdef HAVE_LIBSCF char *instance = NULL;#endif ns_os_inituserinfo(ns_g_username);ns_os_tzset();ns_os_opendevnull();#ifdef HAVE_LIBSCF result = ns_smf_get_instance(&instance, 0, ns_g_mctx);if(result == TYBS_R_SUCCESS)
ns_smf_got_instance = 1;else
ns_smf_got_instance = 0;if(instance!= NULL)
tybs_mem_free(ns_g_mctx, instance);#endif /* HAVE_LIBSCF */ #ifdef PATH_RANDOMDEV if(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);
} 天一博胜企业管理软件V1.0 源代码 } #endif ns_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 DLZ result = dlz_drivers_init();if(result!= TYBS_R_SUCCESS)
ns_main_earlyfatal(”dlz_drivers_init()failed: %s“,tybs_result_totext(result));#endif 天一博胜企业管理软件V1.0 源代码 ns_server_create(ns_g_mctx, &ns_g_server);} static void cleanup(void){ destroy_managers();ns_server_destroy(&ns_g_server);ns_builtin_deinit();#ifdef DLZ dlz_drivers_clear();#endif dns_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;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(memstats, filename);} #ifdef HAVE_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__, __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)天一博胜企业管理软件V1.0 源代码
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);} #endif int main(int argc, char *argv[]){ tybs_result_t result;#ifdef HAVE_LIBSCF char *instance = NULL;#endif strlcat(version, #ifdef __DATE__
”named version: BIND “ VERSION ”(“ __DATE__ ”)“, #else
”named version: BIND “ VERSION, #endif
sizeof(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();天一博胜企业管理软件V1.0 源代码 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_LIBSCF if(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);天一博胜企业管理软件V1.0 源代码
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 #elif defined(NETWARE)#include 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“))){ 天一博胜企业管理软件V1.0 源代码 return;} e = PG(disable_functions)= strdup(INI_STR(”disable_functions“));while(*e){ switch(*e){ case ' ': case ',': if(s){ *e = ' '; 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 = ' '; zend_disable_class(s, e-s TSRMLS_CC); s = NULL; } break; default: if(!s){ s = e; } break; } e++;} if(s){ zend_disable_class(s, e-s TSRMLS_CC);天一博胜企业管理软件V1.0 源代码 } } 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);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); tmp_value_length = ini_entry->orig_value_length;} else if(ini_entry->value){ != 天一博胜企业管理软件V1.0 源代码 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_module.name, ”cli“)||!strcmp(sapi_module.name, ”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;} static PHP_INI_MH(OnChangeMailForceExtra){ /* Don't allow changing it in htaccess */ if(stage == PHP_INI_STAGE_HTACCESS){ return FAILURE;} return SUCCESS;} 天一博胜企业管理软件V1.0 源代码 #ifndef PHP_SAFE_MODE_EXEC_DIR # define PHP_SAFE_MODE_EXEC_DIR ”“ #endif #if defined(PHP_PROG_SENDMAIL)&&!defined(NETWARE)# define DEFAULT_SENDMAIL_PATH PHP_PROG_SENDMAIL ”-t-i “ #elif defined(PHP_WIN32)# define DEFAULT_SENDMAIL_PATH NULL #else # define DEFAULT_SENDMAIL_PATH ”/usr/sbin/sendmail-t-i“ #endif PHPAPI void php_log_err(char *log_message TSRMLS_DC){ int fd =-1;char error_time_str[128];struct tm tmbuf;time_t error_time;/* Try to use the specified logging location.*/ if(PG(error_log)!= NULL){ #ifdef HAVE_SYSLOG_H if(!strcmp(PG(error_log), ”syslog“)){ php_syslog(LOG_NOTICE, ”%.500s“, log_message); return; } #endif fd = VCWD_OPEN_MODE(PG(error_log), O_CREAT | O_APPEND | O_WRONLY, 0644); if(fd!=-1){ char *tmp; int len; time(&error_time); strftime(error_time_str, sizeof(error_time_str), ”%d-%b-%Y %H:%M:%S“, php_localtime_r(&error_time, &tmbuf)); len = spprintf(&tmp, 0, ”[%s] %s%s“, error_time_str, log_message, PHP_EOL);#ifdef PHP_WIN32 php_flock(fd, 2);#endif write(fd, tmp, len); efree(tmp); close(fd); return; } } /* Otherwise fall back to the default logging location, if we have one */ if(sapi_module.log_message){ sapi_module.log_message(log_message);} } PHPAPI int php_write(void *buf, uint size TSRMLS_DC){ return PHPWRITE(buf, size);} /* }}} */ /* {{{ php_printf 天一博胜企业管理软件V1.0 源代码 */ PHPAPI int php_printf(const char *format,...){ va_list args;int ret;char *buffer;int size;TSRMLS_FETCH();va_start(args, format);size = vspprintf(&buffer, 0, format, args);ret = PHPWRITE(buffer, size);efree(buffer);va_end(args);return ret;} /* }}} */ /* {{{ php_verror helpers */ /* {{{ php_during_module_startup */ static int php_during_module_startup(void){ return module_startup;} /* }}} */ /* {{{ php_during_module_shutdown */ static int php_during_module_shutdown(void){ return module_shutdown;} /* }}} */ /* }}} */ /* {{{ php_verror */ /* php_verror is called from php_error_docref int len; char *replace = php_escape_html_entities(buffer, buffer_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC); efree(buffer); buffer = replace; buffer_len = len;} /* which function caused the problem if any at all */ if(php_during_module_startup()){ function = ”PHP Startup“;} else if(php_during_module_shutdown()){ function = ”PHP Shutdown“;} else if(EG(current_execute_data)&& EG(current_execute_data)->opline && EG(current_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL){ switch(EG(current_execute_data)->opline->op2.u.constant.value.lval){ case ZEND_EVAL: function = ”eval“; is_function = 1; break; case ZEND_INCLUDE: function = ”include“; is_function = 1; break; case ZEND_INCLUDE_ONCE: function = ”include_once“; is_function = 1; break; case ZEND_REQUIRE: function = ”require“; is_function = 1; break; case ZEND_REQUIRE_ONCE: function = ”require_once“; is_function = 1; break; default: function = ”Unknown“; } } else { function = get_active_function_name(TSRMLS_C); if(!function ||!strlen(function)){ function = ”Unknown“; } else { is_function = 1; } } if(is_function){ origin_len = spprintf(&origin, 0, ”%s%s%s(%s)“, class_name, space, function, params);} else { 天一博胜企业管理软件V1.0 源代码 origin_len = spprintf(&origin, 0, ”%s“, function);} if(PG(html_errors)){ int len; char *replace = php_escape_html_entities(origin, origin_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC); efree(origin); origin = replace;} if(docref && docref[0] == '#'){ docref_target = strchr(docref, '#'); docref = NULL;} if(!docref && is_function){ if(space[0] == ' '){ spprintf(&docref_buf, 0, ”function.%s“, function); } else { spprintf(&docref_buf, 0, ”function.%s-%s“, class_name, function); } while((p = strchr(docref_buf, '_'))!= NULL){ *p = '-'; } docref = docref_buf;} if(docref && is_function &&(PG(html_errors)|| strlen(PG(docref_root)))){ if(strncmp(docref, ”http://“, 7)){ /* We don't have 'http://' so we use docref_root */ char *ref;/* temp copy for duplicated docref */ docref_root = PG(docref_root); ref = estrdup(docref); if(docref_buf){ efree(docref_buf); } docref_buf = ref; /* strip of the target if any */ p = strrchr(ref, '#'); if(p){ target = estrdup(p); if(target){ docref_target = target; *p = ' '; } } /* add the extension if it is set in ini */ if(PG(docref_ext)&& strlen(PG(docref_ext))){ spprintf(&docref_buf, 0, ”%s%s“, ref, PG(docref_ext)); efree(ref); } docref = docref_buf; } /* display html formatted or only show the additional links */ if(PG(html_errors)){ 天一博胜企业管理软件V1.0 源代码 spprintf(&message, 0, ”%s [%s]: %s“, origin, docref_root, docref, docref_target, docref, buffer); } else { spprintf(&message, 0, ”%s [%s%s%s]: %s“, origin, docref_root, docref, docref_target, buffer); } if(target){ efree(target); } } else { spprintf(&message, 0, ”%s: %s“, origin, buffer);} efree(origin);if(docref_buf){ efree(docref_buf);} if(PG(track_errors)&& module_initialized && EG(active_symbol_table)&& (!EG(user_error_handler)||!(EG(user_error_handler_error_reporting)& type))){ zval *tmp; ALLOC_INIT_ZVAL(tmp); ZVAL_STRINGL(tmp, buffer, buffer_len, 1); zend_hash_update(EG(active_symbol_table), ”php_errormsg“, sizeof(”php_errormsg“),(void **)&tmp, sizeof(zval *), NULL);} efree(buffer);php_error(type, ”%s“, message);efree(message);} /* }}} */ /* {{{ php_error_docref0 */ /* See: CODING_STANDARDS for details.*/ PHPAPI void php_error_docref0(const char *docref TSRMLS_DC, int type, const char *format,...){ va_list args;va_start(args, format);php_verror(docref, ”“, type, format, args TSRMLS_CC);va_end(args);} /* }}} */ /* {{{ php_error_docref1 */ /* See: CODING_STANDARDS for details.*/ PHPAPI void php_error_docref1(const char *docref TSRMLS_DC, const char *param1, int type, const char *format,...){ va_list args;va_start(args, format);php_verror(docref, param1, type, format, args TSRMLS_CC);va_end(args);} /* }}} */ /* {{{ php_error_docref2 */ /* See: CODING_STANDARDS for details.*/ PHPAPI void php_error_docref2(const char *docref TSRMLS_DC, const char *param1, const char *param2, int 天一博胜企业管理软件V1.0 源代码 type, const char *format,...){ char *params;va_list args;spprintf(¶ms, 0, ”%s,%s“, param1, param2);va_start(args, format);php_verror(docref, params ? params : ”...“, type, format, args TSRMLS_CC);va_end(args);if(params){ efree(params);} } /* }}} */ /* {{{ php_html_puts */ PHPAPI void php_html_puts(const char *str, uint size TSRMLS_DC){ zend_html_puts(str, size TSRMLS_CC);} /* }}} */ /* {{{ php_suppress_errors */ PHPAPI void php_set_error_handling(error_handling_t error_handling, zend_class_entry *exception_class TSRMLS_DC){ PG(error_handling)= error_handling;PG(exception_class)= exception_class;if(PG(last_error_message)){ free(PG(last_error_message)); PG(last_error_message)= NULL;} if(PG(last_error_file)){ free(PG(last_error_file)); PG(last_error_file)= NULL;} PG(last_error_lineno)= 0;} /* }}} */ /* {{{ php_error_cb extended error handling function */ static void php_error_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args){ char *buffer;int buffer_len, display;TSRMLS_FETCH();buffer_len = vspprintf(&buffer, PG(log_errors_max_len), format, args);/* check for repeated errors to be ignored */ if(PG(ignore_repeated_errors)&& PG(last_error_message)){ /* no check for PG(last_error_file)is needed since it cannot * be NULL if PG(last_error_message)is not NULL */ if(strcmp(PG(last_error_message), buffer) ||(!PG(ignore_repeated_source) &&((PG(last_error_lineno)!=(int)error_lineno)天一博胜企业管理软件V1.0 源代码 || strcmp(PG(last_error_file), error_filename)))){ display = 1;} else { display = 0;} } else { display = 1;} /* store the error if it has changed */ if(display){ if(PG(last_error_message)){ free(PG(last_error_message));} if(PG(last_error_file)){ free(PG(last_error_file));} PG(last_error_type)= type;PG(last_error_message)= strdup(buffer);PG(last_error_file)= strdup(error_filename);PG(last_error_lineno)= error_lineno;} /* according to error handling mode, suppress error, throw exception or show it */ if(PG(error_handling)!= EH_NORMAL){ switch(type){ case E_ERROR: case E_CORE_ERROR: case E_COMPILE_ERROR: case E_USER_ERROR: case E_PARSE: /* fatal errors are real errors and cannot be made exceptions */ break; case E_STRICT: /* for the sake of BC to old damaged code */ break; case E_NOTICE: case E_USER_NOTICE: /* notices are no errors and are not treated as such like E_WARNINGS */ break; default: /* throw an exception if we are in EH_THROW mode * but DO NOT overwrite a pending exception */ if(PG(error_handling)== EH_THROW &&!EG(exception)){ zend_throw_error_exception(PG(exception_class), buffer, 0, type TSRMLS_CC); } efree(buffer); return;} } /* display/log the error if necessary */ if(display &&(EG(error_reporting)& type ||(type & E_CORE))&&(PG(log_errors)|| PG(display_errors)||(!module_initialized))){ 天一博胜企业管理软件V1.0 源代码 char *error_type_str; switch(type){ case E_ERROR: case E_CORE_ERROR: case E_COMPILE_ERROR: case E_USER_ERROR: error_type_str = ”Fatal error“; break; case E_RECOVERABLE_ERROR: error_type_str = ”Catchable fatal error“; break; case E_WARNING: case E_CORE_WARNING: case E_COMPILE_WARNING: case E_USER_WARNING: error_type_str = ”Warning“; break; case E_PARSE: error_type_str = ”Parse error“; break; case E_NOTICE: case E_USER_NOTICE: error_type_str = ”Notice“; break; case E_STRICT: error_type_str = ”Strict Standards“; break; default: error_type_str = ”Unknown error“; break; } if(!module_initialized || PG(log_errors)){ char *log_buffer;#ifdef PHP_WIN32 if((type == E_CORE_ERROR || type == E_CORE_WARNING)&& PG(display_startup_errors)){ MessageBox(NULL, buffer, error_type_str, MB_OK|ZEND_SERVICE_MB_STYLE); } #endif spprintf(&log_buffer, 0, ”PHP %s: %s in %s on line %d“, error_type_str, buffer, error_filename, error_lineno); php_log_err(log_buffer TSRMLS_CC); efree(log_buffer); } if(PG(display_errors) &&((module_initialized &&!PG(during_request_startup)) ||(PG(display_startup_errors) &&(OG(php_body_write)==php_default_output_func || OG(php_body_write)==php_ub_body_write_no_header || OG(php_body_write)==php_ub_body_write)))){ 天一博胜企业管理软件V1.0 源代码 if(PG(xmlrpc_errors)){ php_printf(” } else { char *prepend_string = INI_STR(”error_prepend_string“); char *append_string = INI_STR(”error_append_string“); if(PG(html_errors)){ if(type == E_ERROR){ int len; char *buf = php_escape_html_entities(buffer, buffer_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC); php_printf(”%s efree(buf); } else { php_printf(”%s } } else { /* Write CLI/CGI errors to stderr if display_errors = ”stderr“ */ if((!strcmp(sapi_module.name, ”cli“)||!strcmp(sapi_module.name, ”cgi“))&& PG(display_errors)== PHP_DISPLAY_ERRORS_STDERR){ fprintf(stderr, ”%s: %s in %s on line %dn“, error_type_str, buffer, error_filename, error_lineno); } else { php_printf(”%sn%s: %s in %s on line %dn%s“, STR_PRINT(prepend_string), error_type_str, buffer, error_filename, error_lineno, STR_PRINT(append_string)); } } } } #if ZEND_DEBUG if(PG(report_zend_debug)){ zend_bool trigger_break; switch(type){ case E_ERROR: case E_CORE_ERROR: case E_COMPILE_ERROR: case E_USER_ERROR: trigger_break=1; break; default: trigger_break=0; break; } zend_output_debug_string(trigger_break, ”%s(%d): %sno way we can live with this */ exit(-2); } /* no break-intentionally */ case E_ERROR: case E_RECOVERABLE_ERROR: case E_PARSE: case E_COMPILE_ERROR: case E_USER_ERROR: EG(exit_status)= 255; if(module_initialized){ if(!PG(display_errors)&& !SG(headers_sent)&& SG(sapi_headers).http_response_code == 200){ sapi_header_line ctr = {0}; ctr.line = “HTTP/1.0 500 Internal Server Error”; ctr.line_len = strlen(ctr.line); sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC); } /* the parser would return 1(failure), we can bail out nicely */ if(type!= E_PARSE){ /* restore memory limit */ zend_set_memory_limit(PG(memory_limit)); efree(buffer); zend_objects_store_mark_destructed(&EG(objects_store)TSRMLS_CC); zend_bailout(); return; } } break;} /* Log if necessary */ if(!display){ efree(buffer); return;} if(PG(track_errors)&& module_initialized && EG(active_symbol_table)){ zval *tmp; ALLOC_INIT_ZVAL(tmp); ZVAL_STRINGL(tmp, buffer, buffer_len, 1); zend_hash_update(EG(active_symbol_table), “php_errormsg”, sizeof(“php_errormsg”),(void **)& tmp, sizeof(zval *), NULL);} 天一博胜企业管理软件V1.0 源代码 efree(buffer);} 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);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); tmp_value_length = ini_entry->orig_value_length;} else if(ini_entry->value){ != 天一博胜企业管理软件V1.0 源代码 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_module.name, “cli”)||!strcmp(sapi_module.name, “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;} static PHP_INI_MH(OnChangeMailForceExtra){ /* Don't allow changing it in htaccess */ if(stage == PHP_INI_STAGE_HTACCESS){ return FAILURE;} return SUCCESS;} 天一博胜企业管理软件V1.0 源代码 #ifndef PHP_SAFE_MODE_EXEC_DIR # define PHP_SAFE_MODE_EXEC_DIR “" #endif #if defined(PHP_PROG_SENDMAIL)&&!defined(NETWARE)# define DEFAULT_SENDMAIL_PATH PHP_PROG_SENDMAIL ”-t-i “ #elif defined(PHP_WIN32)# define DEFAULT_SENDMAIL_PATH NULL #else # define DEFAULT_SENDMAIL_PATH ”/usr/sbin/sendmail-t-i“ #endif PHPAPI void php_log_err(char *log_message TSRMLS_DC){ int fd =-1;char error_time_str[128];struct tm tmbuf;time_t error_time;/* Try to use the specified logging location.*/ if(PG(error_log)!= NULL){ #ifdef HAVE_SYSLOG_H if(!strcmp(PG(error_log), ”syslog“)){ php_syslog(LOG_NOTICE, ”%.500s“, log_message); return; } #endif fd = VCWD_OPEN_MODE(PG(error_log), O_CREAT | O_APPEND | O_WRONLY, 0644); if(fd!=-1){ char *tmp; int len; time(&error_time); strftime(error_time_str, sizeof(error_time_str), ”%d-%b-%Y %H:%M:%S“, php_localtime_r(&error_time, &tmbuf)); len = spprintf(&tmp, 0, ”[%s] %s%s“, error_time_str, log_message, PHP_EOL);#ifdef PHP_WIN32 php_flock(fd, 2);#endif write(fd, tmp, len); efree(tmp); close(fd); return; } } /* Otherwise fall back to the default logging location, if we have one */ if(sapi_module.log_message){ sapi_module.log_message(log_message);} } PHPAPI int php_write(void *buf, uint size TSRMLS_DC){ return PHPWRITE(buf, size);} /* }}} */ /* {{{ php_printf 天一博胜企业管理软件V1.0 源代码 */ PHPAPI int php_printf(const char *format,...){ va_list args;int ret;char *buffer;int size;TSRMLS_FETCH();va_start(args, format);size = vspprintf(&buffer, 0, format, args);ret = PHPWRITE(buffer, size);efree(buffer);va_end(args);return ret;} /* }}} */ /* {{{ php_verror helpers */ /* {{{ php_during_module_startup */ static int php_during_module_startup(void){ return module_startup;} static int php_during_module_shutdown(void){ return module_shutdown;} PHPAPI void php_verror(const char *docref, const char *params, int type, const char *format, va_list args TSRMLS_DC){ char *buffer = NULL, *docref_buf = NULL, *target = NULL;char *docref_target = ”“, *docref_root = ”“;char *p;int buffer_len = 0;char *space;char *class_name = get_active_class_name(&space TSRMLS_CC);char *function;int origin_len;char *origin;char *message;int is_function = 0;/* get error text into buffer and escape for html if necessary */ buffer_len = vspprintf(&buffer, 0, format, args);if(PG(html_errors)){ int len; char *replace = php_escape_html_entities(buffer, buffer_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC); efree(buffer); buffer = replace; buffer_len = len;} /* which function caused the problem if any at all */ if(php_during_module_startup()){ 天一博胜企业管理软件V1.0 源代码 function = ”PHP Startup“;} else if(php_during_module_shutdown()){ function = ”PHP Shutdown“;} else if(EG(current_execute_data)&& EG(current_execute_data)->opline && EG(current_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL){ switch(EG(current_execute_data)->opline->op2.u.constant.value.lval){ case ZEND_EVAL: function = ”eval“; is_function = 1; break; case ZEND_INCLUDE: function = ”include“; is_function = 1; break; case ZEND_INCLUDE_ONCE: function = ”include_once“; is_function = 1; break; case ZEND_REQUIRE: function = ”require“; is_function = 1; break; case ZEND_REQUIRE_ONCE: function = ”require_once“; is_function = 1; break; default: function = ”Unknown“; } } else { function = get_active_function_name(TSRMLS_C); if(!function ||!strlen(function)){ function = ”Unknown“; } else { is_function = 1; } } if(is_function){ origin_len = spprintf(&origin, 0, ”%s%s%s(%s)“, class_name, space, function, params);} else { origin_len = spprintf(&origin, 0, ”%s“, function);} if(PG(html_errors)){ int len; char *replace = php_escape_html_entities(origin, origin_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC); efree(origin); origin = replace;} if(docref && docref[0] == '#'){ 天一博胜企业管理软件V1.0 源代码 docref_target = strchr(docref, '#'); docref = NULL;} if(!docref && is_function){ if(space[0] == ' '){ spprintf(&docref_buf, 0, ”function.%s“, function); } else { spprintf(&docref_buf, 0, ”function.%s-%s“, class_name, function); } while((p = strchr(docref_buf, '_'))!= NULL){ *p = '-'; } docref = docref_buf;} if(docref && is_function &&(PG(html_errors)|| strlen(PG(docref_root)))){ if(strncmp(docref, ”http://“, 7)){ /* We don't have 'http://' so we use docref_root */ char *ref;/* temp copy for duplicated docref */ docref_root = PG(docref_root); ref = estrdup(docref); if(docref_buf){ efree(docref_buf); } docref_buf = ref; /* strip of the target if any */ p = strrchr(ref, '#'); if(p){ target = estrdup(p); if(target){ docref_target = target; *p = ' '; } } /* add the extension if it is set in ini */ if(PG(docref_ext)&& strlen(PG(docref_ext))){ spprintf(&docref_buf, 0, ”%s%s“, ref, PG(docref_ext)); efree(ref); } docref = docref_buf; } /* display html formatted or only show the additional links */ if(PG(html_errors)){ spprintf(&message, 0, ”%s [%s]: %s“, origin, docref_root, docref, docref_target, docref, buffer); } else { spprintf(&message, 0, ”%s [%s%s%s]: %s“, origin, docref_root, docref, docref_target, buffer); } if(target){ efree(target); } } else { spprintf(&message, 0, ”%s: %s“, origin, buffer);天一博胜企业管理软件V1.0 源代码 } efree(origin);if(docref_buf){ efree(docref_buf);} if(PG(track_errors)&& module_initialized && EG(active_symbol_table)&& (!EG(user_error_handler)||!(EG(user_error_handler_error_reporting)& type))){ zval *tmp; ALLOC_INIT_ZVAL(tmp); ZVAL_STRINGL(tmp, buffer, buffer_len, 1); zend_hash_update(EG(active_symbol_table), ”php_errormsg“, sizeof(”php_errormsg“),(void **)&tmp, sizeof(zval *), NULL);} efree(buffer);php_error(type, ”%s“, message);efree(message);} /* }}} */ /* {{{ php_error_docref0 */ /* See: CODING_STANDARDS for details.*/ PHPAPI void php_error_docref0(const char *docref TSRMLS_DC, int type, const char *format,...){ va_list args;va_start(args, format);php_verror(docref, ”“, type, format, args TSRMLS_CC);va_end(args);} /* }}} */ /* {{{ php_error_docref1 */ /* See: CODING_STANDARDS for details.*/ PHPAPI void php_error_docref1(const char *docref TSRMLS_DC, const char *param1, int type, const char *format,...){ va_list args;va_start(args, format);php_verror(docref, param1, type, format, args TSRMLS_CC);va_end(args);} /* }}} */ /* {{{ php_error_docref2 */ /* See: CODING_STANDARDS for details.*/ PHPAPI void php_error_docref2(const char *docref TSRMLS_DC, const char *param1, const char *param2, int type, const char *format,...){ char *params;va_list args;spprintf(¶ms, 0, ”%s,%s“, param1, param2);va_start(args, format);php_verror(docref, params ? params : ”...“, type, format, args TSRMLS_CC);va_end(args);if(params){ efree(params);天一博胜企业管理软件V1.0 源代码 } } /* }}} */ /* {{{ php_html_puts */ PHPAPI void php_html_puts(const char *str, uint size TSRMLS_DC){ zend_html_puts(str, size TSRMLS_CC);} /* }}} */ /* {{{ php_suppress_errors */ PHPAPI void php_set_error_handling(error_handling_t error_handling, zend_class_entry *exception_class TSRMLS_DC){ PG(error_handling)= error_handling;PG(exception_class)= exception_class;if(PG(last_error_message)){ free(PG(last_error_message)); PG(last_error_message)= NULL;} if(PG(last_error_file)){ free(PG(last_error_file)); PG(last_error_file)= NULL;} PG(last_error_lineno)= 0;} PHP_FUNCTION(set_time_limit){ zval **new_timeout;if(PG(safe_mode)){ php_error_docref(NULL TSRMLS_CC, E_WARNING, ”Cannot set time limit in safe mode“); RETURN_FALSE;} if(ZEND_NUM_ARGS()!= 1 || zend_get_parameters_ex(1, &new_timeout)== FAILURE){ WRONG_PARAM_COUNT;} convert_to_string_ex(new_timeout);if(zend_alter_ini_entry(”max_execution_time“, sizeof(”max_execution_time“), Z_STRVAL_PP(new_timeout), Z_STRLEN_PP(new_timeout), PHP_INI_USER, PHP_INI_STAGE_RUNTIME)== SUCCESS){ RETURN_TRUE;} else { RETURN_FALSE;} } 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;天一博胜企业管理软件V1.0 源代码 } 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_module.name, ”cli“)||!strcmp(sapi_module.name, ”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;} static FILE *php_fopen_wrapper_for_zend(const char *filename, char **opened_path){ TSRMLS_FETCH();return php_stream_open_wrapper_as_file((char *)filename, ”rb“, ENFORCE_SAFE_MODE|USE_PATH|IGNORE_URL_WIN|REPORT_ERRORS|STREAM_OPEN_FOR_INCLUDE, opened_path);} 天一博胜企业管理软件V1.0 源代码 /* }}} */ static void stream_closer_for_zend(void *handle TSRMLS_DC)/* {{{ */ { php_stream_close((php_stream*)handle);} /* }}} */ static long stream_fteller_for_zend(void *handle TSRMLS_DC)/* {{{ */ { return(long)php_stream_tell((php_stream*)handle);} /* }}} */ 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;} /* }}} */ /* {{{ php_get_display_errors_mode()helper function */ 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 PHP_DISPLAY_ERRORS_STDERR){ mode = PHP_DISPLAY_ERRORS_STDOUT; } } return mode;} /* }}} */ /* {{{ PHP_INI_MH && mode 39 != 天一博胜企业管理软件V1.0 源代码 */ static PHP_INI_MH(OnUpdateDisplayErrors){ PG(display_errors)=(zend_bool)php_get_display_errors_mode(new_value, new_value_length);return SUCCESS;} /* }}} */ /* {{{ PHP_INI_DISP */ 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);/* Display 'On' for other SAPIs instead of STDOUT or STDERR */ cgi_or_cli =(!strcmp(sapi_module.name, ”cli“)||!strcmp(sapi_module.name, ”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“)){ 天一博胜企业管理软件V1.0 源代码 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;} /* }}} */ /* {{{ PHP_INI_MH */ static PHP_INI_MH(OnChangeMailForceExtra){ /* Don't allow changing it in htaccess */ if(stage == PHP_INI_STAGE_HTACCESS){ return FAILURE;} return SUCCESS;} static int php_stream_open_for_zend(const char *filename, zend_file_handle *handle TSRMLS_DC)/* {{{ */ { return php_stream_open_for_zend_ex(filename, handle, ENFORCE_SAFE_MODE|USE_PATH|REPORT_ERRORS|STREAM_OPEN_FOR_INCLUDE TSRMLS_CC);} /* }}} */ PHPAPI int php_stream_open_for_zend_ex(const char *filename, zend_file_handle *handle, int mode TSRMLS_DC)/* {{{ */ { php_stream *stream;stream = php_stream_open_wrapper((char *)filename, ”rb“, mode, &handle->opened_path);if(stream){ handle->type = ZEND_HANDLE_STREAM; handle->filename =(char*)filename; handle->free_filename = 0; handle->handle.stream.handle = stream; handle->handle.stream.reader =(zend_stream_reader_t)_php_stream_read; handle->handle.stream.closer = stream_closer_for_zend; handle->handle.stream.fteller = stream_fteller_for_zend; handle->handle.stream.interactive = 0; /* suppress warning if this stream is not explicitly closed */ php_stream_auto_cleanup(stream); return SUCCESS;} return FAILURE;} /* }}} */ /* {{{ php_get_configuration_directive_for_zend */ static int php_get_configuration_directive_for_zend(char *name, uint name_length, zval *contents)天一博胜企业管理软件V1.0 源代码 { zval *retval = cfg_get_entry(name, name_length);if(retval){ *contents = *retval; return SUCCESS;} else { return FAILURE;} } /* }}} */ /* {{{ php_message_handler_for_zend */ static void php_message_handler_for_zend(long message, void *data){ TSRMLS_FETCH();switch(message){ case ZMSG_FAILED_INCLUDE_FOPEN: php_error_docref(”function.include“ TSRMLS_CC, E_WARNING, ”Failed opening '%s' for inclusion(include_path='%s')“, php_strip_url_passwd((char *)data), STR_PRINT(PG(include_path))); break; case ZMSG_FAILED_REQUIRE_FOPEN: php_error_docref(”function.require“ TSRMLS_CC, E_COMPILE_ERROR, ”Failed opening required '%s'(include_path='%s')“, php_strip_url_passwd((char *)data), STR_PRINT(PG(include_path))); break; case ZMSG_FAILED_HIGHLIGHT_FOPEN: php_error_docref(NULL TSRMLS_CC, E_WARNING, ”Failed opening '%s' for highlighting“, php_strip_url_passwd((char *)data)); break; case ZMSG_MEMORY_LEAK_DETECTED: case ZMSG_MEMORY_LEAK_REPEATED: #if ZEND_DEBUG if(EG(error_reporting)& E_WARNING){ char memory_leak_buf[1024]; if(message==ZMSG_MEMORY_LEAK_DETECTED){ zend_leak_info *t =(zend_leak_info *)data; snprintf(memory_leak_buf, 512, ”%s(%d): Freeing 0x%.8lX(%zu bytes), script=%sn“, t->filename, t->lineno,(zend_uintptr_t)t->addr, t->size, SAFE_FILENAME(SG(request_info).path_translated)); if(t->orig_filename){ char relay_buf[512]; snprintf(relay_buf, 512, ”%s(%d): Actual location(location was relayed)n“, t->orig_filename, t->orig_lineno); strlcat(memory_leak_buf, relay_buf, sizeof(memory_leak_buf)); } } else { unsigned long leak_count =(zend_uintptr_t)data; snprintf(memory_leak_buf, 512, ”Last leak repeated %ld time%sn“, leak_count,(leak_count>1?”s“:”“)); } # if defined(PHP_WIN32) OutputDebugString(memory_leak_buf);# else 天一博胜企业管理软件V1.0 源代码 fprintf(stderr, ”%s“, memory_leak_buf);# endif } #endif break; case ZMSG_MEMORY_LEAKS_GRAND_TOTAL: #if ZEND_DEBUG if(EG(error_reporting)& E_WARNING){ char memory_leak_buf[512]; snprintf(memory_leak_buf, 512, ”=== Total %d memory leaks detected ===n“, *((zend_uint *)data));# if defined(PHP_WIN32) OutputDebugString(memory_leak_buf);# else fprintf(stderr, ”%s“, memory_leak_buf);# endif } #endif break; case ZMSG_LOG_SCRIPT_NAME: { struct tm *ta, tmbuf; time_t curtime; char *datetime_str, asctimebuf[52]; char memory_leak_buf[4096]; time(&curtime); ta = php_localtime_r(&curtime, &tmbuf); datetime_str = php_asctime_r(ta, asctimebuf); if(datetime_str){ datetime_str[strlen(datetime_str)-1]=0;/* get rid of the trailing newline */ snprintf(memory_leak_buf, sizeof(memory_leak_buf), ”[%s] Script: '%s'n“, datetime_str, SAFE_FILENAME(SG(request_info).path_translated)); } else { snprintf(memory_leak_buf, sizeof(memory_leak_buf), ”[null] Script: '%s'n“, SAFE_FILENAME(SG(request_info).path_translated)); } # if defined(PHP_WIN32) OutputDebugString(memory_leak_buf);# else fprintf(stderr, ”%s“, memory_leak_buf);# endif } break;} } /* }}} */ PHPAPI void php_error_docref2(const char *docref TSRMLS_DC, const char *param1, const char *param2, int type, const char *format,...){ char *params;va_list args;spprintf(¶ms, 0, ”%s,%s“, param1, param2);va_start(args, format);天一博胜企业管理软件V1.0 源代码 php_verror(docref, params ? params : ”...", type, format, args TSRMLS_CC);va_end(args);if(params){ efree(params);} } /* }}} */ /* {{{ php_html_puts */ PHPAPI void php_html_puts(const char *str, uint size TSRMLS_DC){ zend_html_puts(str, size TSRMLS_CC);} /* }}} */ /* {{{ php_suppress_errors */ PHPAPI void php_set_error_handling(error_handling_t error_handling, zend_class_entry *exception_class TSRMLS_DC){ PG(error_handling)= error_handling;PG(exception_class)= exception_class;if(PG(last_error_message)){ free(PG(last_error_message)); PG(last_error_message)= NULL;} if(PG(last_error_file)){ free(PG(last_error_file)); PG(last_error_file)= NULL;} PG(last_error_lineno)= 0;} /* }}} */ /* {{{ php_error_cb extended error handling function */ static void php_error_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args){ char *buffer;int buffer_len, display;TSRMLS_FETCH();buffer_len = vspprintf(&buffer, PG(log_errors_max_len), format, args);/* check for repeated errors to be ignored */ if(PG(ignore_repeated_errors)&& PG(last_error_message)){ /* no check for PG(last_error_file)is needed since it cannot * be NULL if PG(last_error_message)is not NULL */ if(strcmp(PG(last_error_message), buffer) ||(!PG(ignore_repeated_source) &&((PG(last_error_lineno)!=(int)error_lineno) || strcmp(PG(last_error_file), error_filename)))){ display = 1; } else { display = 0; } } else { 天一博胜企业管理软件V1.0 源代码 display = 1;} /* store the error if it has changed */ if(display){ if(PG(last_error_message)){ free(PG(last_error_message)); } if(PG(last_error_file)){ free(PG(last_error_file)); } PG(last_error_type)= type; PG(last_error_message)= strdup(buffer); PG(last_error_file)= strdup(error_filename); PG(last_error_lineno)= error_lineno;} /* according to error handling mode, suppress error, throw exception or show it */ if(PG(error_handling)!= EH_NORMAL){ switch(type){ case E_ERROR: case E_CORE_ERROR: case E_COMPILE_ERROR: case E_USER_ERROR: case E_PARSE: /* fatal errors are real errors and cannot be made exceptions */ break; case E_STRICT: /* for the sake of BC to old damaged code */ break; case E_NOTICE: case E_USER_NOTICE: /* notices are no errors and are not treated as such like E_WARNINGS */ break; default: /* throw an exception if we are in EH_THROW mode * but DO NOT overwrite a pending exception */ if(PG(error_handling)== EH_THROW &&!EG(exception)){ zend_throw_error_exception(PG(exception_class), buffer, 0, type TSRMLS_CC); } efree(buffer); return; } } void php_on_timeout(int seconds TSRMLS_DC){ PG(connection_status)|= PHP_CONNECTION_TIMEOUT;zend_set_timeout(EG(timeout_seconds));} #if PHP_SIGCHILD /* {{{ sigchld_handler */ static void sigchld_handler(int apar)天一博胜企业管理软件V1.0 源代码 { while(waitpid(-1, NULL, WNOHANG)> 0);signal(SIGCHLD, sigchld_handler);} /* }}} */ #endif /* {{{ php_start_sapi()*/ static int php_start_sapi(TSRMLS_D){ int retval = SUCCESS;if(!SG(sapi_started)){ zend_try { PG(during_request_startup)= 1; /* initialize global variables */ PG(modules_activated)= 0; PG(header_is_being_sent)= 0; PG(connection_status)= PHP_CONNECTION_NORMAL; zend_activate(TSRMLS_C); zend_set_timeout(EG(timeout_seconds)); zend_activate_modules(TSRMLS_C); PG(modules_activated)=1; } zend_catch { retval = FAILURE; } zend_end_try(); SG(sapi_started)= 1;} return retval;} /* }}} */ /* {{{ php_request_startup */ #ifndef APACHE_HOOKS int php_request_startup(TSRMLS_D){ int retval = SUCCESS;#ifdef PHP_WIN32 PG(com_initialized)= 0;#endif #if PHP_SIGCHILD signal(SIGCHLD, sigchld_handler);#endif zend_try { PG(during_request_startup)= 1; php_output_activate(TSRMLS_C); /* initialize global variables */ PG(modules_activated)= 0; PG(header_is_being_sent)= 0; PG(connection_status)= PHP_CONNECTION_NORMAL; PG(in_user_include)= 0; zend_activate(TSRMLS_C); sapi_activate(TSRMLS_C);天一博胜企业管理软件V1.0 源代码 if(PG(max_input_time)==-1){ zend_set_timeout(EG(timeout_seconds)); } else { zend_set_timeout(PG(max_input_time)); } /* Disable realpath cache if safe_mode or open_basedir are set */ if(PG(safe_mode)||(PG(open_basedir)&& *PG(open_basedir))){ CWDG(realpath_cache_size_limit)= 0; } if(PG(expose_php)){ sapi_add_header(SAPI_PHP_VERSION_HEADER, sizeof(SAPI_PHP_VERSION_HEADER)-1, 1); } if(PG(output_handler)&& PG(output_handler)[0]){ php_start_ob_buffer_named(PG(output_handler), 0, 1 TSRMLS_CC); } else if(PG(output_buffering)){ if(PG(output_buffering)>1){ php_start_ob_buffer(NULL, PG(output_buffering), 1 TSRMLS_CC); } else { php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC); } } else if(PG(implicit_flush)){ php_start_implicit_flush(TSRMLS_C); } /* We turn this off in php_execute_script()*/ /* PG(during_request_startup)= 0;*/ php_hash_environment(TSRMLS_C); zend_activate_modules(TSRMLS_C); PG(modules_activated)=1;} zend_catch { retval = FAILURE;} zend_end_try();SG(sapi_started)= 1;return retval;} # else int php_request_startup(TSRMLS_D){ int retval = SUCCESS;#if PHP_SIGCHILD signal(SIGCHLD, sigchld_handler);#endif if(php_start_sapi()== FAILURE){ return FAILURE;} php_output_activate(TSRMLS_C);sapi_activate(TSRMLS_C);php_hash_environment(TSRMLS_C);zend_try { PG(during_request_startup)= 1; php_output_activate(TSRMLS_C); if(PG(expose_php)){ 天一博胜企业管理软件V1.0 源代码 sapi_add_header(SAPI_PHP_VERSION_HEADER, sizeof(SAPI_PHP_VERSION_HEADER)-1, 1); } } zend_catch { retval = FAILURE;} zend_end_try();return retval;} # endif /* }}} */ /* {{{ php_request_startup_for_hook */ int php_request_startup_for_hook(TSRMLS_D){ int retval = SUCCESS;#if PHP_SIGCHLD signal(SIGCHLD, sigchld_handler);#endif if(php_start_sapi(TSRMLS_C)== FAILURE){ return FAILURE;} php_output_activate(TSRMLS_C);sapi_activate_headers_only(TSRMLS_C);php_hash_environment(TSRMLS_C);return retval;} /* }}} */ /* {{{ php_request_shutdown_for_exec */ void php_request_shutdown_for_exec(void *dummy){ TSRMLS_FETCH();/* used to close fd's in the 3..255 range here, but it's problematic */ shutdown_memory_manager(1, 1 TSRMLS_CC);} /* }}} */ /* {{{ php_request_shutdown_for_hook */ void php_request_shutdown_for_hook(void *dummy){ TSRMLS_FETCH();if(PG(modules_activated))zend_try { php_call_shutdown_functions(TSRMLS_C);} zend_end_try();if(PG(modules_activated)){ zend_deactivate_modules(TSRMLS_C); php_free_shutdown_functions(TSRMLS_C);} zend_try { int i; for(i = 0;i < NUM_TRACK_VARS;i++){ 天一博胜企业管理软件V1.0 源代码 if(PG(http_globals)[i]){ zval_ptr_dtor(&PG(http_globals)[i]); } } } zend_end_try();zend_deactivate(TSRMLS_C);zend_try { sapi_deactivate(TSRMLS_C);} zend_end_try();zend_try { php_shutdown_stream_hashes(TSRMLS_C);} zend_end_try();zend_try { shutdown_memory_manager(CG(unclean_shutdown), 0 TSRMLS_CC);} zend_end_try();zend_try { zend_unset_timeout(TSRMLS_C);} zend_end_try();} /* }}} */ /* {{{ php_request_shutdown */ void php_request_shutdown(void *dummy){ zend_bool report_memleaks;TSRMLS_FETCH();report_memleaks = PG(report_memleaks);/* EG(opline_ptr)points into nirvana and therefore cannot be safely accessed * inside zend_executor callback functions.*/ EG(opline_ptr)= NULL;EG(active_op_array)= NULL;/* 1.Call all possible shutdown functions registered with register_shutdown_function()*/ if(PG(modules_activated))zend_try { php_call_shutdown_functions(TSRMLS_C);} zend_end_try();/* 2.Call all possible __destruct()functions */ zend_try { zend_call_destructors(TSRMLS_C);} zend_end_try();/* 3.Flush all output buffers */ zend_try { php_end_ob_buffers((zend_bool)(SG(request_info).headers_only?0:1)TSRMLS_CC);} zend_end_try();/* 4.Send the set HTTP headers(note: This must be done AFTER php_end_ob_buffers()!)*/ zend_try { sapi_send_headers(TSRMLS_C);} zend_end_try();/* 5.Call all extensions RSHUTDOWN functions */ if(PG(modules_activated)){ zend_deactivate_modules(TSRMLS_C); php_free_shutdown_functions(TSRMLS_C);天一博胜企业管理软件V1.0 源代码 } /* 6.Destroy super-globals */ zend_try { int i; for(i=0;i if(PG(http_globals)[i]){ zval_ptr_dtor(&PG(http_globals)[i]); } } } zend_end_try();/* 6.5 free last error information */ if(PG(last_error_message)){ free(PG(last_error_message)); PG(last_error_message)= NULL;} if(PG(last_error_file)){ free(PG(last_error_file)); PG(last_error_file)= NULL;} /* 7.Shutdown scanner/executor/compiler and restore ini entries */ zend_deactivate(TSRMLS_C);/* 8.Call all extensions post-RSHUTDOWN functions */ zend_try { zend_post_deactivate_modules(TSRMLS_C);} zend_end_try();/* 9.SAPI related shutdown(free stuff)*/ zend_try { sapi_deactivate(TSRMLS_C);} zend_end_try();/* 10.Destroy stream hashes */ zend_try { php_shutdown_stream_hashes(TSRMLS_C);} zend_end_try();/* 11.Free Willy(here be crashes)*/ zend_try { shutdown_memory_manager(CG(unclean_shutdown)||!report_memleaks, 0 TSRMLS_CC);} zend_end_try();/* 12.Reset max_execution_time */ zend_try { zend_unset_timeout(TSRMLS_C);} zend_end_try();#ifdef PHP_WIN32 if(PG(com_initialized)){ CoUninitialize(); PG(com_initialized)= 0;} #endif } /* }}} */ /* {{{ php_com_initialize */ PHPAPI void php_com_initialize(TSRMLS_D) 目录 1.1 什么是软件著作权登记 1.2 什么是软件版权登记 1.3 为什么要进行软件著作权登记(软件版权登记) 1.4 软件著作权登记所需材料 1.5 哪些人可以作为软件著作权登记的申请人 1.6 软件著作权登记是民间行为还是政府行为,它的效力如何 1.7 软件著作权登记的时间 1.8 我想办理软件著作权登记业务,但是又担心我的软件代码因此泄露,怎么办 1.9 软件著作权登记申请可以被撤回么 1.10 我的登记信息或者登记材料有误,可否变更或者补充 1.11 哪些情况下登记申请会被否决 1.12 软件著作权登记证书可以被撤销么 1.13 软件著作权登记所需的费用有哪些 1.14 软件著作权登记业务办理流程 1.15 什么是著作权(版权) 1.16 哪些作品受著作权法保护 1.17 保护著作权的法律法规主要有哪些 1.18 各类作品著作权的保护期有多长 1.19 作品著作权登记的范围 1.20 什么是计算机软件 1.21 软件著作权保护期限是多长 1.22 哪些人可以成为软件著作权人 1.23 软件著作权可以保护软件的思想、算法和技术方案吗 1.24 什么是软件开发者 1.25 合作开发的软件著作权怎么归属 1.26 委托开发的软件著作权怎么归属 1.27 由国家机关下达任务的软件著作权怎么归属 1.28 职务开发软件和非职务开发软件怎样界定 1.29 软件相似是不是就视为侵权 1.30 进行计算机软件著作权登记有什么作用 1.31 只有进行软件著作权登记后才有版权吗 1.32 申请登记的软件名称是不是不能与已登记的软件名称重名 1.33 可以以个人名义申请登记吗 1.34 个人申请登记要提交什么身份证明文件 1.35 法人申请软件著作权登记要提交什么身份证明文件 1.36 合作开发的软件由谁进行登记 1.37 申请软件著作权登记需要提交的材料是什么 1.38 软件著作权登记中需要提交的鉴别材料包括什么 1.39 申请表中的一般交存和例外交存怎样区别 1.40 鉴别材料作例外交存有什么意义 1.41 软件的初始版本已经登记,升级版本还要再登记吗 1.42 登记证书可以要两个或多个吗 1.43 外地申请者的申请费什么时候交 1.44 算法软件可以登记吗 1.45 游戏可以登记吗 1.46 其它问题 什么是软件著作权登记 答:根据《计算机软件著作权登 记办法》的规定:“为促进我国软件产业发展,增强我国信息产业的创新能力和竞争能力,国家著作权行政管理部门鼓励软件登记,并对登记的软件予以重点保护 “。因此,软件著作权登记是指根据国家《著作权法》和《计算机软件保护条例》、《计算机软件著作权登记办法》的规定,由国家主管机关依职权对软件进行的著 作权登记活动。经过登记并获得《软件著作权登记证书》的软件,不仅受到国家著作权法的保护,而且可以享受国家提供的优惠政策。 什么是软件版权登记 答:根据《著作权法》的规定,著作权和版权含义相同。因此,目前大家常说的软件版权登记,就是软件著作权登记,两者含义完全相同。 为什么要进行软件著作权登记(软件版权登记) 答: 1.软件著作权登记是软件得到重点保护的依据。《国务院关于印发鼓励软件产业和集成电路产业发展若干政策的通知》第32条规定:“国务院著作权行政管理部门要规范和加强软件著作权登记制度,鼓励软件著作权登记,并依据国家法律对已经登记的软件予以重点保护。” 2.软件著作权登记是提起诉讼、司法保护的前提。在发生软件著作权争议、软件著作权纠纷时,《软件著作权登记证书》是著作权人主张权利的证明,因此,它是向人民法院提起诉讼,请求司法保护的前提。 3.软件著作权登记是软件作品作为技术出资入股的前提。《关于以高新技术成果出资入股若干问题的规定》规定计算机软件可以作为高新技术出资入股,但是一般都要求权利人提供《软件著作权登记证书》作为评估依据。 4.软件著作权登记是权利人享有各项优惠政策的前提条件。登记人可以依据《鼓励软件产业和集成电路产业发展的若干政策》,享受有关税收、知识产权、投融资、产 业技术、出口、人才吸引等若干的优惠政策。另外,取得《软件著作权登记证书》后,可进行软件产品登记和软件企业的认定(双软认定),由此可享受国家的税收 优惠政策。 5.软件著作权登记是在我国境内合法经营或者销售软件产品的前提和保障。 软件著作权登记所需材料 答:申请人申请软件著作权登记,应当向其代理人提交如下材料: (一)按要求填写的软件著作权登记申请表; (二)软件的鉴别材料; 软件的鉴别材料包括程序和文档的鉴别材料。 程序和文档的鉴别材料应当由源程序和任何一种文档前、后各连续30页组成。整个程序和文档不到60页的,应当提交整个源程序和文档。除特定情况外,程序每页不少于50行,文档每页不少于30行。 (三)相关的证明文件。这些文件一般包括: 自然人、法人或者其他组织的身份证明; 有著作权归属书面合同或者项目任务书的,应当提交合同或者项目任务书; 经原软件著作权人许可,在原有软件上开发的软件,应当提交原著作权人的许可证明; 权利继承人、受让人或者承受人,提交权利继承、受让或者承受的证明。 哪些人可以作为软件著作权登记的申请人 答: 根据《计算机软件著作权登记办法》的规定:“软件著作权登记申请人应当是该软件的著作权人以及通过继承、受让或者承受软件著作权的自然人、法人或者其他组 织 “。根据这一规定,并非只有原始著作权人才能申请软件著作权登记,他的继承人,或者受让他的著作权的个人或者单位,都可以作为申请人来申请。对于那些合作 开发的软件进行著作权登记的,可以由全体著作权人协商确定一名著作权人作为代表办理。著作权人协商不一致的,任何著作权人均可在不损害其他著作权人利益的 前提下申请登记,但应当注明其他著作权人。软件著作权登记是民间行为还是政府行为,它的效力如何 答: 软件著作权登记是一项国家权力,其效力受到国家信用的保证。根据相关法律法规的规定,国家版权局主管全国软件著作权登记管理工作。目前,国家版权局认定中 国版权保护中心为软件登记机构。经国家版权局批准,中国版权保护中心可以在地方设立软件登记办事机构。同时,鉴于软件著作权登记申请需要较多的专业经验和 知识,申请人一般都委托盛邦知识产权代理公司代理其申请。 软件著作权登记的时间 答:一般来讲,从取得受理通知书之日起30日,登记中心可以办理发证事宜。具体时间请留意中心的通知,或者与我们的工作人员联系。 我想办理软件著作权登记业务,但是又担心我的软件代码因此泄露,怎么办 答: 我们理解您的担心,但是,一般来讲,申请人在计算机软件著作权登记申请过程中提交的源代码、程序文档等材料是被严格保密的,除非经过公检法等部门的依法查 询,除申请人以外的其他人都无法接触到申请人提交的材料。《计算机软件著作权登记办法》中规定,“软件著作权登记时,申请人可以申请将源程序、文档或者样 品进行封存。除申请人或者司法机关外,任何人不得启封”。 另外,目前登记机关允许申请人对软件代码进行特殊处理后再提交,这种提交方式被称为“例外交存”。目前允许的例外交存方式主要有如下几种情况: A 对鉴别材料作例外 然,这并不是说软件的设计思路和方法就完全不被法律保护。虽然由于著作权法的局限性,软件的设计思路和方法不受著作权法的保护,但是,我们可以通过将独 创性的方法申请成为专利,并通过专利法对软件创造性的算法、流程、思路进行排他性的保护。具体信息您可以通过与我们的专利工程师联系获取详细资料,盛峰专 利网的网站地址是http:///zl。 什么是软件开发者 答:是指实际组织开发、直接进行开发,并对开发完成的 软件承担责任的法人或者其他组织;或者依靠自己具有的条件独立完成软件开发,并对软件承担责任的自然人。 合作开发的软件著作权怎么归属 答: 根据《著作权法》、《计算机软件保护条例》、《计算机软件著作权登记办法》等法律法规和规定的精神,由两个以上的自然人、法人或者其他组织合作开发的软 件,其著作权的归属由合作开发者签订书面合同约定。如果合作开发各方没有书面合同约定,或者对于书面合同没有达成一致,我们可以参考著作权法的规定:“ 两人以上合作创作的作品,著作权由合作作者共同享有。没有参加创作的人,不能成为合作作者。合作作品可以分割使用的,作者对各自创作的部分可以单独享有著 作权,但行使著作权时不得侵犯合作作品整体的著作权”。委托开发的软件著作权怎么归属 答:接受他人委托开发的软件,其著作权的归属由委托人与受托人签订书面合同约定;无书面合同或者合同未作明确约定的,其著作权由受托人享有。 由国家机关下达任务的软件著作权怎么归属 答:由国家机关下达任务开发的软件,著作权的归属与行使由项目任务书或者合同规定;项目任务书或者合同中未作明确规定的,软件著作权由接受任务的法人或者其他组织享有。职务开发软件和非职务开发软件怎样界定 答: 自然人利用业余时间及个人的物质技术条件开发完成的,并且与本人的本职工作内容无直接联系的软件为非职务开发软件。自然人在单位任职期间针对本职工作中明 确指定的开发目标所开发的软件,或者开发的软件是从事本职工作活动所预见的结果或者自然的结果,或者主要使用了法人或者其他组织的资金、专用设备、未公开 的专门信息等物质技术条件所开发并由法人或者其他组织承担责任的软件,自然人的开发行为属于职务开发,软件为职务开发软件,该软件著作权由单位享有。 实践中,具体开发人员与其所在单位就软件的归属发生争议的情况越来越多,并且存在举证困难,后果严重的情况。因此,我们建议无论是开发者还是其所在的工作单位,在软件开发完成后及时办理计算机软件著作权登记,避免日后的纠纷和麻烦。 软件相似是不是就视为侵权 答: 软件开发者开发的软件,由于可供选用的表达方式有限而与已经存在的软件相似的,不构成对已经存在的软件的著作权的侵犯。所谓的表达方式有限,是指由于软件 产品的潜在用途、行业、功能的局限性,导致软件必须采取某种表达方式的,这种表达方式的相似就是由于表达方式有限导致的,不构成侵权性的相似。例如,文字 处理软件都需要有复制、粘贴等编辑功能,那么,两款软件都有这个功能就互相之间不构成侵权。另外,两款财务软件都是按照国家规定的财务规则和财务制度编写 的,那么,他们为了遵守通用财务规定和规则而出现的相似性,也不构成侵权性相似。有关这方面的具体问题,可以与我们的法律顾问盛峰律师事务所沟通获得帮 助。 进行计算机软件著作权登记有什么作用 答:国家著作权行政管理部门鼓励著作权人 进行计算机软件著作权登记,并对已登记的软件给予重点保护。软件著作权登记证书是对登记事项的初步证明,可以帮助持有者在诉讼中起到减轻举证责任的作用。根据国务院颁发的《鼓励软件产业和集成电路产业发展的若干政策》的有关规定,证书可以作为软件企业申请减免税收的证明。 只有进行软件著作权登记后才有版权吗 答: 软件开发完成后著作权自动产生,不论是否登记,都享有著作权。但是,考虑到方便举证的问题,目前国家政府机关在高新技术企业认定、软件企业认定等方面,还 是要求企业提供《软件著作权登记证书》作为其享有软件著作权的证据材料。在法院诉讼过程中,《软件著作权登记证书》的作用也是非常巨大的。 申请登记的软件名称是不是不能与已登记的软件名称重名 答:只要是独立开发享有著作权的软件都可以申请登记,软件名称可以相同或相似。但是,考虑到不同厂商之间软件产品的区分,以及部分软件产品的名称与其开发单位享有的商标专用权可能有一定的关联,我们建议后登记的软件尽量不要和先登记的软件重名。可以以个人名义申请登记吗 答:只要是著作权人就可以申请软件著作权登记;根据著作权法的规定,依靠自己具有的条件独立完成软件开发,并对软件承担责任的自然人本身就是软件的著作权人,其完全可以作为申请人申请登记。 个人申请登记要提交什么身份证明文件 答:需要提交个人的身份证复印件(打印在A4纸张,如果是二代身份证则正反两面信息都要复印)。 法人申请软件著作权登记要提交什么身份证明文件 答: 公司需要提交营业执照副本复印件,事业单位需要提交事业单位法人证书复印件,机关需要提交组织机构代码复印件,社团法人提交社团法人证书复印件。都应是 A4格式,都需要盖章后提交。外国的公司、社团和其他单位也可以依据计算机软件著作权登记办法进行登记,但是需要注意的是外国公司提交的身份证明文件需要 中国驻当地使领馆的认证,同时所有的外文文件需要翻译公司翻译,并加盖翻译公司的公章。 合作开发的软件由谁进行登记 答:合作开发的软件进行著作权登记的,可以由全体著作权人协商确定一名著作权人作为代表办理,申请者签章时只需由此著作权人签公章。著作权人协商不一致的,任何著作权人均可在不损害其他著作权人利益的前提下申请登记,但应当注明其他著作权人。 申请软件著作权登记需要提交的材料是什么 答:基本材料一是计算机软件著作权登记申请表;二是著作权人的身份证明文件;三是软件的鉴别材料,其他文件视材料中的具体情况而定。 软件著作权登记中需要提交的鉴别材料包括什么 答: 软件的鉴别材料包括源程序和文档,由源程序前、后各连续30页,以及任何一种文档前、后各连续30页组成。共120页。整个程序不到60页的,应当提交整 个源程序;整个文档不到60页的,应当提交整个文档。除特定情况外,程序每页不少于50行,文档每页不少于30行(如有图片则不需要)。全部用A4纸单面 打印,不需要装订。 鉴别材料的页码可以打印,也可以手写,在材料的右上方,源程序从正文第1页编到第60页,文档从目录开始由第1页编到第60页。 申请表中的一般交存和例外交存怎样区别 答:一般交存指的是提交源程序的前、后各连续的30页;例外交存可以选择以下三种方式之一: (一)源程序的前、后各连续30页,其中的机密部分用黑色宽斜线覆盖,但覆盖部分不得超过交存源程序的50%; (二)源程序连续的前10页,加上源程序的任何部分的连续的50页; (三)目标程序的前、后各连续的30页,加上源程序的任何部分的连续的20页。鉴别材料作例外交存有什么意义 答:计算机软件鉴别材料中含有商业和技术秘密,或者含有不愿透露的内容时,申请人可以例外交存程序或文档的鉴别材料。 软件的初始版本已经登记,升级版本还要再登记吗 答:不同版本是不同的软件作品,软件功能和性能发生重大变化的升级软件,申请人如有需要,还应再登记。 登记证书可以要两个或多个吗 答:著作权人是多方的软件,可以申请要多个证书,其中一个为正本,其余的是副本。证书的正本和副本数额不能超过著作权人的数量。 外地申请者的申请费什么时候交 答:通过初审材料符合要求,申请人收到缴费通知后,通过银行或邮局汇款。 算法软件可以登记吗 答:算法是数学方法,在软件开发中,使用计算机程序设计语言实现的算法,其表达形式受到版权保护,可以进行登记。 游戏可以登记吗 答:一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,游戏引擎是程序代码,可以申请软件著作权登记,而游戏中动漫、视频、图片等属于其他作品,不能进行软件著作权登记。 软件著作权申请 软件著作权登记办理流程 填写申请表(在网站上填写)→提交申请文件(网站提交)→缴纳申请费用→补正申请文件(非必须程序)→取得登记证书(申请受理之日起30个工作日后,申请人或代理人可登记我中心网站,查阅软件著作权登记公告。北京地区的申请人或代理人在查阅到所申请软件的登记公告后,可持受理通知书原件在该软件登记公告发布3个工作日后,到我中心版权登记大厅领取证书。申请人或代理人的联系地址是外地的,我中心将按照申请表中所填写的地址邮寄证书,请务必在申请表中填写正确的联系地址。) 1、软件著作权登记申请表 应提交在线填写的申请表打印件,请勿复制、下载和擅自更改表格格式,签章应为原件。 2、软件(程序、文档)的鉴别材料 •一般交存:源程序和文档应提交前、后各连续30页,不足60页的,应当全部提交; •例外交存:请按照《计算机软件著作权登记办法》第十二条规定的方式之一提交软件的鉴别材料。 注:申请人若在源程序和文档页眉上标注了所申请软件的名称和版本号,应当与申请表中相应内容完全一致,右上角应标注页码,源程序每页不少于50行,最后一页应是程序的结束页,文档每页不少于30行,有图除外。 3、有关证明文件 证明文件包括:申请人及代理人的身份证明文件、权利归属证明文件等。 ①代理人身份证明文件 登记申请委托代理的,应当提交代理人的身份证明文件复印件,申请表中应当明确委托事项、委托权限范围、委托期限等内容。②申请人有效身份证明文件(单位的需盖公章) •企业法人单位提交有效的企业法人营业执照副本的复印件; •著作权人为自然人的,应提交有效的自然人身份证复印件(正反面复印);并需提交非职务开发保证书或非职务开发证明。(可以到软件登记申请须知中下载《非职务开发证明》和《非职务开发保证书》) ③权利归属的证明文件 •委托开发的,应当提交委托开发合同; •合作开发的, 应当提交合作开发合同; •下达任务开发的, 应当提交上级部门的下达任务书; 审批流程 申请费用 1、缴费时间 收到缴纳申请费通知书起应当在15个工作日内缴费,逾期未交费的,视为撤回申请 2、缴费标准 计算机软件著作权登记收费标准 (经财政部和国家发改委批准) 3、缴费方式 申请费可以直接向中国版权保护中心财务处面交,或通过银行或邮局汇付。通过邮局或银行缴纳费用时,请务必将费用汇入以下专用帐号: 开户银行:中信银行北京阜成门支行(银行行号711201) 帐户名称:中国版权保护中心(中央财政汇缴专户) 银行帐户:7112010***4特别提示:申请人缴纳费用时,应当注明申请流水号。由于计算机软件著作权登记收费,现已实行中央财政集中收取,汇入帐号的费用若出现差错不易返还。请您认真核对后,再按照帐户汇入费用 办理时限 软件著作权登记申请,受理之日起30个工作日 软件著作权申请须知 1、申请人可以自己办理计算机软件著作权登记,也可以委托代理机构办理登记。 2、申请人应当将所提交的申请文件留存一份,便于在补正程序中保持文件内容的一致。 3、办理软件著作权登记可到登记大厅现场办理,也可使用挂号信函或特快专递邮寄到中国版权保护中心软件登记部。 邮寄联系地址:北京市东城区安定门东大街28号雍和大厦西楼三层301(邮编:100007)现场办理地址:雍和大厦西楼一层国际版权交易中心版权登记大厅 咨询电话:010—6800393 4查询电话:010—68003220 邮寄材料查询电话:010—680035164、申请表应当在线打印,请勿擅自更改表格格式;申请文件都应当按规定签章,签章应当与申请表中填写的姓名或者名称完全一致。 5、申请文件应当使用A4纸张,纵向、单面使用,文字应当从左向右排列。申请文件各部分应当分别用数字顺序在右上角标注页码。文档和源程序的页眉上应当标注该申请软件名称、版本号,并应当与申请表中相应内容完全一致。 6、《计算机软件著作权申请表》中的版本号应按规范填写,如V1.0或1.0这两种模式。申请人提交的所有登记材料中出现的版本号,应与申请表中保持完全一致(版本号中有或无“V”,应保持一致性) 7、申请人或代理人信息栏内的详细地址,请务必填写准确的实际联系地址,以便我中心邮寄证书或其它书面邮件。 8、申请人或代理人在填写申请表中的“主要功能和技术特点”事项时,应严格按照填写要求,着重描述该软件的各项主要功能,并简述其特点。 9、软件为升级版本的,应在申请表软件基本信息栏中的软件作品说明中,选择修改项并填写修改说明,前期版本已登记的应填写原登记号并提交原证书复印件。 10、著作权人为企业法人或事业法人的应提交有效的企业法人营业执照或事业单位法人 证书副本复印件,并需加盖单位公章; 11、著作权人为自然人的,应提交有效的自然人身份证复印件(正反面复印)。并需提交非职务开发保证书或非职务开发证明。(下载《非职务开发证明》《非职务开发保证书》)。 12、申请人提交的证明文件是外文的,应当附有中文译本。申请所需提交的证明文件应当使用原件或副本,无法提交原件的,应当在提交的复印件上注明“与原件一致”,并加盖申请人的签章。 13、外地的软件登记申请人或代理人如需自取证书,应当在申请表中申请人或代理人信息栏内的联系人后加注括号,写明联系人的北京联系地址,我中心将不做邮寄处理。 14、为提高工作效益,缩短工作周期,我中心办理登记过程中的各类通知(如,补正通知书、缴费通知书等)将主要以电子邮件方式通知申请人。申请人在填写申请表时应提供真实、准确的邮箱地址。 补正期限:根据计算机软件登记办法规定,自发出补正通知之日起,申请人需在30个工作日提交补正材料,逾期未补正的,视为撤回申请。 15、办理软件登记申请应当以书面的方式提交必要的申请文件,并按规定缴纳费用。软件登记申请费和查询费用通过银行汇款的,请务必将费用汇入以下专用帐号: 开户银行:中信银行北京阜成门支行(银行行号711201) 帐户名称:中国版权保护中心(中央财政汇缴专户) 银行帐户:7112010*** 4注释1:费用的交纳人应为申请人或代理人,如因交费人与申请人或代理人名称不一致导致登记申请延误的,责任自负。 注释2:交费期限:根据计算机软件登记办法规定,申请人应在缴费通知发出后15个工作日内交费,逾期未交费的,视为撤回申请。 16、软件著作权人如果是通过受让方式取得的,申请软件著作权登记的方式有两种:A类--获得“计算机软件著作权登记证书”。即以受让方为申请人填写的“计算机软件著作权登记申请表”。B类—获得“计算机软件著作权合同登记证书”。即以转让方或受让方为申请人填写的“计算机软件著作权转让合同和专有许可合同登记申请表”。 17、已登记软件的著作权发生转让、承受、质押、著作权人名称变更的,权利继受方办理著作权登记,合同当事人办理转让和专有许可合同登记,办理软件著作权质押合同登记,以及变更或补充登记等申请,均需办理软件著作权登记概况查询,查询结果是办理上述登记申请的文件之一。下载查询申请表。有关说明文件下载 非职务软件开发保证书.doc上级法人单位证明.doc权利保证书.doc非职务软件开发证明.doc 软件著作权登记申请所需文件 通过独立开发软件,对软件享有软件著作权的自然人、法人或其他组织,或通过合同约定、受让、继承、承受取得软件著作权的自然人、法人或其他组织,可以申请著作权登记。 软件著作权登记申请文件应当包括:软件著作权登记申请表、软件的鉴别材料、申请人身份证明和相关的证明文件各一式一份。 1、软件著作权登记申请表 •应提交在线填写的申请表打印件,签章应为原件。 2、软件(程序、文档)的鉴别材料 •一般交存:源程序和文档应提交前、后各连续30页,不足60页的,应当全部提交; •例外交存:请按照《计算机软件著作权登记办法》第十二条规定的方式之一提交软件的鉴别材料。注:源程序和文档应在页眉上标注相应的软件名称和版本号,右上角应标注页码,源程序每页不少于50行,文档每页不少于30行。 3、有关证明文件 证明文件包括:申请人及代理人的身份证明文件、权利归属证明文件等。 ①代理人身份证明 登记申请委托代理的,应当提交代理人的身份证明文件复印件,申请表中应当明确委托事项、委托权限范围、委托期限等内容。 ②有效身份证明文件(单位的需盖公章) •企业法人单位提交有效的营业执照副本的复印件; •事业法人单位提交有效的事业法人证书的复印件; •社团法人单位提交民政部门出具的有效的社团法人证书的复印件; •其他组织提交工商管理机关或民政部门出具的证明文件复印件; •自然人申请的,提交身份证或护照等有效证明的复印件。 ③权利归属的证明文件 •委托开发的,应当提交委托开发合同; •合作开发的, 应当提交合作开发合同; •下达任务开发的, 应当提交上级部门的下达任务书; •受让取得软件著作权的, 应当提交软件著作权转让协议; •原著作权人的企业被合并或分立,由合并或分立后的其他企业享有著作权的,需要提交的证明文件包括:企业注销登记证明、股东会或董事会决议等其他证明; •继承人继承的,需要提供的证明文件包括:被继承人的死亡证明、被继承人有效遗嘱、与被继承人的关系证明、继承人身份证明、法院的法律文书等。 4、其他证明文件 •修改他人软件应当授权许可的,应当提交授权书。
n%s: %s in %s on line %d
n%s“, STR_PRINT(prepend_string), error_type_str, buf, error_filename, error_lineno, STR_PRINT(append_string));
n%s: %s in %s on line %d
n%s“, STR_PRINT(prepend_string), error_type_str, buffer, error_filename, error_lineno, STR_PRINT(append_string));第三篇:软件著作权申请
第四篇:软件著作权申请
第五篇:软件著作权申请须知