当前位置:文档之家› 软件著作权-源代码范本

软件著作权-源代码范本

软件著作权-源代码范本
软件著作权-源代码范本

软件著作权-源代码范本

注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。

提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软

件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软

件名字等,不能出现开源代码,不能出现任何版权纠纷。

格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。

二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页

眉右上应标注页码,源代码每页不少于50行。

范例如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define NS_MAIN 1

#include

#endif

#ifdef DLZ

#include

#endif

static tybs_boolean_t want_stats = TYBS_FALSE;

static char program_name[TYBS_DIR_NAMEMAX] = "named"; static char absolute_conf];

static char saved_command_line[512];

static char version[512];

static unsigned int maxsocks = 0;

void

ns_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);

}

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 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) failed\n",

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_FORMA T_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 {

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");

}

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 != '\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 int

parse_int(char *arg, const char *desc) {

char *endp;

int tmp;

long int ltmp;

ltmp = strtol(arg, &endp, 10);

tmp = (int) ltmp;

if (*endp != '\0')

ns_main_earlyfatal("%s '%s' must be numeric", desc, arg);

if (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 void

set_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 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();

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_conf = TYBS_TRUE;

break;

case 'C':

lwresd_g_resolvconffile = tybs_commandline_argument;

if (ns_g_conf)

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;

else

fprintf(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_t

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);

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 HA VE_LIBSCF

char *instance = NULL;

#endif

ns_os_inituserinfo(ns_g_username);

ns_os_tzset();

ns_os_opendevnull();

#ifdef HA VE_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 /* HA VE_LIBSCF */

#ifdef PA TH_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_create(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);

}

}

#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_(ns_g_conffile)) {

result = tybs_(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

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 *) {

if (memstats != NULL) {

free(memstats);

memstats = NULL;

}

if ( == NULL)

return;

memstats = malloc(strlen() + 1);

if (memstats)

strcpy(memstats, );

}

#ifdef HA VE_LIBSCF

tybs_result_t

ns_smf_get_instance(char **ins_name, int debug, tybs_mem_t *mctx) { scf_handle_t *h = NULL;

int namelen;

char *instance;

REQUIRE(ins_name != NULL && *ins_name == NULL);

if ((h = scf_handle_create(SCF_VERSION)) == NULL) {

if (debug)

UNEXPECTED_ERROR(__FILE__, __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);

}

#endif

int

main(int argc, char *argv[]) {

tybs_result_t result;

#ifdef HA VE_LIBSCF

char *instance = NULL;

#endif

strlcat(version,

#ifdef __DATE__

"named version: BIND " VERSION " (" __DA TE__ ")", #else

"named version: BIND " VERSION,

#endif

sizeof(version));

result = tybs_(*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_conf] == '/' || ns_g_conf] == '\\'))

ns_main_earlywarning("config (-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_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 /* 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

#include

#ifdef PHP_WIN32

#include "win32/time.h"

#include "win32/signal.h"

#include "win32/php_win32_globals.h"

#include

#elif defined(NETW ARE)

#include

#ifdef USE_WINSOCK

#include

#endif

#endif

#if HA VE_SYS_TIME_H

#include

#endif

#if HA VE_UNISTD_H

#include

#endif

#if HA VE_SIGNAL_H

#include

#endif

#if HA VE_SETLOCALE

#include

#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

#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

#include

#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 ZTS

php_core_globals core_globals;

#else

PHPAPI int core_globals_id;

#endif

#define SAFE_(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);

s = NULL;

}

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);

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) {

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_https://www.doczj.com/doc/b66219196.html,, "cli") || !strcmp(sapi_https://www.doczj.com/doc/b66219196.html,, "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_))) { 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;

}

#ifndef PHP_SAFE_MODE_EXEC_DIR

# define PHP_SAFE_MODE_EXEC_DIR ""

#endif

#if defined(PHP_PROG_SENDMAIL) && !defined(NETWARE)

# define DEFAULT_SENDMAIL_PA TH PHP_PROG_SENDMAIL " -t -i "

#elif defined(PHP_WIN32)

# define DEFAULT_SENDMAIL_PA TH NULL

#else

# define DEFAULT_SENDMAIL_PA TH "/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 HA VE_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_WRONL Y, 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

*/

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 functions.

* Its purpose is to unify error messages and automatically generate clickable

* html error messages if correcponding ini setting (html_errors) is activated.

* See: CODING_STANDARDS for details.

*/

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 = "";

软件著作权转让合同标准范本(完整版)

金家律师修订 本协议或合同的条款设置建立在特定项目的基础上,仅供参考。实践中,需要根据双方实际的合作方式、项目内容、权利义务等,修改或重新拟定条款。本文为Word格式,可直接使用、编辑或修改 软件著作权转让合同 转让人(甲方):__________________________________________ 法定代表人:_____________________________________________ 受让人(乙方):__________________________________________ 法定代表人:_____________________________________________ 甲、乙双方本着平等自愿、真诚合作的原则,经双方友好协商,依据《中华人民共和国知识产权法》和《计算机软件保护条例》以及其他有关法律、法规的规定,就甲方向乙方转让软件著作权及源代码事宜达成如下协议,以期共同遵守。 第一条作品的名称 甲方将其拥有所有权的软件著作权(以下简称“本著作权”)及源代码之全部知识产权利转让给乙方。 第二条转让的权利种类、地域范围 1.甲方向乙方转让以下全部地域范围内的与本著作权相关的所有权利; 2.地域范围:。 第三条转让价金、交付转让价金的日期 1.乙方为此向甲方支付转让费用共计(大写)元人民币,(小写)元人民币。 2.付款进度 a.乙方于软件著作权交付日向甲方支付元; b.从合同签订之日起一个月内向甲方支付元; c.从合同签订之日起三个月内向甲方支付元。 第四条支付价金的方式 乙方按下述方式付款:

a □现金支付; b □银行转帐; c □支票支付。 第五条甲方权利与义务 1.甲方应按本合同约定向乙方转让_______________软件产品、软件开发平台及全部的源代码等,并保证代码的完整性,可直接编译为应用程序正常使用。 2.自本合同签订之日起,甲方不得将本合同标的(即转让软件及源代码)转让或许可第三人使用;自乙方付款完毕之日起,乙方享有该转让软件及源代码的一切知识产权,甲方不得以任何形式使用、转让、传播该软件或源代码。 3.甲方向乙方提供《软件系统设计及使用说明书》及全部的相关文档。 4.甲方在合同签字后负责为乙方现场安装、调试系统开发平台,讲解各个功能的实现原理及方法,并当面解答乙方提出的全部问题。 5.甲方在本合同生效三个月内,负责为乙方解答开发过程中遇到的问题,并讲解开发思想及方法。 第六条乙方权利与义务 1.乙方负责支付本著作权及源代码的转让费人民币元(人民币大写:),并按本合同约定付款进度向甲方付款。 2.乙方有权对此软件或源代码做出任意修改,并有权自由处置该软件或源代码。 第七条违约责任 1.如任何一方违反本合同约定给对方造成损失,守约方均可以要求对方赔偿际损失金额。 2.如甲方侵害他人知识产权或违背现行各项法律或国家政策时,由甲方自行承担赔偿责任,与乙方无关;转让软件或源代码因此被有关机关扣留、没收,或禁止发行、使用的,甲方应赔偿乙方遭受的全部损失,并由甲方负责解决所有纠纷承担相关费用。 第八条保证条款 1.甲方保证拥有本产品的知识产权且不存在任何权利瑕疵。并且此转让行为不侵犯任何第三方的合法权益。若甲方违反本条内容,则甲方构成违约,乙方有权解除合同,并有权要求甲方赔偿损失。

软件著作权源代码例子

1 2 #ifnfdgdfdef __CHEDGDFGCLID_A_ 3 #dedfgdffine __CHEGDFGCLID_A_ 4 5 /************************************************************************/ 6 /* 定义 */ 7 /************************************************************************/ 8 #defgdfgdfine FLADGDFGSH_SEDGDFGION 9 10 #defidgdne EDFGDFNS_ ADDGDFDESS_TEST #defidgdfne EDGDFGNS_ ADDEDGDGSS_TEST_3 11 12 13 #defdgdfine NDGDFGEED _CHECK 6 14 15 typdfgdfedef enum { 16 17 CA_ONEISDGDFGEMPTY, 18 CA_TWOISEDGDFGMPTY, 19 CA_TWOISFFDGDFGULL 20 }chedgdfckusdfdfm; 21 22 typedsfsdfef ssfsdftruct 23 { 24 TX_U8 desfdfsKey[9]; 25 TX_U8 desfsdfdsresult[9]; 26 TX_U64 crc64; 27 }DedgdfgsDatsfsdfdsa_f; 28 /************************************************************************/ 29 30 /* 函数声明 */ 31 /************************************************************************/ 32 TX_ ChesfsfckValid(checkenum checkcase); 33 TX_ ResfsdfadFlash(void); 34 TX_ ReadRanFromPanel(void); 35 TX_ ResfsdfadSerial(void); 36 TX_ ResfsdfadIPanel(void);

计算机软件著作权登记-源代码范本教学内容

计算机软件著作权登记-源代码范本 注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。 提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软 件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软 件名字等,不能出现开源代码,不能出现任何版权纠纷。 格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。 二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页 眉右上应标注页码,源代码每页不少于50行。 范例如下: #include #include #include #include #include #include #include #include #include #include #include

#include #include #include #include #include #include #include #include #define NS_MAIN 1 #include #endif #ifdef DLZ #include #endif static 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; void ns_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); } 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); }

软著授权软件著作权授权软著授权书模板

****软件着作权 授权书 甲方(授权人): 信用代码: 甲方(被授权人): 信用代码: 授权人特此授权被授权人,按照本授权书约定享有相关权益: 一授权内容 甲方是 *****软件登记号: (简称“”)的所有权人、着作权人,并且,依法享有转授权权利。甲方同意授予乙方以下第条所述权益。 委托乙方作为甲方的广告代理,有权以乙方自己的名义,通过各类媒体为甲方产品、服务、品牌以及相关活动等进行推广。 委托乙方作为甲方的运营代理,有权以乙方自己的名义或以甲方名义(包括但不限于提交甲方资料为甲方上架安卓应用市场平台,简称“平台”),通过各类媒体为甲方、产品、服务、品牌以及相关活动等进行推广。同时,有权对以甲方名义对产品进行上架应用市场、开通账户进行投放广告等。 乙方在为甲方产品、服务、品牌以及相关活动等进行运营时,有权

使用与甲方相关的广告素材(包括但不限于音视频、图片、文字等)、网站等信息。 授权乙方依法运营许可物,并有权通过各类媒体为许可物进行推广。 二、授权性质 授权性质为第项。 非独家授权,乙方不得转授权。 非独家授权,乙方可以转授权。 独家授权,乙方可以转授权。 三、授权期限及区域 自 2020 年 4 月 8 日至 2023 _年 4 月 7 日止。授权区域 为中国/全球范围。 四、其他 双方均承诺上述内容真实、合法、有效,并愿意承担与之相关的全部责任。 双方同意并确认,乙方应当自觉依照本授权书内容行使权益,包括但不限于在授权期限内、授权区域内行使权益。 若乙方存在违反本授权书约定的侵权或越权行为的,甲方应当直接追究乙方责任。 (正文完)

甲方(授权人): (盖章/签名) 时间:2020年4月15日 甲方(被授权人): (盖章/签名) 时间:2020年4月15日

软件著作权成功维权十大案例之一

软件著作权成功维权十 大案例之一 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

2015软件着作权成功维权十大案例之一 临危受命,严密证据链让被告无处可逃 导读:一场历时一年多的“图像预处理”软件着作权之争终于在2015年09月17日下午谢幕。在本案一审审理中,在极为不利的情况下,长昊律师事务所临危受命、不负重望,最终喜得佳绩。我所律师以当事人的合法利益最大化为目标,在案件亲办过程中,克服重重困难,终于让被告受到了法律的制裁。本所回顾此案办理历程并就案件核心予以展述,一起共勉。 软件被盗,果断维权 2012年7月20日,张XX、陈XX将其共同享有的《XXX软件》(以下简称涉案侵权软件)转让给XH公司,并签订了《计算机软件着作权转让协议》。2012年12月1日,国家版权局出具证书号为软着登字第XX 号的《计算机软件着作权登记证书》,证书记载:着作权人为XH公司,开发完成日期为2009年9月9日,权利取得方式为受让,权利范围为全部权利。 被告人李XX注册成立深圳市HCRZ科技有限公司(以下简称HCRZ公司),在宝安区西乡黄田草围第一工业区租赁厂地生产摄像头,并未经原告XH公司授权在其生产的摄像头上安装XH公司所有的涉案侵权软件。 2014年05月30日10时,XH公司代表张XX向公安机关举报被告人李XX所有的HCRZ公司生产的摄像头软件侵犯其公司研发的软件着作权,2014年8月13日,公安机关在位于深圳市宝安区西乡黄田草围第一工业区HCRZ公司查获各类型摄像头5000多个,其中安装了涉案侵权软件的的HD-500T摄像头477个,查获电脑、烧录器等工具,并将被告人

软件著作权转让协议同范本(完整版)

合同编号:YT-FS-1709-17 软件著作权转让协议同范 本(完整版) Clarify Each Clause Under The Cooperation Framework, And Formulate It According To The Agreement Reached By The Parties Through Consensus, Which Is Legally Binding On The Parties. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

软件著作权转让协议同范本(完整 版) 备注:该合同书文本主要阐明合作框架下每个条款,并根据当事人一致协商达成协议,同时也明确各方的权利和义务,对当事人具有法律约束力而制定。文档可根据实际情况进行修改和使用。 合同(或合约)(covenants),是双方当事人基于对立合致的意思表示而成立的法律行为,为私法自治的主要表现,意指盖印合约中所包含的合法有效承诺或保证。本文是关于软件著作权转让协议同范本,仅供大家参考。 甲方:____ 乙方:____ 经甲乙双方协商一致,就《____》之软件著作权转让事宜达成本协议。 1.软件概况 软件的名称及版本号:____ 软件全称:____

软件简称:____ 软件版本:____ 2.甲方的权利和责任 自签订本协议之日起,甲方不再拥有该软件的著作权; 甲方必须向乙方提供该软件的全部源代码及其他相关文档; 甲方有义务向乙方提供该软件相关的技术支持; 甲方不得以任何方式向第三方透露与该软件相关的技术细节。 3.乙方的权利和责任 自签订本协议之日起,乙方拥有该软件的著作权; 乙方有义务在该软件上投入人力和物力,不断完善、升级该产品。 4.共同条款 甲方同意将该软件的著作权的各项权利无偿并且无地域限制地转让给乙方; 违反本协议第二条第3款、第4款之约定,甲方

软件著作权-源代码范本

软件著作权-源代码范本 注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。 提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软 件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软件名 字等,不能出现开源代码,不能出现任何版权纠纷。 格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。 、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页 眉右上应标注页码,源代码每页不少于50行。 范例如下: #i nclude #in elude #i nclude #in elude

#in elude #i nclude #i nclude #i nclude #i nclude #in clude #in clude #in clude #in clude #in clude #in clude #in clude #in clude #in clude #in clude #defi ne NS_MAIN 1 #i nclude #en dif #ifdef DLZ #in clude #en dif static tybs_boolean_t wan t_stats = TYBS_FALSE; static char static char static char static char static un sig ned program_ name[TYBS_DIR_NAMEMAX] = "n amed"; absolute_co nffile[TYBS_DIR_PATHMAX]; saved_comma nd_li ne[512]; versio n[512]; maxsocks = 0; n s_ma in _earlywar nin g(c onst char *format, ...) { va_list args; va_start(args, format); if (ns_g」ctx != NULL) { tybs_log_vwrite( ns_g」ctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_W ARNING, format, args); } else { fprin tf(stderr, "%s: ", program_ name); vfprin tf(stderr, format, args); fprin tf(stderr, "\n"); fflush(stderr); } va_e nd(args); } Void n s_ma in _earlyfatal(c onst char *format, ...) { va_list args; va_start(args, format); if (ns_g」ctx != NULL) { tybs_log_vwrite( ns_g」ctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, format, args); tybs_log_write( ns_g」ctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL, "exit ing (due to early fatal error)"); } else { fprin tf(stderr, "%s: ", program, name); vfprin tf(stderr, format, args); fprin tf(stderr, "\n"); fflush(stderr); } va_e nd(args); exit(1); } static void assert ion _failed(c onst char *file, in t li ne, tybs_assert ion type_t type, const char *cond)

著作权案例分析

案例一:“脸谱”引发著作权纠纷 中国艺术研究院赔偿4万 案情介绍: 《中国戏曲脸谱》一书使用了京剧脸谱绘画大师汪鑫福所绘的177幅京剧脸谱,汪鑫福的外孙季成将中国艺术研究院、九州出版社、北京世纪高教书店诉至法院。 汪鑫福自上世纪20年代起至90年代去世时陆 续创作了大量京剧脸谱,相当部分都收藏在艺术研究院陈列室中。上世纪50年代时,汪鑫福曾在艺术研究院前身戏曲改进局工作。2000年1月,经北京森淼圆文化传播有限公司组织联系,由艺术研究院提供图片及文字,九州出版社提供书号出版了中国戏曲脸谱》一书,该书中使用了汪鑫福绘制并收藏在陈列室中的177幅京剧脸谱,但没有为汪鑫福署名。 季成作为汪鑫福的外孙,自其母亲去世后即为“脸谱”的继承人。季成于2010年初发现《中国戏曲脸谱》一书,并于2010年8月从北京世纪高教书店购买到该书,故起诉要求 三被告停止侵权、向其赔礼道歉、赔偿经济损失53.1万元、精神损害抚慰金1万元及合理费用3万余元等。 法院审理 诉讼中,双方争议焦点主要集中在涉案脸谱的性质上,季成表示涉案脸谱为汪鑫福个人作品,而艺术研究院坚持认为涉案脸谱完成于上世纪50年代,为著作权归属于该研究院的职务作品。法院经审理认为,双方均认可汪鑫福一生绘制了大量京剧脸谱,而涉案脸谱没有专门标识或特征体现出绘制时间,故无证据证明涉案脸谱的时间完成时间。不排除部分涉案脸谱完成时我国尚未颁布实施著作权法,但汪鑫福去世以及《中国戏曲脸谱》一书出版时,我国已于1991年6月1日起施行著作权法,那么在使用他人作品时,就应当尊重法律规定的赋予著作权人的权利,除非有合法理由排除或限制著作权人权利。 我国著作权法规定了两类职务作品,一类是著作权由作者享有,但单位有权在其业务范围内优先使用,另一类是作者享有署名权,著作权的其他权利由单位享有。艺术研究院既表示涉案脸谱属于第二类职务作品,又表示著作权应当全部归属于艺术研究院。法院根据本案证据体现出的情况,认为汪鑫福所绘制的京剧脸谱不属于艺术研究院主张的主要利用了单位的物质技术条件创作,并由单位承担责任的第二类职务作品。况且,艺术研究院曾书面承认其享有涉案脸谱的所有权,汪鑫福的家属享有著作权。涉案脸谱属于美术作品,原件所有权的转移不视为作品著作权的转移。艺术研究院的矛盾解释混淆了作品原件所有权人与著 作权人所享有权利的区别,美术作品原件所有权人在享有作品原件所有权的同时,享有该作品著作权中的展览权,但不享有该作品的其他著作权,也不得损害著作权人所享有的其他著作权。 法院判决 艺术研究院未经季成许可亦未支付报酬,将涉案脸谱收录入《中国戏曲脸谱》中,九州出版社未尽到著作权审查义务出版《中国戏曲脸谱》一书的行为侵犯了季成因继承而取得的涉案脸谱的复制权等著作财产权。北京世纪书店销售的《中国戏曲脸谱》一书有合法来源,应当承担停止销售的责任。最后,北京海淀法院判决三被告停止侵权、中国艺术研究院和九州出版社赔偿季成经济损失35400元及合理费用1万元。宣判后,双方当事人均未明确表示是

计算机软件著作权转让合同范本标准版本

The Legal Relationship Established By Parties To Resolve Disputes Ultimately Realizes Common Interests. The Document Has Legal Effect After Reaching An Agreement Through Consultation. 编订:XXXXXXXX 20XX年XX月XX日 计算机软件著作权转让合同范本标准版本

计算机软件著作权转让合同范本标 准版本 温馨提示:本合同文件应用在当事人双方(或多方)为解决或预防纠纷而确立的法律关系,最终实现共同的利益,文书经过协商而达成一致后,签署的文件具有法律效力。文档下载完成后可以直接编辑,请根据自己的需求进行套用。 甲方:_______________ 乙方:_______________ 经甲乙双方协商一致,就 《_______________》之软件著作权转让事宜达 成本协议。 1.软件概况 软件的名称及版本号:_______________ 软件全称:_______________ 软件简称:_______________ 软件版本:_______________ 2.甲方的权利和责任

自签订本协议之日起,甲方不再拥有该软件的著作权; 甲方必须向乙方提供该软件的全部源代码及其他相关文档; 甲方有义务向乙方提供该软件相关的技术支持; 甲方不得以任何方式向第三方透露与该软件相关的技术细节。 3.乙方的权利和责任 自签订本协议之日起,乙方拥有该软件的著作权; 乙方有义务在该软件上投入人力和物力,不断完善、升级该产品。 4.共同条款 甲方同意将该软件的著作权的各项权利无

软件著作权申请源程序

**汽车商城管理系统源程序 using System; using System.Collections.Generic; using System.Text; namespace Qing.Model { ///

/// 购物车实体类 /// [Serializable] public partial class cart_keys { public cart_keys() { } #region Model private int _article_id; private int _quantity = 0; /// /// 文章ID /// public int article_id { set { _article_id = value; } get { return _article_id; } } /// /// 购买数量 /// public int quantity { set { _quantity = value; } get { return _quantity; } } #endregion } /// /// 购物车列表 /// [Serializable] public partial class cart_items { public cart_items(){ }

#region Model private int _article_id; private string _goods_no = string.Empty; private string _title = string.Empty; private string _spec_text = string.Empty; private string _img_url = string.Empty; private decimal _sell_price = 0M; private decimal _user_price = 0M; private int _quantity = 1; private int _stock_quantity = 0; ///

/// 文章ID /// public int id { set { _article_id = value; } get { return _article_id; } } /// /// 商品货号 /// public string goods_no { set { _goods_no = value; } get { return _goods_no; } } /// /// 商品名称 /// public string title { set { _title = value; } get { return _title; } } /// /// 商品地址 /// public string linkurl { get; set; } /// /// 商品规格 /// public string spec_text { set { _spec_text = value; }

软件著作权-代码

Option.java package https://www.doczj.com/doc/b66219196.html,mon; public class Option { private String name; private String id; private String description; private OptionGroup group; public Option(String id, String name, String description,OptionGroup group) { this.id = id; https://www.doczj.com/doc/b66219196.html, = name; this.description = description; this.group = group; } public String getName() { return name; } public String getId() { return id; } public String getDescription() { return description.replaceAll("\\t", "").trim(); } public OptionGroup getGroup(){ return this.group; } } OptionGroup.java package https://www.doczj.com/doc/b66219196.html,mon; import java.util.ArrayList; import java.util.List; import https://www.doczj.com/doc/b66219196.html,.uestc.ablator.ui.util.XmlParser; /** * 选项组 * @author Administrator * */ public class OptionGroup { private String id; private String name; private List

软件著作权转让合同模版

软件著作权转让合同 转让人(甲方):公司 法定代表人: 受让人(乙方):公司 法定代表人: 甲、乙双方本着平等自愿、真诚合作的原则,经双方友好协商,依据《中华人民共和国知识产权法》和《计算机软件保护条例》以及其他有关法律、法规的规定,就甲方向乙方转让软件著作权及源代码事宜达成如下协议,以期共同遵守。 第一条作品的名称 甲方将其拥有所有权的软件著作权(以下简称“本著作权”)及源代码之全部知识产权利转让给乙方。 第二条转让的权利种类、地域范围 1.甲方向乙方转让以下全部地域范围内的与本著作权相关的所有权利; 2.地域范围:。 第三条转让价金、交付转让价金的日期 1.乙方为此向甲方支付转让费用共计(大写)元人民币,(小写)元人民币。 2.付款进度 a.乙方于软件著作权交付日向甲方支付元; b.从合同签订之日起一个月内向甲方支付元; c.从合同签订之日起三个月内向甲方支付元。

第四条支付价金的方式 乙方按下述方式付款: a□现金支付; b□银行转帐; c□支票支付。 第五条甲方权利与义务 1.甲方应按本合同约定向乙方转让_______________软件产品、软件开发平台及全部的源代码等,并保证代码的完整性,可直接编译为应用程序正常使用。 2.自本合同签订之日起,甲方不得将本合同标的(即转让软件及源代码)转让或许可第三人使用;自乙方付款完毕之日起,乙方享有该转让软件及源代码的一切知识产权,甲方不得以任何形式使用、转让、传播该软件或源代码。 3.甲方向乙方提供《软件系统设计及使用说明书》及全部的相关文档。 4.甲方在合同签字后负责为乙方现场安装、调试系统开发平台,讲解各个功能的实现原理及方法,并当面解答乙方提出的全部问题。 5.甲方在本合同生效三个月内,负责为乙方解答开发过程中遇到的问题,并讲解开发思想及方法。 第六条乙方权利与义务 1.乙方负责支付本著作权及源代码的转让费人民币元(人民币大写:),并按本合同约定付款进度向甲方付款。 2.乙方有权对此软件或源代码做出任意修改,并有权自由处置该软件或源代码。 第七条违约责任 1.如任何一方违反本合同约定给对方造成损失,守约方均可以要求对方赔偿际损失金额。 2.如甲方侵害他人知识产权或违背现行各项法律或国家政策时,由甲方自行承担赔偿责任,与乙方无关;转让软件或源代码因此被有关机关扣留、没收,或禁止发行、使用的,甲方应赔偿乙方遭受的全部损失,并由甲方负责解决所有纠纷承担相关费用。

软件著作权源代码

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define NS_MAIN 1 #include #endif #ifdef DLZ #include #endif static 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; void ns_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); } Void ns_main_earlyfatal(const char *format, ...) { va_list args; va_start(args, format); if (ns_g_lctx != NULL) {

软件著作权通用代码范本

usingSystem; usingSystem.Collections; https://www.doczj.com/doc/b66219196.html,ponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Web; usingSystem.Web.SessionState; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.Web.UI.HtmlControls; usingSystem.Data.SqlClient; usingSystem.Configuration; namespaceOfficeOnline { ///

/// Advice 的摘要说明。 /// public class Advice :System.Web.UI.Page { protectedSystem.Web.UI.WebControls.ImageButton ImageButton1; protectedSystem.Web.UI.WebControls.DataGrid dgdadvice; protectedSystem.Web.UI.WebControls.ImageButton ImageButton2; private void Page_Load(objectsender, System.EventArgs e) { if (!IsPostBack) { //创建数据库连接和命令对象 SqlConnection objconn = new SqlConnection(ConfigurationSettings.AppSettings["connstr"]); objconn.Open(); stringobjsql="Select * from Advice"; SqlDataAdapter da = new SqlDataAdapter(objsql,objconn); //创建并填充DataSet DataSet ds = newDataSet(); da.Fill(ds); dgdadvice.DataSource=ds; dgdadvice.DataBind(); objconn.Close(); } } #region Web 窗体设计器生成的代码 override protected voidOnInit(EventArgs e) { //

计算机软件著作权转让合同范本(完整版)

计算机软件著作权转让合同范本 计算机软件著作权转让合同范本 乙方: ______________________ 经甲乙双方协商一致,就《______________________》之软件著作权转让事宜达成本协议。 1.软件概况 软件的名称及版本号: ______________________ 软件全称: ______________________ 软件简称: ______________________ 软件版本: ______________________ 2.甲方的权利和责任 自签订本协议之日起,甲方不再拥有该软件的著作权; 甲方必须向乙方提供该软件的全部源代码及其他相关文档; 甲方有义务向乙方提供该软件相关的技术支持; 甲方不得以任何方式向第三方透露与该软件相关的技术细节。 3.乙方的权利和责任 自签订本协议之日起,乙方拥有该软件的著作权;

乙方有义务在该软件上投入人力和物力,不断完善、升级该产品。 4.共同条款 甲方同意将该软件的著作权的各项权利无偿并且无地域限制地转让给乙方; 违反本协议第二条第3款、第4款之约定,甲方必须向乙方赔偿乙方在该软件上的所有投入,且乙方有权解除本协议; 违反本协议第三条第2款之约定,甲方有权解除本协议,并向乙方无偿索回该软件的著作权。 5.其他 本合同以甲乙双方全部签字之日为开始生效之日期; 未尽事宜,双方应协商解决。不愿协商或协商不成的,按司法程序解决。 本协议共壹页;壹式肆份,双方各执两份。 甲方: _________________ 代表人: _______________ 签订日期: _____________ 乙方: _________________ 代表人: _______________

软件著作权源程序代码