软件著作权源程序代码
计算机软件著作权登记,源代码是什么
计算机软件著作权登记,源代码是什么
依据我国著作权法的规定,著作权法保护的作品是⾮常多的,受保护的作品享有著作权,⽽计算机软件是属于受保护的作品之⼀,可以申请著作权登记,那么计算机软件著作权登记,源代码范本?下⾯由店铺⼩编为读者进⾏相关知识的解答。
计算机软件著作权登记,源代码是什么
依据计算机软件着作权登记办法的规定,计算机软件著作权登记的源代码是由⼀系列字符组成的,需要提供相应的页数。
相关法律规定
《计算机软件着作权登记办法》
第⼗条 软件的鉴别材料包括程序和⽂档的鉴别材料。
程序和⽂档的鉴别材料应当由源程序和任何⼀种⽂档前、后各连续30页组成。
整个程序和⽂档不到60页的,应当提交整个源程序和⽂档。
除特定情况外,程序每页不少于50⾏,⽂档每页不少于30⾏。
第⼗⼆条 申请软件着作权登记的,可以选择以下⽅式之⼀对鉴别材料作例外交存:
(⼀)源程序的前、后各连续的30页,其中的机密部分⽤⿊⾊宽斜线覆盖,但覆盖部分不得超过交存源程序的50%;
(⼆)源程序连续的前10页,加上源程序的任何部分的连续的50页;
(三)⽬标程序的前、后各连续的30页,加上源程序的任何部分的连续的20页。
⽂档作例外交存的,参照前款规定处理。
以上知识就是⼩编对“计算机软件著作权登记源代码的样本件”问题进⾏的解答,依据计算机软件着作权登记办法的规定,计算机软件著作权登记的源代码是由⼀系列字符组成的,需要提供相应的页数。
读者如果需要法律⽅⾯的帮助,欢迎到店铺进⾏法律咨询。
计算机软件著作权登记申请表需要填写的内容
计算机软件著作权登记申请表需要填写的内容软件全称、简称、版本号、开发完成日期、软件开发情况(独立开发、合作开发、委托开发、下达任务开发);原始取得权利情况、继受取得权利情况;权利范围、软件用途;技术特点;软件著作权拥有状态、申请者详细情况、软件鉴别材料交存方式、申请者签章。
计算机软件著作权的取得需要到相关的部门办理相关的登记手续。
在进行填写登记材料的时候,需要权利人填写一份计算机软件著作权登记申请表,下面,小编为您整理关于计算机软件著作权登记申请表需要填写的内容。
软件著作权登记申请表要填写的内容包括:1、软件全称、简称、版本号、开发完成日期、软件开发情况(独立开发、合作开发、委托开发、下达任务开发);2、原始取得权利情况、继受取得权利情况3、权利范围、软件用途4、技术特点(软件名称、用途、技术特点、开发的软硬件环境、编程语言及编程语言版本号、程序量、零售价格)5、软件著作权拥有状态、申请者详细情况、软件鉴别材料交存方式、申请者签章。
软件著作权登记的材料1、软件源程序代码(A4纸打印,单面,1份)前、后各连续30页,共60页。
(不足60页全部提交)第60页为模块结束页,每页不少于50行(结果页除外),在每页的左侧留出装订线,右上角打印或标注页号1-60。
2、软件用户手册、操作手册、设计说明书、使用说明书等任选一种前、后各连续30页,共60页。
(不足60页全部提交)第60页为文档结束页,每页不少于30行(结果页除外),在每页的左侧留出装订线,右上角打印或标注页号1-60。
(若希望多交文档,每多交一种文档需增加文档费),要图文并茂,软件的每个功能基本上都要涉及到。
3、身份证明A,著作权人为个人应提交身份证复印件一份,如有工作单位,可以要单位出具非职务软件开发证明,也可以个人出具非职务软件开发保证书。
(《非职务开发证明》《非职务开发保证书》在官网上可下载)B,著作权人为单位企业法人或事业法人的应提交有效的企业法人营业执照或事业单位法人证书副本复印件,并需加盖单位公章;社团法人单位提交民政部门出具的有效的社团法人证书的复印件;·其他组织提交工商管理机关或民政部门出具的证明文件复印件;4、委托办理文件A,授权委托书申请人委托代理人代为办理软件著作权登记申请的,应提交授权委托书。
软著申请材料
软著申请材料软件著作权是指对软件程序的著作权,是对软件程序的保护。
软件著作权的申请材料包括软件著作权申请表、软件著作权登记申请书、软件源代码等。
下面将详细介绍软著申请材料的准备和提交流程。
首先,软著申请材料的准备非常重要。
在准备软著申请材料时,首先需要准备软件著作权申请表。
软件著作权申请表是软著申请的重要文件,需要填写软件的基本信息、著作权人信息等内容。
其次,还需要准备软件著作权登记申请书。
软件著作权登记申请书是软著申请的正式文件,需要填写软件的名称、版本号、功能特点、技术特点等内容。
此外,还需要准备软件源代码。
软件源代码是软著申请的核心材料,是软件程序的原始代码,对于软著的申请非常重要。
其次,软著申请材料的提交流程也需要注意。
在提交软著申请材料时,首先需要将软件著作权申请表和软件著作权登记申请书填写完整,并加盖著作权单位公章。
其次,需要将软件源代码进行备案,并提交到相关部门进行审查。
审查通过后,将软件著作权申请表、软件著作权登记申请书和软件源代码一并提交到著作权局进行登记。
登记成功后,将获得软件著作权证书。
最后,软著申请材料的注意事项。
在准备和提交软著申请材料时,需要注意以下几点,首先,软件著作权申请表和软件著作权登记申请书需要填写准确无误,不能有任何遗漏和错误。
其次,软件源代码需要进行备案,确保其完整性和真实性。
最后,需要在规定的时间内完成软著申请材料的准备和提交,确保申请流程顺利进行。
总之,软著申请材料的准备和提交是软件著作权申请的重要环节,需要认真对待。
只有准备充分并按照规定提交,才能顺利获得软件著作权证书。
希望以上内容对您有所帮助,谢谢阅读!。
软件著作权通用代码范本
usingSystem;usingSystem.Collections;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{///<summary>/// Advice 的摘要说明。
///</summary>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); //创建并填充DataSetDataSet ds = newDataSet();da.Fill(ds);dgdadvice.DataSource=ds;dgdadvice.DataBind();objconn.Close();}}#region Web 窗体设计器生成的代码override protected voidOnInit(EventArgs e){//// CODEGEN: 该调用是 Web 窗体设计器所必需的。
申请软著python源代码文档
申请软著python源代码文档我国的软件知识产权保护制度逐渐完善,软件著作权作为软件知识产权的重要组成部分,对保护软件开发者的利益、推动软件产业发展、鼓励创新具有重要意义。
然而,随着互联网技术的飞速发展,网络环境下软件著作权的侵权现象屡禁不止,因此软件的著作权保护尤为重要。
Python作为一种高级程序设计语言,其广泛应用于各类软件开发中,对其源代码文档的著作权保护显得尤为重要。
本文将围绕申请软著Python源代码文档展开讨论,探讨在申请过程中应该注意的事项及具体流程。
一、Python源代码文档的保护对象Python源代码文档是指程序员通过Python语言编写的程序源代码及其相关文档。
Python源代码文档作为具有独创性和创作性的作品,符合软件著作权的基本要求,可以作为软件著作权的保护对象。
在申请软著Python源代码文档时,需要注意的是,该文档应当具有独立性和完整性,在构成上应当能够独立存在并发挥作用。
二、申请软著Python源代码文档的条件1. 独创性:Python源代码文档应当具有一定的独创性,即具有相对独立性和创作性。
在申请软著时,需要证明该文档具有一定的原创性,不属于他人已经拥有著作权的作品。
2. 完整性:Python源代码文档应当具有一定的完整性,即具有相对完整、独立的结构,并具备一定的功能。
3. 可复制性:Python源代码文档应当具有可复制性,即可以通过程序运行等方式进行复制、展示、传播或利用。
三、申请软著Python源代码文档的流程1. 准备材料:首先需要准备好软著申请表、Python源代码文档及其说明文档、作者唯一识别信息明等相关材料。
2. 登录软著申请系统:登录国家版权局软著申请系统,填写软著申请表,并上传Python源代码文档及其相关材料。
3. 审查与备案:国家版权局在接受软著申请后,将对申请材料进行审查,如果符合著作权法和软件著作权保护的相关规定,将予以受理并备案。
四、申请软著Python源代码文档的注意事项1. 注意文档的独立性和完整性:在申请软著Python源代码文档时,需要特别注意文档的独立性和完整性,确保其能够独立存在并发挥作用。
源程序比对并非计算机软件著作权侵权认定的唯一标准
源程序比对并非计算机软件著作权侵权认定的唯一标准计算机软件在现代社会中的应用越来越广泛,越来越多的人开始涉足软件开发行业。
但是,在软件开发中,可能会存在侵犯他人著作权的情况。
因此,当出现侵犯他人著作权的事情时,需要对源程序进行比对来认定是否存在侵权行为。
但是,源程序比对并非计算机软件著作权侵权认定的唯一标准,还需考虑其他因素。
一、源程序比对源程序比对是识别软件著作权侵权的一种常用方法,通过对比两个软件源程序的代码,判断是否存在相似或一致的部分,进而判断侵权行为。
源程序比对的主要内容包括代码结构和代码内容。
其中,代码结构主要包括程序框架、流程结构和函数调用等;代码内容主要包括变量定义、函数定义和算法设计等。
源程序比对的过程是一个复杂的工作,需要专业的知识和技能。
一般来说,源程序比对需要经历以下几个步骤:1、收集证据:将涉嫌侵权的软件和原始软件进行分别获取,并获得相关证明材料。
2、分析软件结构:对被告软件结构进行分析,包括代码结构和程序功能。
3、提取代码:使用专业工具从被告软件中提取代码。
4、对比代码:将两个软件的代码逐行对比,找出相似部分。
5、结合专家评估:结合专家的专业意见,对被告软件和原始软件的相似程度进行评估。
通过源程序比对,可以对软件著作权侵权进行初步判断。
但是,源程序比对并非是唯一的判定标准,还需要考虑其他因素。
二、其他因素的考虑除了源程序比对,还需要考虑以下因素:1、著作权登记:著作权登记是法律规定的,具有明确的法律效力。
如果软件著作权已经登记,就可以直接依据登记证书进行权利认定。
2、专家鉴定:专家鉴定可以对软件著作权进行全面的评估和判定,具有更加权威和科学的证据力。
3、市场影响:市场影响是软件著作权的一项重要指标,可以从软件销售额、市场占有率等多个方面去考虑。
4、版权声明:软件开发者需要在软件中明确声明版权信息,以便于对软件著作权进行判定。
这些因素都可以辅助源程序比对来评估软件著作权的侵权情况。
源代码版权怎么注册
源代码版权怎么注册
计算机软件是著作权法保护的作品之⼀,⽽计算机软件是由开发者开发的,开发者开发计算机软件时,需要编写很多的代码,⽽软件的源代码是⾮常重要的,那么源代码版权怎么注册?下⾯由店铺⼩编为读者进⾏相关知识的解答。
源代码版权怎么注册
计算机软件源代表是申请软件著作权登记需要提供的材料之⼀,源代码是不能单独登记著作权的,需要和其他材料共同申请登记。
《计算机软件著作权登记办法(2002)》
第九条 申请软件着作权登记的,应当向中国版权保护中⼼提交以下材料:
(⼀)按要求填写的软件着作权登记申请表;
(⼆)软件的鉴别材料;
(三)相关的证明⽂件。
《计算机软件著作权登记办法(2002)》
第⼗条 软件的鉴别材料包括程序和⽂档的鉴别材料。
程序和⽂档的鉴别材料应当由源程序和任何⼀种⽂档前、后各连续30页组成。
整个程序和⽂档不到60页的,应当提交整个源程序和⽂档。
除特定情况外,程序每页不少于50⾏,⽂档每页不少于30⾏。
第⼗⼀条 申请软件着作权登记的,应当提交以下主要证明⽂件:
(⼀)⾃然⼈、法⼈或者其他组织的⾝份证明;
(⼆)有着作权归属书⾯合同或者项⽬任务书的,应当提交合同或者项⽬任务书;
(三)经原软件着作权⼈许可,在原有软件上开发的软件,应当提交原着作权⼈的许可证明;
(四)权利继承⼈、受让⼈或者承受⼈,提交权利继承、受让或者承受的证明。
以上知识就是⼩编对“源代码版权怎么注册”问题进⾏的解答,计算机软件源代表是申请软件著作权登记需要提供的材料之⼀,源代码是不能单独登记著作权的,需要和其他材料共同申请登记。
读者如果需要法律⽅⾯的帮助,欢迎到店铺进⾏法律咨询。
计算机软件著作权的专业类别
计算机软件著作权的专业类别全文共四篇示例,供读者参考第一篇示例:随着计算机软件产业的不断发展壮大,计算机软件著作权也逐渐受到人们的重视和关注。
计算机软件著作权是指对计算机软件作品享有的法律保护权利,包括著作权拥有者享有的复制、发行、展示、表演、广播、信息网络传播等权利。
根据《著作权法》的相关规定,计算机软件作品属于文学作品的一种,因此计算机软件著作权也是在著作权法的保护范围之内。
针对计算机软件著作权的专业类别,它主要包括以下几个方面:一、操作系统软件:操作系统软件是计算机最基础的系统软件,它是计算机硬件与应用软件之间的桥梁。
操作系统软件不仅控制和管理计算机硬件资源,还提供用户与计算机系统之间的界面,使用户可以方便地与计算机进行交互操作。
常见的操作系统软件包括Windows、Mac OS、Linux等。
二、应用软件:应用软件是计算机用户进行各种工作、学习和娱乐活动所需的软件。
应用软件可以根据用户的需求和功能要求进行设计和开发,包括办公软件、图像处理软件、多媒体软件、游戏软件等。
常见的应用软件包括Microsoft Office套件、Adobe Photoshop、QQ等。
三、编程开发工具软件:编程开发工具软件是程序员用来编写、编辑、调试和测试计算机程序的软件工具。
编程开发工具软件提供了各种编程语言和工具,帮助程序员完成软件开发工作。
常见的编程开发工具软件包括Visual Studio、Eclipse、Xcode等。
四、数据库管理软件:数据库管理软件是用来存储和管理大量数据的软件系统。
数据库管理软件提供了各种数据库操作和管理功能,包括数据的增删改查、数据的备份和恢复、数据的安全控制等。
常见的数据库管理软件包括MySQL、Oracle、SQL Server等。
五、网络通信软件:网络通信软件是用来实现计算机之间网络通信和数据传输的软件系统。
网络通信软件包括各种网络协议和通信协议,帮助计算机之间进行数据交换和通信。
软件著作权源代码模板
软件全称+版本号 1 1
注意:请您在此模板中粘贴源代码,粘贴时选择“仅保留文字”套用模板正确格式,
2
并删除模板中所有文字!
3
4
5
6
7
8
9
✧源代码格式要求:
10
1.页眉处标明的“软件全称+版本号”,必须与阿里云系统所填写信息完全一致。
11
2.本模板自动生成右上角页码,请不要手动删除。
12
3.如果代码总量大于3000行:只需提供60页代码,前1-30页为前1500行代
13
码,后31-60页为后1500行代码,每页50行,最后1页必须为完整模块结尾。
14
4.如果代码总量小于3000行:需提供全部代码,每页50行,并核对信息填写时
15
的源程序量是否与实际代码量一致。
16
5.如源代码中有权属声明,需要与著作权人保持一致。
17
18
19
20
✧每页50行的文档调整方法(本文档模板已自动生成格式):
21
1.页边距调整为上2厘米,下1厘米,左2厘米,右2厘米。
22
23
24
25
26
27
28
2.段落行距调整为固定值15磅。
29
30
31
32
33
34
3.字体大小调整为宋体10号。
35
36
37
38
39
40
41
42
43
✧此文档需另存为PDF格式后再上传到阿里云系统,避免排版错乱。
44
45
46
47
48
49
50。
软著申请源代码格式要求
软著申请源代码格式要求
软件著作权申请中的源代码格式要求通常包括以下几个方面:
1. 格式规范,源代码应当符合一定的格式规范,以确保代码的可读性和可维护性。
通常情况下,代码应当缩进合理、命名规范统一、注释清晰等。
2. 版本标识,在软件著作权申请中,需要提供源代码的版本标识,包括版本号、更新日期等信息,以便于对不同版本的代码进行比较和分析。
3. 完整性,申请软件著作权时,需要提交完整的源代码,确保所有相关的代码文件和依赖文件都包含在内,以便于对软件的功能和实现进行全面的评估。
4. 注释说明,源代码中应当包含详细的注释,对关键算法、功能模块、重要变量等进行说明,以便于他人阅读和理解代码的逻辑和设计思路。
5. 语言要求,根据软件开发的实际情况,源代码可以使用不同
的编程语言编写,但需要在申请中明确说明所使用的编程语言和相应的版本。
总的来说,软件著作权申请中的源代码格式要求主要是为了确保提交的代码能够清晰地展现软件的功能和实现逻辑,以便于著作权部门对软件进行评估和审查。
因此,在准备软件著作权申请时,需要仔细遵守相关的格式要求,并确保提交的源代码符合规定,以提高申请成功的几率。
著作权法中的软件著作权与开源软件
著作权法中的软件著作权与开源软件著作权是保护知识产权的一种法律形式,其中著作权法对软件著作权做出了明确的规定。
软件著作权作为其中一个重要的分类,涉及到软件的创作、发布和使用等方面。
而开源软件作为互联网时代的产物,对软件著作权的保护和利用方式提出了新的挑战。
本文将探讨著作权法中的软件著作权与开源软件之间的关系。
I. 软件著作权的定义和保护范围软件著作权是指对计算机软件进行保护的专有权利,计算机软件的具体表现形式包括源代码、目标代码和其他以数字形式表达的程序。
根据著作权法规定,软件著作权的保护范围涵盖软件的整体结构、程序代码以及部分或全部的用户界面。
著作权人对软件著作权享有复制、发行、展示、表演、放映、广播、信息网络传播等权利。
II. 开源软件的概念和特点开源软件指的是在遵守开源许可证的前提下,允许用户对软件进行查看、修改和发布的软件。
相较于闭源软件,开源软件具有以下几个特点:1. 公开透明:开源软件的源代码是公开的,任何人都可以查看和修改。
2. 自由使用:用户可以自由使用开源软件,并可据此进行商业活动。
3. 社区参与:开源软件的开发和维护通常由开发者社区共同参与,形成协作开发的模式。
4. 开放许可:开源软件使用开源许可证给予用户使用权利,并规定了用户在遵守一定条件下的权责。
III. 著作权法对开源软件的影响著作权法对开源软件和软件著作权的关系不仅体现在对软件著作权的保护上,还体现在对开源软件许可证认可程度上。
1. 软件著作权保护:开源软件在著作权法中依然享有相同的著作权保护,其源代码、程序逻辑等仍然受到法律保护。
2. 开源软件许可证:根据著作权法规定,开源软件的许可证是开源社区对软件著作权的自主选择和管理方式。
不同的开源许可证规定了不同的用户权利和义务,如GPL、BSD和MIT等开源许可证。
这些许可证在尊重著作权的前提下,为用户提供开放的使用和修改权利。
IV. 著作权法对开源软件的倡导著作权法对开源软件的发展起到了积极的推动作用,它强调了著作权人对软件著作权的自主选择和保护。
软件登记源程序源代码参考样本
if (gridView[j, i].ValueType == typeof(string)) {
excel.Cells[i + 2, j + 1] = "'" + gridView[j, i].Value.ToString(); } else {
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion
}
}
usingБайду номын сангаасSystem;
using System.Collections.Generic;
cmd.ExecuteNonQuery();
this.Close();
return 1;
}
public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, prams);
{
return data.RunProc("insert into tb_units (units,linkman,address,tel,memo) values
}
public int UpdateUnits(string units, string linkman, string address, string tel, string
软件著作权-源代码范本
软件著作权-源代码范本注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。
提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软件名字等,不能出现开源代码,不能出现任何版权纠纷。
格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。
二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页眉右上应标注页码,源代码每页不少于50行。
范例如下:#include <tybs/commandline.h>#include <tybs/dir.h>#include <tybs/entropy.h>#include <tybs/file.h>#include <tybs/hash.h>#include <tybs/os.h>#include <tybs/platform.h>#include <tybs/resource.h>#include <tybs/stdio.h>#include <tybs/string.h>#include <tybs/task.h>#include <tybs/timer.h>#include <tybs/util.h>#include <tybscc/result.h>#include <dns/dispatch.h>#include <dns/name.h>#include <dns/result.h>#include <dns/view.h>#include <dst/result.h>#define NS_MAIN 1#include <named/ns_smf_globals.h>#endif#ifdef DLZ#include <dlz/dlz_drivers.h>#endifstatic tybs_boolean_t want_stats = TYBS_FALSE;static char program_name[TYBS_DIR_NAMEMAX] = "named"; static char absolute_conffile[TYBS_DIR_PATHMAX];static char saved_command_line[512];static char version[512];static unsigned int maxsocks = 0;voidns_main_earlywarning(const char *format, ...) {va_list args;va_start(args, format);if (ns_g_lctx != NULL) {tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_W ARNING,format, args);} else {fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}va_end(args);}Void ns_main_earlyfatal(const char *format, ...) {va_list args;if (ns_g_lctx != NULL) {tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,format, args);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"exiting (due to early fatal error)");} else {fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}va_end(args);exit(1);}static voidassertion_failed(const char *file, int line, tybs_assertiontype_t type,const char *cond){if (ns_g_lctx != NULL) {tybs_assertion_setcallback(NULL);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"%s:%d: %s(%s) failed", file, line,tybs_assertion_typetotext(type), cond);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"exiting (due to assertion failure)");} else {fprintf(stderr, "%s:%d: %s(%s) failed\n",file, line, tybs_assertion_typetotext(type), cond);fflush(stderr);}if (ns_g_coreok)abort();exit(1);}static voidlibrary_fatal_error(const char *file, int line, const char *format,va_list args) TYBS_FORMAT_PRINTF(3, 0);static voidlibrary_fatal_error(const char *file, int line, const char *format,va_list args){if (ns_g_lctx != NULL) {tybs_error_setfatal(NULL);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,format, args);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"exiting (due to fatal error in library)");} else {fprintf(stderr, "%s:%d: fatal error: ", file, line);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}if (ns_g_coreok)abort();exit(1);}static voidlibrary_unexpected_error(const char *file, int line, const char *format,va_list args) TYBS_FORMAT_PRINTF(3, 0);static voidlibrary_unexpected_error(const char *file, int line, const char *format,va_list args){if (ns_g_lctx != NULL) {tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_ERROR,"%s:%d: unexpected error:", file, line);tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_ERROR,format, args);} else {fprintf(stderr, "%s:%d: fatal error: ", file, line);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}}static voidlwresd_usage(void) {fprintf(stderr,"usage: lwresd [-4|-6] [-c conffile | -C resolvconffile] ""[-d debuglevel]\n"" [-f|-g] [-n number_of_cpus] [-p port] ""[-P listen-port] [-s]\n"" [-t chrootdir] [-u username] [-i pidfile]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidusage(void) {lwresd_usage();return;}fprintf(stderr,"usage: named [-4|-6] [-c conffile] [-d debuglevel] ""[-f|-g] [-n number_of_cpus]\n"" [-p port] [-s] [-t chrootdir] [-u username]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidsave_command_line(int argc, char *argv[]) {int i;char *src;char *dst;char *eob;const char truncated[] = "...";tybs_boolean_t quoted = TYBS_FALSE;dst = saved_command_line;eob = saved_command_line + sizeof(saved_command_line);for (i = 1; i < argc && dst < eob; i++) {*dst++ = ' ';src = argv[i];while (*src != '\0' && dst < eob) {if (quoted || isalnum(*src & 0xff) ||*src == '-' || *src == '_' ||*src == '.' || *src == '/') {*dst++ = *src++;quoted = TYBS_FALSE;} else {*dst++ = '\\';quoted = TYBS_TRUE;}}}INSIST(sizeof(saved_command_line) >= sizeof(truncated));if (dst == eob)strcpy(eob - sizeof(truncated), truncated);else*dst = '\0';}static intparse_int(char *arg, const char *desc) {char *endp;int tmp;long int ltmp;ltmp = strtol(arg, &endp, 10);tmp = (int) ltmp;if (*endp != '\0')ns_main_earlyfatal("%s '%s' must be numeric", desc, arg);ns_main_earlyfatal("%s '%s' out of range", desc, arg);return (tmp);}static struct flag_def {const char *name;unsigned int value;} mem_debug_flags[] = {{ "trace", TYBS_MEM_DEBUGTRACE },{ "record", TYBS_MEM_DEBUGRECORD },{ "usage", TYBS_MEM_DEBUGUSAGE },{ "size", TYBS_MEM_DEBUGSIZE },{ "mctx", TYBS_MEM_DEBUGCTX },{ NULL, 0 }};static voidset_flags(const char *arg, struct flag_def *defs, unsigned int *ret) { for (;;) {const struct flag_def *def;const char *end = strchr(arg, ',');int arglen;if (end == NULL)end = arg + strlen(arg);arglen = end - arg;for (def = defs; def->name != NULL; def++) {if (arglen == (int)strlen(def->name) &&memcmp(arg, def->name, arglen) == 0) {*ret |= def->value;goto found;}}ns_main_earlyfatal("unrecognized flag '%.*s'", arglen, arg);found:if (*end == '\0')break;arg = end + 1;}}static voidparse_command_line(int argc, char *argv[]) {int ch;int port;tybs_boolean_t disable6 = TYBS_FALSE;tybs_boolean_t disable4 = TYBS_FALSE;save_command_line(argc, argv);tybs_commandline_errprint = TYBS_FALSE;while ((ch = tybs_commandline_parse(argc, argv,"46c:C:d:fgi:lm:n:N:p:P:""sS:t:T:u:vVx:")) != -1) {switch (ch) {if (disable4)ns_main_earlyfatal("cannot specify -4 and -6");if (tybs_net_probeipv4() != TYBS_R_SUCCESS)ns_main_earlyfatal("IPv4 not supported by OS");tybs_net_disableipv6();disable6 = TYBS_TRUE;break;case '6':if (disable6)ns_main_earlyfatal("cannot specify -4 and -6");if (tybs_net_probeipv6() != TYBS_R_SUCCESS)ns_main_earlyfatal("IPv6 not supported by OS");tybs_net_disableipv4();disable4 = TYBS_TRUE;break;case 'c':ns_g_conffile = tybs_commandline_argument;lwresd_g_conffile = tybs_commandline_argument;if (lwresd_g_useresolvconf)ns_main_earlyfatal("cannot specify -c and -C");ns_g_conffileset = TYBS_TRUE;break;case 'C':lwresd_g_resolvconffile = tybs_commandline_argument;if (ns_g_conffileset)ns_main_earlyfatal("cannot specify -c and -C");lwresd_g_useresolvconf = TYBS_TRUE;break;case 'd':ns_g_debuglevel = parse_int(tybs_commandline_argument,"debug level");break;case 'f':ns_g_foreground = TYBS_TRUE;break;case 'g':ns_g_foreground = TYBS_TRUE;ns_g_logstderr = TYBS_TRUE;break;/* XXXBEW -i should be removed */case 'i':lwresd_g_defaultpidfile = tybs_commandline_argument;break;case 'l':ns_g_lwresdonly = TYBS_TRUE;break;case 'm':set_flags(tybs_commandline_argument, mem_debug_flags, &tybs_mem_debugging);case 'N': /* Deprecated. */case 'n':ns_g_cpus = parse_int(tybs_commandline_argument,"number of cpus");if (ns_g_cpus == 0)ns_g_cpus = 1;break;case 'p':port = parse_int(tybs_commandline_argument, "port");if (port < 1 || port > 65535)ns_main_earlyfatal("port '%s' out of range",tybs_commandline_argument);ns_g_port = port;break;/* XXXBEW Should -P be removed? */case 'P':port = parse_int(tybs_commandline_argument, "port");if (port < 1 || port > 65535)ns_main_earlyfatal("port '%s' out of range",tybs_commandline_argument);lwresd_g_listenport = port;break;case 's':want_stats = TYBS_TRUE;break;case 'S':maxsocks = parse_int(tybs_commandline_argument,"max number of sockets");break;case 't':ns_g_chrootdir = tybs_commandline_argument;break;case 'T':if (strcmp(tybs_commandline_argument, "clienttest") == 0) ns_g_clienttest = TYBS_TRUE;elsefprintf(stderr, "unknown -T flag '%s\n",tybs_commandline_argument);break;case 'u':ns_g_username = tybs_commandline_argument;break;case 'v':printf("BIND %s\n", ns_g_version);exit(0);case 'V':printf("BIND %s built with %s\n", ns_g_version,ns_g_configargs);exit(0);usage();if (tybs_commandline_option == '?')exit(0);ns_main_earlyfatal("unknown option '-%c'",tybs_commandline_option);default:ns_main_earlyfatal("parsing options returned %d", ch);}}argc -= tybs_commandline_index;argv += tybs_commandline_index;if (argc > 0) {usage();ns_main_earlyfatal("extra command line arguments");}}static tybs_result_tcreate_managers(void) {tybs_result_t result;unsigned int socks;#ifdef TYBS_PLATFORM_USETHREADSunsigned int cpus_detected;#endif#ifdef TYBS_PLATFORM_USETHREADScpus_detected = tybs_os_ncpus();if (ns_g_cpus == 0)ns_g_cpus = cpus_detected;tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, TYBS_LOG_INFO, "found %u CPU%s, using %u worker thread%s",cpus_detected, cpus_detected == 1 ? "" : "s",ns_g_cpus, ns_g_cpus == 1 ? "" : "s");#elsens_g_cpus = 1;#endifresult = tybs_taskmgr_create(ns_g_mctx, ns_g_cpus, 0, &ns_g_taskmgr);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_taskmgr_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_timermgr_create(ns_g_mctx, &ns_g_timermgr);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_timermgr_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_socketmgr_create2(ns_g_mctx, &ns_g_socketmgr, maxsocks);UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_socketmgr_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_socketmgr_getmaxsockets(ns_g_socketmgr, &socks);if (result == TYBS_R_SUCCESS) {tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_SERVER,TYBS_LOG_INFO, "using up to %u sockets", socks);}result = tybs_entropy_create(ns_g_mctx, &ns_g_entropy);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_entropy_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_hash_create(ns_g_mctx, ns_g_entropy, DNS_NAME_MAXWIRE);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_hash_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}return (TYBS_R_SUCCESS);}static voiddestroy_managers(void) {ns_lwresd_shutdown();tybs_entropy_detach(&ns_g_entropy);if (ns_g_fallbackentropy != NULL)tybs_entropy_detach(&ns_g_fallbackentropy);tybs_taskmgr_destroy(&ns_g_taskmgr);tybs_timermgr_destroy(&ns_g_timermgr);tybs_socketmgr_destroy(&ns_g_socketmgr);tybs_hash_destroy();}static voidsetup(void) {tybs_result_t result;#ifdef HA VE_LIBSCFchar *instance = NULL;#endifns_os_inituserinfo(ns_g_username);ns_os_tzset();ns_os_opendevnull();#ifdef HA VE_LIBSCFresult = ns_smf_get_instance(&instance, 0, ns_g_mctx);ns_smf_got_instance = 1;elsens_smf_got_instance = 0;if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);#endif /* HA VE_LIBSCF */#ifdef PA TH_RANDOMDEVif (ns_g_chrootdir != NULL) {result = tybs_entropy_create(ns_g_mctx, &ns_g_fallbackentropy);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_entropy_create() failed: %s",tybs_result_totext(result));result = tybs_entropy_createfilesource(ns_g_fallbackentropy,PA TH_RANDOMDEV);if (result != TYBS_R_SUCCESS) {ns_main_earlywarning("could not open pre-chroot ""entropy source %s: %s",PA TH_RANDOMDEV,tybs_result_totext(result));tybs_entropy_detach(&ns_g_fallbackentropy);}}#endifns_os_chroot(ns_g_chrootdir);ns_os_minprivs();result = ns_log_init(TYBS_TF(ns_g_username != NULL));if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("ns_log_init() failed: %s",tybs_result_totext(result));if (!ns_g_foreground)ns_os_daemonize();result = tybs_app_start();if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_app_start() failed: %s",tybs_result_totext(result));tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "starting BIND %s%s", ns_g_version,saved_command_line);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "built with %s", ns_g_configargs);(void)tybs_resource_getlimit(tybs_resource_stacksize,&ns_g_initstacksize);(void)tybs_resource_getlimit(tybs_resource_datasize,&ns_g_initdatasize);(void)tybs_resource_getlimit(tybs_resource_coresize,&ns_g_initcoresize);(void)tybs_resource_getlimit(tybs_resource_openfiles,&ns_g_initopenfiles);if (! tybs_file_isabsolute(ns_g_conffile)) {absolute_conffile,sizeof(absolute_conffile));if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("could not construct absolute path of ""configuration file: %s",tybs_result_totext(result));ns_g_conffile = absolute_conffile;}result = tybs_time_now(&ns_g_boottime);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_time_now() failed: %s",tybs_result_totext(result));result = create_managers();if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("create_managers() failed: %s",tybs_result_totext(result));ns_builtin_init();#ifdef DLZresult = dlz_drivers_init();if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("dlz_drivers_init() failed: %s",tybs_result_totext(result));#endifns_server_create(ns_g_mctx, &ns_g_server);}static voidcleanup(void) {destroy_managers();ns_server_destroy(&ns_g_server);ns_builtin_deinit();#ifdef DLZdlz_drivers_clear();#endifdns_name_destroy();tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "exiting");ns_log_shutdown();}static char *memstats = NULL;voidns_main_setmemstats(const char *filename) {if (memstats != NULL) {free(memstats);memstats = NULL;}if (filename == NULL)return;memstats = malloc(strlen(filename) + 1);if (memstats)}#ifdef HA VE_LIBSCFtybs_result_tns_smf_get_instance(char **ins_name, int debug, tybs_mem_t *mctx) { scf_handle_t *h = NULL;int namelen;char *instance;REQUIRE(ins_name != NULL && *ins_name == NULL);if ((h = scf_handle_create(SCF_VERSION)) == NULL) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_handle_create() failed: %s",scf_strerror(scf_error()));return (TYBS_R_FAILURE);}if (scf_handle_bind(h) == -1) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_handle_bind() failed: %s",scf_strerror(scf_error()));scf_handle_destroy(h);return (TYBS_R_FAILURE);}if ((namelen = scf_myname(h, NULL, 0)) == -1) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_myname() failed: %s",scf_strerror(scf_error()));scf_handle_destroy(h);return (TYBS_R_FAILURE);}if ((instance = tybs_mem_allocate(mctx, namelen + 1)) == NULL) { UNEXPECTED_ERROR(__FILE__, __LINE__,"ns_smf_get_instance memory ""allocation failed: %s",tybs_result_totext(TYBS_R_NOMEMORY));scf_handle_destroy(h);return (TYBS_R_FAILURE);}if (scf_myname(h, instance, namelen + 1) == -1) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_myname() failed: %s",scf_strerror(scf_error()));scf_handle_destroy(h);tybs_mem_free(mctx, instance);return (TYBS_R_FAILURE);}scf_handle_destroy(h);return (TYBS_R_SUCCESS);}#endifintmain(int argc, char *argv[]) {tybs_result_t result;#ifdef HA VE_LIBSCFchar *instance = NULL;#endifstrlcat(version,#ifdef __DATE__"named version: BIND " VERSION " (" __DA TE__ ")",#else"named version: BIND " VERSION,#endifsizeof(version));result = tybs_file_progname(*argv, program_name, sizeof(program_name));if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("program name too long");if (strcmp(program_name, "lwresd") == 0)ns_g_lwresdonly = TYBS_TRUE;tybs_assertion_setcallback(assertion_failed);tybs_error_setfatal(library_fatal_error);tybs_error_setunexpected(library_unexpected_error);ns_os_init(program_name);dns_result_register();dst_result_register();tybscc_result_register();parse_command_line(argc, argv);if (ns_g_chrootdir != NULL) {int len = strlen(ns_g_chrootdir);if (strncmp(ns_g_chrootdir, ns_g_conffile, len) == 0 &&(ns_g_conffile[len] == '/' || ns_g_conffile[len] == '\\'))ns_main_earlywarning("config filename (-c %s) contains ""chroot path (-t %s)",ns_g_conffile, ns_g_chrootdir);}result = tybs_mem_create(0, 0, &ns_g_mctx);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_mem_create() failed: %s",tybs_result_totext(result));tybs_mem_setname(ns_g_mctx, "main", NULL);setup();do {result = tybs_app_run();if (result == TYBS_R_RELOAD) {ns_server_reloadwanted(ns_g_server);} else if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,tybs_result_totext(result));result = TYBS_R_SUCCESS;}} while (result != TYBS_R_SUCCESS);#ifdef HA VE_LIBSCFif (ns_smf_want_disable == 1) {result = ns_smf_get_instance(&instance, 1, ns_g_mctx);if (result == TYBS_R_SUCCESS && instance != NULL) { if (smf_disable_instance(instance, 0) != 0)UNEXPECTED_ERROR(__FILE__, __LINE__,"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 <stdio.h>#include <fcntl.h>#ifdef PHP_WIN32#include "win32/time.h"#include "win32/signal.h"#include "win32/php_win32_globals.h"#elif defined(NETW ARE)#include <sys/timeval.h>#ifdef USE_WINSOCK#include <novsock2.h>#endif#endif#if HA VE_SYS_TIME_H#include <sys/time.h>#endif#if HA VE_UNISTD_H#include <unistd.h>#endif#if HA VE_SIGNAL_H#include <signal.h>#endif#if HA VE_SETLOCALE#include <locale.h>#endif#include "zend.h"#include "zend_extensions.h"#include "php_ini.h"#include "php_globals.h"#include "php_main.h"#include "fopen_wrappers.h"#include "ext/standard/php_standard.h" #include "php_variables.h"#include "ext/standard/credits.h"#ifdef PHP_WIN32#include <io.h>#include "win32/php_registry.h"#include "ext/standard/flock_compat.h" #endif#include "php_syslog.h"#include "Zend/zend_exceptions.h"#if PHP_SIGCHILD#include <sys/types.h>#include <sys/wait.h>#endif#include "zend_compile.h"#include "zend_execute.h"#include "zend_highlight.h"#include "zend_indent.h"#include "zend_extensions.h"#include "zend_ini.h"#include "php_content_types.h"#include "php_ticks.h"#include "php_logos.h"#include "php_streams.h"#include "php_open_temporary_file.h"#include "rfc1867.h"/* }}} */#ifndef ZTSphp_core_globals core_globals;#elsePHPAPI int core_globals_id;#endif#define SAFE_FILENAME(f) ((f)?(f):"-")/* {{{ PHP_INI_MH*/static PHP_INI_MH(OnSetPrecision){int i = atoi(new_value);if (i >= 0) {EG(precision) = i;return SUCCESS;} else {return FAILURE;}}static PHP_INI_MH(OnChangeMemoryLimit){if (new_value) {PG(memory_limit) = zend_atoi(new_value, new_value_length);} else {PG(memory_limit) = 1<<30; /* effectively, no limit */ }return zend_set_memory_limit(PG(memory_limit));}static void php_disable_functions(TSRMLS_D){char *s = NULL, *e;if (!*(INI_STR("disable_functions"))) {return;}e = PG(disable_functions) = strdup(INI_STR("disable_functions"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_function(s, e-s TSRMLS_CC);s = NULL;}break;default:if (!s) {s = e;break;}e++;}if (s) {zend_disable_function(s, e-s TSRMLS_CC);}}static void php_disable_classes(TSRMLS_D){char *s = NULL, *e;if (!*(INI_STR("disable_classes"))) {return;}e = PG(disable_classes) = strdup(INI_STR("disable_classes"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_class(s, e-s TSRMLS_CC);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_, "cli") || !strcmp(sapi_, "cgi"));switch (mode) {case PHP_DISPLAY_ERRORS_STDERR:if (cgi_or_cli ) {PUTS("STDERR");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;}#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。
办理软件著作权的资料都有哪些
Promises can gain friendship, but it is still action that cultivates and maintains friendship.通用参考模板(页眉可删)办理软件著作权的资料都有哪些导读:1、软件源程序代码(A4纸打印,单面,1份)。
2、软件用户手册、操作手册、设计说明书、使用说明书等任选一种。
3、身份证明。
4、委托办理文件。
5、其他文件。
若申请者存在以下情况,需提交以下文件:(1)合作开发——合作开发合同书或合作开发协议书1份A4纸。
(2)委托开发——委托开发协议书1份A4纸。
(3)下达任务开发——任务书1份A4纸。
一、办理软件著作权的资料都有哪些1、软件源程序代码(A4纸打印,单面,1份)前、后各连续30页,共60页。
(不足60页全部提交)第60页为模块结束页,每页不少于50行(结果页除外),在每页的左侧留出装订线,右上角打印或标注页号1—60。
2、软件用户手册、操作手册、设计说明书、使用说明书等任选一种前、后各连续30页,共60页。
(不足60页全部提交)第60页为文档结束页,每页不少于30行(结果页除外),在每页的左侧留出装订线,右上角打印或标注页号1—60。
(若希望多交文档,每多交一种文档需增加文档费),要图文并茂,软件的每个功能基本上都要涉及到。
3、身份证明A著作权人为个人应提交身份证复印件一份,如有工作单位,可以要单位出具非职务软件开发证明,也可以个人出具非职务软件开发保证书。
(《非职务开发证明》《非职务开发保证书》在官网上可下载) B著作权人为单位企业法人或事业法人的应提交有效的企业法人营业执照或事业单位法人证书副本复印件,并需加盖单位公章;社团法人单位提交民政部门出具的有效的社团法人证书的复印件; 其他组织提交工商管理机关或民政部门出具的证明文件复印件;4、委托办理文件A、授权委托书申请人委托代理人代为办理软件著作权登记申请的,应提交授权委托书。
软件著作权申报中60页标准代码文档的写作经验谈
软件著作权申报中60页标准代码文档的写作经验谈在申报著作权的工作中,都要提供软件的60页源代码。
这是一种特殊要求的东西,它要求每页50行程序,并要求前30页是程序的前半部分有开头并连续,后30页是程序的后半部分包括结尾也要连续,30和31页之间可以不连续。
这个文档的格式,一般要求有页眉上标记申报的软件名称,天津还要有行标,页眉的右边有,第某页,共60页字样。
这样的要求通常负责技术的开发人员,是没有时间和精力做好后,提供给申报人员的,这就需要负责申报的人员,根据技术开发人员提供的源代码进行编辑,使之符合申报的要求。
对此,我曾经反复按照这个要求去处理技术人员传来的代码,一开始确实破费周折,处理的多了也慢慢总结出一些经验来,在这里与系统内负责申报的同仁分享。
一、程序的选择要选择超过3000行的源代码,这样才能裁剪出,符合要求的代码,同时,最好选取核心程序的代码,这样“using”等语句会对应主数据库或主要的模块。
程序要有比较鲜明的开始段落和结尾的段落,还注意去掉一些注释性的内容,如下面这样的部分。
#region 统计导出XLS模板/******************************************************************* 城信所国土房产政务平台 Copyright (c) 2011-2015 DCI.GT Inc.* ALL RIGHTS RESERVED* 功能描述:统计导出XLS模板* 作者:* 创建日期:2011-11-28* 版本:* 更新说明:* **************************************************************/#endregion二、字体格式字体选择按照下图。
方法是把所有的代码复制到一个word文档,全选后到上面的字体,因为,程序格式不一定前后一致,这一步是很重要的基础。
段落选择按照下图。
软件著作权-源代码例范本
软件著作权-源代码范本注意事项:常见的源代码包含:C语言,VB,C++,JAVA,.NET等。
提交的代码必须是源代码的开头载入程序,第30页必须断开,第60页是软件的程序结尾,代码中不得出现与申请表内容不符合的日期,著作权人,软件名字等,不能出现开源代码,不能出现任何版权纠纷。
格式要求:一、源代码应提交前、后各连续30页,不足60页的,应当全部提交。
二、源代码页眉应标注软件的名称和版本号,应当与申请表中名称完全一致,页眉右上应标注页码,源代码每页不少于50行。
范例如下:#include <tybs/commandline.h>#include <tybs/dir.h>#include <tybs/entropy.h>#include <tybs/file.h>#include <tybs/hash.h>#include <tybs/os.h>#include <tybs/platform.h>#include <tybs/resource.h>#include <tybs/stdio.h>#include <tybs/string.h>#include <tybs/task.h>#include <tybs/timer.h>#include <tybs/util.h>#include <tybscc/result.h>#include <dns/dispatch.h>#include <dns/name.h>#include <dns/result.h>#include <dns/view.h>#include <dst/result.h>#define NS_MAIN 1#include <named/ns_smf_globals.h>#endif#ifdef DLZ#include <dlz/dlz_drivers.h>#endifstatic tybs_boolean_t want_stats = TYBS_FALSE;static char program_name[TYBS_DIR_NAMEMAX] = "named"; static char absolute_conffile[TYBS_DIR_PATHMAX];static char saved_command_line[512];static char version[512];static unsigned int maxsocks = 0;voidns_main_earlywarning(const char *format, ...) {va_list args;va_start(args, format);if (ns_g_lctx != NULL) {tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_WARNING,format, args);} else {fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}va_end(args);}Void ns_main_earlyfatal(const char *format, ...) { va_list args;if (ns_g_lctx != NULL) {tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,format, args);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"exiting (due to early fatal error)");} else {fprintf(stderr, "%s: ", program_name);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}va_end(args);exit(1);}static voidassertion_failed(const char *file, int line, tybs_assertiontype_t type, const char *cond){if (ns_g_lctx != NULL) {tybs_assertion_setcallback(NULL);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"%s:%d: %s(%s) failed", file, line,tybs_assertion_typetotext(type), cond);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"exiting (due to assertion failure)");} else {fprintf(stderr, "%s:%d: %s(%s) failed\n",file, line, tybs_assertion_typetotext(type), cond);fflush(stderr);}if (ns_g_coreok)abort();exit(1);}static voidlibrary_fatal_error(const char *file, int line, const char *format, va_list args) TYBS_FORMAT_PRINTF(3, 0);static voidlibrary_fatal_error(const char *file, int line, const char *format, va_list args){if (ns_g_lctx != NULL) {tybs_error_setfatal(NULL);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,format, args);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_CRITICAL,"exiting (due to fatal error in library)");} else {fprintf(stderr, "%s:%d: fatal error: ", file, line);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}if (ns_g_coreok)abort();exit(1);}static voidlibrary_unexpected_error(const char *file, int line, const char *format, va_list args) TYBS_FORMAT_PRINTF(3, 0);static voidlibrary_unexpected_error(const char *file, int line, const char *format, va_list args){if (ns_g_lctx != NULL) {tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_ERROR,"%s:%d: unexpected error:", file, line);tybs_log_vwrite(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_MAIN, TYBS_LOG_ERROR,format, args);} else {fprintf(stderr, "%s:%d: fatal error: ", file, line);vfprintf(stderr, format, args);fprintf(stderr, "\n");fflush(stderr);}}static voidlwresd_usage(void) {fprintf(stderr,"usage: lwresd [-4|-6] [-c conffile | -C resolvconffile] ""[-d debuglevel]\n"" [-f|-g] [-n number_of_cpus] [-p port] ""[-P listen-port] [-s]\n"" [-t chrootdir] [-u username] [-i pidfile]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidusage(void) {lwresd_usage();return;}fprintf(stderr,"usage: named [-4|-6] [-c conffile] [-d debuglevel] ""[-f|-g] [-n number_of_cpus]\n"" [-p port] [-s] [-t chrootdir] [-u username]\n"" [-m {usage|trace|record|size|mctx}]\n");}static voidsave_command_line(int argc, char *argv[]) {int i;char *src;char *dst;char *eob;const char truncated[] = "...";tybs_boolean_t quoted = TYBS_FALSE;dst = saved_command_line;eob = saved_command_line + sizeof(saved_command_line);for (i = 1; i < argc && dst < eob; i++) {*dst++ = ' ';src = argv[i];while (*src != '\0' && dst < eob) {if (quoted || isalnum(*src & 0xff) ||*src == '-' || *src == '_' ||*src == '.' || *src == '/') {*dst++ = *src++;quoted = TYBS_FALSE;} else {*dst++ = '\\';quoted = TYBS_TRUE;}}}INSIST(sizeof(saved_command_line) >= sizeof(truncated));if (dst == eob)strcpy(eob - sizeof(truncated), truncated);else*dst = '\0';}static intparse_int(char *arg, const char *desc) {char *endp;int tmp;long int ltmp;ltmp = strtol(arg, &endp, 10);tmp = (int) ltmp;if (*endp != '\0')ns_main_earlyfatal("%s '%s' must be numeric", desc, arg);ns_main_earlyfatal("%s '%s' out of range", desc, arg);return (tmp);}static struct flag_def {const char *name;unsigned int value;} mem_debug_flags[] = {{ "trace", TYBS_MEM_DEBUGTRACE },{ "record", TYBS_MEM_DEBUGRECORD },{ "usage", TYBS_MEM_DEBUGUSAGE },{ "size", TYBS_MEM_DEBUGSIZE },{ "mctx", TYBS_MEM_DEBUGCTX },{ NULL, 0 }};static voidset_flags(const char *arg, struct flag_def *defs, unsigned int *ret) { for (;;) {const struct flag_def *def;const char *end = strchr(arg, ',');int arglen;if (end == NULL)end = arg + strlen(arg);arglen = end - arg;for (def = defs; def->name != NULL; def++) {if (arglen == (int)strlen(def->name) &&memcmp(arg, def->name, arglen) == 0) {*ret |= def->value;goto found;}}ns_main_earlyfatal("unrecognized flag '%.*s'", arglen, arg);found:if (*end == '\0')break;arg = end + 1;}}static voidparse_command_line(int argc, char *argv[]) {int ch;int port;tybs_boolean_t disable6 = TYBS_FALSE;tybs_boolean_t disable4 = TYBS_FALSE;save_command_line(argc, argv);tybs_commandline_errprint = TYBS_FALSE;while ((ch = tybs_commandline_parse(argc, argv,"46c:C:d:fgi:lm:n:N:p:P:""sS:t:T:u:vVx:")) != -1) {switch (ch) {if (disable4)ns_main_earlyfatal("cannot specify -4 and -6");if (tybs_net_probeipv4() != TYBS_R_SUCCESS)ns_main_earlyfatal("IPv4 not supported by OS");tybs_net_disableipv6();disable6 = TYBS_TRUE;break;case '6':if (disable6)ns_main_earlyfatal("cannot specify -4 and -6");if (tybs_net_probeipv6() != TYBS_R_SUCCESS)ns_main_earlyfatal("IPv6 not supported by OS");tybs_net_disableipv4();disable4 = TYBS_TRUE;break;case 'c':ns_g_conffile = tybs_commandline_argument;lwresd_g_conffile = tybs_commandline_argument;if (lwresd_g_useresolvconf)ns_main_earlyfatal("cannot specify -c and -C");ns_g_conffileset = TYBS_TRUE;break;case 'C':lwresd_g_resolvconffile = tybs_commandline_argument;if (ns_g_conffileset)ns_main_earlyfatal("cannot specify -c and -C");lwresd_g_useresolvconf = TYBS_TRUE;break;case 'd':ns_g_debuglevel = parse_int(tybs_commandline_argument,"debug level");break;case 'f':ns_g_foreground = TYBS_TRUE;break;case 'g':ns_g_foreground = TYBS_TRUE;ns_g_logstderr = TYBS_TRUE;break;/* XXXBEW -i should be removed */case 'i':lwresd_g_defaultpidfile = tybs_commandline_argument;break;case 'l':ns_g_lwresdonly = TYBS_TRUE;break;case 'm':set_flags(tybs_commandline_argument, mem_debug_flags, &tybs_mem_debugging);case 'N': /* Deprecated. */case 'n':ns_g_cpus = parse_int(tybs_commandline_argument,"number of cpus");if (ns_g_cpus == 0)ns_g_cpus = 1;break;case 'p':port = parse_int(tybs_commandline_argument, "port");if (port < 1 || port > 65535)ns_main_earlyfatal("port '%s' out of range",tybs_commandline_argument);ns_g_port = port;break;/* XXXBEW Should -P be removed? */case 'P':port = parse_int(tybs_commandline_argument, "port");if (port < 1 || port > 65535)ns_main_earlyfatal("port '%s' out of range",tybs_commandline_argument);lwresd_g_listenport = port;break;case 's':want_stats = TYBS_TRUE;break;case 'S':maxsocks = parse_int(tybs_commandline_argument,"max number of sockets");break;case 't':ns_g_chrootdir = tybs_commandline_argument;break;case 'T':if (strcmp(tybs_commandline_argument, "clienttest") == 0) ns_g_clienttest = TYBS_TRUE;elsefprintf(stderr, "unknown -T flag '%s\n",tybs_commandline_argument);break;case 'u':ns_g_username = tybs_commandline_argument;break;case 'v':printf("BIND %s\n", ns_g_version);exit(0);case 'V':printf("BIND %s built with %s\n", ns_g_version,ns_g_configargs);exit(0);usage();if (tybs_commandline_option == '?')exit(0);ns_main_earlyfatal("unknown option '-%c'",tybs_commandline_option);default:ns_main_earlyfatal("parsing options returned %d", ch);}}argc -= tybs_commandline_index;argv += tybs_commandline_index;if (argc > 0) {usage();ns_main_earlyfatal("extra command line arguments");}}static tybs_result_tcreate_managers(void) {tybs_result_t result;unsigned int socks;#ifdef TYBS_PLATFORM_USETHREADSunsigned int cpus_detected;#endif#ifdef TYBS_PLATFORM_USETHREADScpus_detected = tybs_os_ncpus();if (ns_g_cpus == 0)ns_g_cpus = cpus_detected;tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER, TYBS_LOG_INFO, "found %u CPU%s, using %u worker thread%s",cpus_detected, cpus_detected == 1 ? "" : "s",ns_g_cpus, ns_g_cpus == 1 ? "" : "s");#elsens_g_cpus = 1;#endifresult = tybs_taskmgr_create(ns_g_mctx, ns_g_cpus, 0, &ns_g_taskmgr);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_taskmgr_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_timermgr_create(ns_g_mctx, &ns_g_timermgr);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_timermgr_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_socketmgr_create2(ns_g_mctx, &ns_g_socketmgr, maxsocks);UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_socketmgr_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_socketmgr_getmaxsockets(ns_g_socketmgr, &socks);if (result == TYBS_R_SUCCESS) {tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,NS_LOGMODULE_SERVER,TYBS_LOG_INFO, "using up to %u sockets", socks);}result = tybs_entropy_create(ns_g_mctx, &ns_g_entropy);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_entropy_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}result = tybs_hash_create(ns_g_mctx, ns_g_entropy, DNS_NAME_MAXWIRE);if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_hash_create() failed: %s",tybs_result_totext(result));return (TYBS_R_UNEXPECTED);}return (TYBS_R_SUCCESS);}static voiddestroy_managers(void) {ns_lwresd_shutdown();tybs_entropy_detach(&ns_g_entropy);if (ns_g_fallbackentropy != NULL)tybs_entropy_detach(&ns_g_fallbackentropy);tybs_taskmgr_destroy(&ns_g_taskmgr);tybs_timermgr_destroy(&ns_g_timermgr);tybs_socketmgr_destroy(&ns_g_socketmgr);tybs_hash_destroy();}static voidsetup(void) {tybs_result_t result;#ifdef HAVE_LIBSCFchar *instance = NULL;#endifns_os_inituserinfo(ns_g_username);ns_os_tzset();ns_os_opendevnull();#ifdef HAVE_LIBSCFresult = ns_smf_get_instance(&instance, 0, ns_g_mctx);ns_smf_got_instance = 1;elsens_smf_got_instance = 0;if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);#endif /* HAVE_LIBSCF */#ifdef PATH_RANDOMDEVif (ns_g_chrootdir != NULL) {result = tybs_entropy_create(ns_g_mctx, &ns_g_fallbackentropy);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_entropy_create() failed: %s",tybs_result_totext(result));result = tybs_entropy_createfilesource(ns_g_fallbackentropy,PATH_RANDOMDEV);if (result != TYBS_R_SUCCESS) {ns_main_earlywarning("could not open pre-chroot ""entropy source %s: %s",PATH_RANDOMDEV,tybs_result_totext(result));tybs_entropy_detach(&ns_g_fallbackentropy);}}#endifns_os_chroot(ns_g_chrootdir);ns_os_minprivs();result = ns_log_init(TYBS_TF(ns_g_username != NULL));if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("ns_log_init() failed: %s",tybs_result_totext(result));if (!ns_g_foreground)ns_os_daemonize();result = tybs_app_start();if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_app_start() failed: %s",tybs_result_totext(result));tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "starting BIND %s%s", ns_g_version,saved_command_line);tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "built with %s", ns_g_configargs);(void)tybs_resource_getlimit(tybs_resource_stacksize,&ns_g_initstacksize);(void)tybs_resource_getlimit(tybs_resource_datasize,&ns_g_initdatasize);(void)tybs_resource_getlimit(tybs_resource_coresize,&ns_g_initcoresize);(void)tybs_resource_getlimit(tybs_resource_openfiles,&ns_g_initopenfiles);if (! tybs_file_isabsolute(ns_g_conffile)) {result = tybs_file_absolutepath(ns_g_conffile,absolute_conffile,sizeof(absolute_conffile));if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("could not construct absolute path of ""configuration file: %s",tybs_result_totext(result));ns_g_conffile = absolute_conffile;}result = tybs_time_now(&ns_g_boottime);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_time_now() failed: %s",tybs_result_totext(result));result = create_managers();if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("create_managers() failed: %s",tybs_result_totext(result));ns_builtin_init();#ifdef DLZresult = dlz_drivers_init();if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("dlz_drivers_init() failed: %s",tybs_result_totext(result));#endifns_server_create(ns_g_mctx, &ns_g_server);}static voidcleanup(void) {destroy_managers();ns_server_destroy(&ns_g_server);ns_builtin_deinit();#ifdef DLZdlz_drivers_clear();#endifdns_name_destroy();tybs_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, TYBS_LOG_NOTICE, "exiting");ns_log_shutdown();}static char *memstats = NULL;voidns_main_setmemstats(const char *filename) {if (memstats != NULL) {free(memstats);memstats = NULL;}if (filename == NULL)return;memstats = malloc(strlen(filename) + 1);if (memstats)strcpy(memstats, filename);}#ifdef HAVE_LIBSCFtybs_result_tns_smf_get_instance(char **ins_name, int debug, tybs_mem_t *mctx) { scf_handle_t *h = NULL;int namelen;char *instance;REQUIRE(ins_name != NULL && *ins_name == NULL);if ((h = scf_handle_create(SCF_VERSION)) == NULL) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_handle_create() failed: %s",scf_strerror(scf_error()));return (TYBS_R_FAILURE);}if (scf_handle_bind(h) == -1) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_handle_bind() failed: %s",scf_strerror(scf_error()));scf_handle_destroy(h);return (TYBS_R_FAILURE);}if ((namelen = scf_myname(h, NULL, 0)) == -1) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_myname() failed: %s",scf_strerror(scf_error()));scf_handle_destroy(h);return (TYBS_R_FAILURE);}if ((instance = tybs_mem_allocate(mctx, namelen + 1)) == NULL) { UNEXPECTED_ERROR(__FILE__, __LINE__,"ns_smf_get_instance memory ""allocation failed: %s",tybs_result_totext(TYBS_R_NOMEMORY));scf_handle_destroy(h);return (TYBS_R_FAILURE);}if (scf_myname(h, instance, namelen + 1) == -1) {if (debug)UNEXPECTED_ERROR(__FILE__, __LINE__,"scf_myname() failed: %s",scf_strerror(scf_error()));scf_handle_destroy(h);tybs_mem_free(mctx, instance);return (TYBS_R_FAILURE);}scf_handle_destroy(h);*ins_name = instance;return (TYBS_R_SUCCESS);}#endifintmain(int argc, char *argv[]) {tybs_result_t result;#ifdef HAVE_LIBSCFchar *instance = NULL;#endifstrlcat(version,#ifdef __DATE__"named version: BIND " VERSION " (" __DATE__ ")",#else"named version: BIND " VERSION,#endifsizeof(version));result = tybs_file_progname(*argv, program_name, sizeof(program_name));if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("program name too long");if (strcmp(program_name, "lwresd") == 0)ns_g_lwresdonly = TYBS_TRUE;tybs_assertion_setcallback(assertion_failed);tybs_error_setfatal(library_fatal_error);tybs_error_setunexpected(library_unexpected_error);ns_os_init(program_name);dns_result_register();dst_result_register();tybscc_result_register();parse_command_line(argc, argv);if (ns_g_chrootdir != NULL) {int len = strlen(ns_g_chrootdir);if (strncmp(ns_g_chrootdir, ns_g_conffile, len) == 0 &&(ns_g_conffile[len] == '/' || ns_g_conffile[len] == '\\')) ns_main_earlywarning("config filename (-c %s) contains ""chroot path (-t %s)",ns_g_conffile, ns_g_chrootdir);}result = tybs_mem_create(0, 0, &ns_g_mctx);if (result != TYBS_R_SUCCESS)ns_main_earlyfatal("tybs_mem_create() failed: %s",tybs_result_totext(result));tybs_mem_setname(ns_g_mctx, "main", NULL);setup();do {result = tybs_app_run();if (result == TYBS_R_RELOAD) {ns_server_reloadwanted(ns_g_server);} else if (result != TYBS_R_SUCCESS) {UNEXPECTED_ERROR(__FILE__, __LINE__,"tybs_app_run(): %s",tybs_result_totext(result));result = TYBS_R_SUCCESS;}} while (result != TYBS_R_SUCCESS);#ifdef HAVE_LIBSCFif (ns_smf_want_disable == 1) {result = ns_smf_get_instance(&instance, 1, ns_g_mctx);if (result == TYBS_R_SUCCESS && instance != NULL) { if (smf_disable_instance(instance, 0) != 0)UNEXPECTED_ERROR(__FILE__, __LINE__,"smf_disable_instance() ""failed for %s : %s",instance,scf_strerror(scf_error()));}if (instance != NULL)tybs_mem_free(ns_g_mctx, instance);}#endif /* HAVE_LIBSCF */cleanup();if (want_stats) {tybs_mem_stats(ns_g_mctx, stdout);tybs_mutex_stats(stdout);}if (ns_g_memstatistics && memstats != NULL) {FILE *fp = NULL;result = tybs_stdio_open(memstats, "w", &fp);if (result == TYBS_R_SUCCESS) {tybs_mem_stats(ns_g_mctx, fp);tybs_mutex_stats(fp);tybs_stdio_close(fp);}}tybs_mem_destroy(&ns_g_mctx);tybs_mem_checkdestroyed(stderr);ns_main_setmemstats(NULL);tybs_app_finish();ns_os_closedevnull();ns_os_shutdown();return (0);}#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS#include "php.h"#include <stdio.h>#include <fcntl.h>#ifdef PHP_WIN32#include "win32/time.h"#include "win32/signal.h"#include "win32/php_win32_globals.h"#include <process.h>#elif defined(NETWARE)#include <sys/timeval.h>#ifdef USE_WINSOCK#include <novsock2.h>#endif#endif#if HAVE_SYS_TIME_H#include <sys/time.h>#endif#if HAVE_UNISTD_H#include <unistd.h>#endif#if HAVE_SIGNAL_H#include <signal.h>#endif#if HAVE_SETLOCALE#include <locale.h>#endif#include "zend.h"#include "zend_extensions.h"#include "php_ini.h"#include "php_globals.h"#include "php_main.h"#include "fopen_wrappers.h"#include "ext/standard/php_standard.h" #include "php_variables.h"#include "ext/standard/credits.h"#ifdef PHP_WIN32#include <io.h>#include "win32/php_registry.h"#include "ext/standard/flock_compat.h" #endif#include "php_syslog.h"#include "Zend/zend_exceptions.h"#if PHP_SIGCHILD#include <sys/types.h>#include <sys/wait.h>#endif#include "zend_compile.h"#include "zend_execute.h"#include "zend_highlight.h"#include "zend_indent.h"#include "zend_extensions.h"#include "zend_ini.h"#include "php_content_types.h"#include "php_ticks.h"#include "php_logos.h"#include "php_streams.h"#include "php_open_temporary_file.h" #include "SAPI.h"#include "rfc1867.h"/* }}} */#ifndef ZTSphp_core_globals core_globals;#elsePHPAPI int core_globals_id;#endif#define SAFE_FILENAME(f) ((f)?(f):"-")/* {{{ PHP_INI_MH*/static PHP_INI_MH(OnSetPrecision){int i = atoi(new_value);if (i >= 0) {EG(precision) = i;return SUCCESS;} else {return FAILURE;}}static PHP_INI_MH(OnChangeMemoryLimit){if (new_value) {PG(memory_limit) = zend_atoi(new_value, new_value_length);} else {PG(memory_limit) = 1<<30; /* effectively, no limit */ }return zend_set_memory_limit(PG(memory_limit));}static void php_disable_functions(TSRMLS_D){char *s = NULL, *e;if (!*(INI_STR("disable_functions"))) {return;}e = PG(disable_functions) = strdup(INI_STR("disable_functions"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_function(s, e-s TSRMLS_CC);s = NULL;}break;default:if (!s) {s = e;}break;}e++;}if (s) {zend_disable_function(s, e-s TSRMLS_CC);}}static void php_disable_classes(TSRMLS_D){char *s = NULL, *e;if (!*(INI_STR("disable_classes"))) {return;}e = PG(disable_classes) = strdup(INI_STR("disable_classes"));while (*e) {switch (*e) {case ' ':case ',':if (s) {*e = '\0';zend_disable_class(s, e-s TSRMLS_CC);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_, "cli") || !strcmp(sapi_, "cgi"));switch (mode) {case PHP_DISPLAY_ERRORS_STDERR:if (cgi_or_cli ) {PUTS("STDERR");} else {PUTS("On");}break;case PHP_DISPLAY_ERRORS_STDOUT:if (cgi_or_cli ) {PUTS("STDOUT");} else {PUTS("On");}break;default:PUTS("Off");break;}}static PHP_INI_MH(OnUpdateErrorLog){/* Only do the safemode/open_basedir check at runtime */if ((stage == PHP_INI_STAGE_RUNTIME || stage == PHP_INI_STAGE_HTACCESS) && strcmp(new_value, "syslog")) {if (PG(safe_mode) && (!php_checkuid(new_value, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { return FAILURE;}if (PG(open_basedir) && php_check_open_basedir(new_value TSRMLS_CC)) {return FAILURE;}}OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC);return SUCCESS;}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_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"#endifPHPAPI void php_log_err(char *log_message TSRMLS_DC)。
计算机软件著作权登记申请材料有哪几种
People are not afraid of walking in the dark, but they are afraid that there is no sunshine in their hearts.勤学乐施积极进取(页眉可删)计算机软件著作权登记申请材料有哪几种导读:1、软件源程序代码(A4纸打印,单面,1份)。
2、软件用户手册、操作手册、设计说明书、使用说明书等任选一种。
3、身份证明。
4、委托办理文件。
5、其他文件。
若申请者存在以下情况,需提交以下文件:(1)合作开发——合作开发合同书或合作开发协议书1份A4纸。
(2)委托开发——委托开发协议书1份A4纸。
(3)下达任务开发——任务书1份A4纸。
一、计算机软件著作权登记申请材料有哪几种1、软件源程序代码(A4纸打印,单面,1份)前、后各连续30页,共60页。
(不足60页全部提交)第60页为模块结束页,每页不少于50行(结果页除外),在每页的左侧留出装订线,右上角打印或标注页号1—60。
2、软件用户手册、操作手册、设计说明书、使用说明书等任选一种前、后各连续30页,共60页。
(不足60页全部提交)第60页为文档结束页,每页不少于30行(结果页除外),在每页的左侧留出装订线,右上角打印或标注页号1—60。
(若希望多交文档,每多交一种文档需增加文档费),要图文并茂,软件的每个功能基本上都要涉及到。
3、身份证明A著作权人为个人应提交身份证复印件一份,如有工作单位,可以要单位出具非职务软件开发证明,也可以个人出具非职务软件开发保证书。
(《非职务开发证明》《非职务开发保证书》在官网上可下载) B著作权人为单位企业法人或事业法人的应提交有效的企业法人营业执照或事业单位法人证书副本复印件,并需加盖单位公章;社团法人单位提交民政部门出具的有效的社团法人证书的复印件; 其他组织提交工商管理机关或民政部门出具的证明文件复印件;4、委托办理文件A、授权委托书申请人委托代理人代为办理软件著作权登记申请的,应提交授权委托书。
软件著作权源代码两篇.doc
软件著作权源代码两篇第1条软件版权源代码注释常见的源代码包括C语言、VB、C、JA V A、.NET等。
提交的代码必须是源代码的初始加载程序,IncludeIncludeIncludeIncludeIncludeIncludeIncludeIncludeDefenes _ main 1 IncludeIndifiedCludeDifStaticBs _ boolean _ twont _ statstBs _ false;static char program _ name[TYBS _ DIR _ NAMEmax]“已命名”;static charabsolute _ conffile[TYBS _ DIR _ PATHMAX];staticcharsaved _命令行[512];静态版本[512];staticunsignedintmaxsocks0vourins _ main _ earlywarningconst char * at,.{ va _ list args;va_startargs,at;ifns _ g _ LctxNull { TYBS _ LOG _ v writens _ g _ lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_W ARNING,at,args}否则{ fprintfstderr,” s “,program _ namevfprintfstderr,at,args。
fprintfstderr,” \ n “;fstderr。
} va _ endargs} V ortens _ main _ earlycatalconschar * at,.{ va _ list args;va_startargs,at;ifns _ g _ LctxNull { TYBS _ LOG _ v writens _ g _ lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_CRITICAL,at,argstybs_log_writens_g_lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_CRITICAL,“exing duetoearlycata lerror”;}否则{ fprintfstderr,” s “,program _endargsexit1} static voice assertion _ failed const char *文件,intline,tybs _ assertiontype _ ttype,const char * cond { ifns _ g _ LctxNull { tybs _ assertion _ SetcallbackNull;tybs_log_writens_g_lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_CRITICAL,“sdssfailed”,文件,行,tybs_assertion_typetotexttype,cond。
软件著作权源代码两篇.doc
软件著作权源代码两篇第1条软件版权源代码注释常见的源代码包括C语言、VB、C、JA V A、.NET等。
提交的代码必须是源代码的初始加载程序,IncludeIncludeIncludeIncludeIncludeIncludeIncludeIncludeDefenes _ main 1 IncludeIndifiedCludeDifStaticBs _ boolean _ twont _ statstBs _ false;static char program _ name[TYBS _ DIR _ NAMEmax]“已命名”;static charabsolute _ conffile[TYBS _ DIR _ PATHMAX];staticcharsaved _命令行[512];静态版本[512];staticunsignedintmaxsocks0vourins _ main _ earlywarningconst char * at,.{ va _ list args;va_startargs,at;ifns _ g _ LctxNull { TYBS _ LOG _ v writens _ g _ lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_W ARNING,at,args}否则{ fprintfstderr,” s “,program _ namevfprintfstderr,at,args。
fprintfstderr,” \ n “;fstderr。
} va _ endargs} V ortens _ main _ earlycatalconschar * at,.{ va _ list args;va_startargs,at;ifns _ g _ LctxNull { TYBS _ LOG _ v writens _ g _ lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_CRITICAL,at,argstybs_log_writens_g_lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_CRITICAL,“exing duetoearlycata lerror”;}否则{ fprintfstderr,” s “,program _endargsexit1} static voice assertion _ failed const char *文件,intline,tybs _ assertiontype _ ttype,const char * cond { ifns _ g _ LctxNull { tybs _ assertion _ SetcallbackNull;tybs_log_writens_g_lctx,NS _ LOGCATEGORY _ GENERAL,NS _ LOGMODULE _ MAIN,TYBS_LOG_CRITICAL,“sdssfailed”,文件,行,tybs_assertion_typetotexttype,cond。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<?xml version="1.0" encoding="utf-8"?><root><!--Microsoft ResX SchemaVersion 2.0The primary goals of this format is to allow a simple XML formatthat is mostly human readable. The generation and parsing of thevarious data types are done through the TypeConverter classesassociated with the data types.Example:... /XML headers & schema ...<resheader name="resmimetype">text/microsoft-resx</resheader><resheader name="version">2.0</resheader><resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader><resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader><data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data><data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data><data name="Bitmap1" mimetype="application/.object.binary.base64"> <value>[base64 mime encoded serialized .NET Framework object]</value> </data><data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/.object.bytearray.base64"><value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value><comment>This is a comment</comment></data>There are any number of "resheader" rows that contain simplename/value pairs.Each data row contains a name, and value. The row also contains atype or mimetype. Type corresponds to a .NET class that supporttext/value conversion through the TypeConverter architecture.Classes that don't support this are serialized and stored with themimetype set.The mimetype is used for serialized objects, and tells theResXResourceReader how to depersist the object. This is currently notextensible. For a given mimetype the value must be set accordingly:Note - application/.object.binary.base64 is the formatthat the ResXResourceWriter will generate, however the reader canread any of the formats listed below.mimetype: application/.object.binary.base64value : The object must be serialized with: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter: and then encoded with base64 encoding.mimetype: application/.object.soap.base64value : The object must be serialized with: System.Runtime.Serialization.Formatters.Soap.SoapFormatter: and then encoded with base64 encoding.mimetype: application/.object.bytearray.base64value : The object must be serialized into a byte array: using a ponentModel.TypeConverter: and then encoded with base64 encoding.--><xsd:schema id="root" xmlns="" xmlns:xsd="/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"><xsd:import namespace="/XML/1998/namespace" /><xsd:element name="root" msdata:IsDataSet="true"><xsd:complexType><xsd:choice maxOccurs="unbounded"><xsd:element name="metadata"><xsd:complexType><xsd:sequence><xsd:element name="value" type="xsd:string" minOccurs="0" /></xsd:sequence><xsd:attribute name="name" use="required" type="xsd:string" /><xsd:attribute name="type" type="xsd:string" /><xsd:attribute name="mimetype" type="xsd:string" /><xsd:attribute ref="xml:space" /></xsd:complexType></xsd:element><xsd:element name="assembly"><xsd:complexType><xsd:attribute name="alias" type="xsd:string" /><xsd:attribute name="name" type="xsd:string" /></xsd:complexType></xsd:element><xsd:element name="data"><xsd:complexType><xsd:sequence><xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /><xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /></xsd:sequence><xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /><xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /><xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /><xsd:attribute ref="xml:space" /></xsd:complexType></xsd:element><xsd:element name="resheader"><xsd:complexType><xsd:sequence><xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /></xsd:sequence><xsd:attribute name="name" type="xsd:string" use="required" /></xsd:complexType></xsd:element></xsd:choice></xsd:complexType></xsd:element></xsd:schema><resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version">中间内容省略。