登录
首页 » Others » 华为C++语言编程规范

华为C++语言编程规范

于 2020-12-12 发布
0 349
下载积分: 1 下载次数: 4

代码说明:

华为C++语言编程规范,内部资料se语言编程规范内部公开目录0说明前言代码总体原则与语言编程规范的关系规范实施、解释术语定义1常量62初始化和类型转换声明、定义与初始化类型转换3函数12内联函数函数参数函数指针4类...14类的设计构造、赋值和析构继承重载5作用域、模板和C+其他特性..25作用域模板其他6资源分配和释放287异常与错误处理33异常错误处理策略8标准库369程序效率语言特性的性能分级语言的性能优化指导华为机密,未经许可不得扩散第页共页se语言编程规范内部公开0并发4511风格48标小符命名与定义排版注释文件组织12可移植性(兼容性).4913全球化52多语言输入输出单一版本时区夏令时14业界编程规范和书籍55业界编程规编程指南《编程规范条规则、准则与最佳实践》《微软一站式示例代码库》扩展学习材料华为机密,未经许可不得扩散第页共页se语言编程规范内部公开语言编程规范0说明前言随着业务的发展和产品架构的演进,越来越多的传统电信产品使用C++语言,很多新型产品更是把C+作为首选。C艹继承于C,包含C的所有特性,同时又增加了新语言特性,如面向对象、泛型设计等。目前C-+使用现状是:基础技能薄弱,陷入很多误区,不能很好地发挥C++的作用。为了帮助团队合理使用C-+,规避语言陷阱,特制定本规范代码总体原则毘C语言编稈一样,C++编稈遵循通用原则:1、清晰第一。清晰性是易于维护、易于重构的程序必需只备的特征。2、简洁为美。简洁就是易于理解并且易于实现。3、选择合适的风格,与代码原有风格俣持一致。除此之外,C+编程还应该注意以下方面1、正确使用C+面向对象技术使得程序结枃清晰、简单,提高了代码的重用性,但又隐藏了很多內部实现细节,内存模型复杂,不小心会误入陷阱,比如:拷贝构造函数,赋值操作符,析构函数,重载等为了简化代码,改善代码结构,提髙编程效率,一些团队引入新特性和第三方库,如:模板技术、STL、Bost等,由于缺乏足够的理解,使用中屡次发生问题,比如对达代器( Iterator)使用不当导致功能失常,甚至稈序崩溃。所以,必须深入理解C艹+对象布局、內存模型等,了解编译器背后所做的处理,才能在编程中知道如何止确使用2、安全高效跟其他流行的高级语言、脚本语言相比,C艹+运行速度快,天然适合开发核心通信部件,但是这些部件对稳定性的要求非常高,不容许发生异常、失效以及崩溃。C艹-具有直接操作硬件、访问內存的能力提供了指针、地址运算等灵活特性,稈序员可以仟意发挥,增加了出锖的几率。所以在追求速度与灵峾性的冋同时,一定要注意保持程序的健壮性。在増强代码稳定性过桯中,程序员通常采用i-else等防御式编程,使得代码非常臃肿,可适当采用RAIⅠ、智能指针等技术华为机密,未经许可不得扩散第页共页se语言编程规范内部公开与语言编程规范的关系本文在《华为技术有限公司C语言编程规范》(简称C规范)基础上,通过详细阐述如何规避C++语言复杂性,避免C+-的低级错误,确保有效使用C-+语言特性,代码易于维扩。C规范里面相同的内容,夲规范不再重复。例如头文伻、变量、表达式、代码编辑与编译、可测试性安全性、单元测试等章节经过审妉,完全适合C+,本规范不再重复。标识符命名与定义、注祥、排版与柊式等内容也适合C++,仅仅添加了少量的C+特有的规则和建议,合并成风格一章;涵数章节增加了內联函数、函数参数等内容;可移植性増加了64位以及C艹+专冇的薮据转换等內容;质量保证也符合C艹+的需要,将资源分配和释放部分C艹特有的内容编写成单独章节;宏、常量也符合C++,考虑到C++普遍使用 cons t,增加了常属性( const)章节。新増初始化和类型转换,类,作用域、模板与C艹-其他特性,异常与错误处理,并发,全球化等C艹特有的内容本规范和C规范有沖突的地方,以本规范为准。规范实施、解释本规范制定了编写C+语言程序的基本原则、规则和建议。木规范适用于公司内使用C++语言编码的所有软件。本规范自发布之日起生效,对以后新编写的和修改的代码应遵守本规范本规范由软件工稈体系发布和维护。实施屮遇到问题,可以到论坛http://hi3ms.huaweicom/group/1735/threads.htmi上讨论。在某些情况下需要违反本规范给出的规则时,相关团队必须通过一个正式的沇程来评审、决貪规则违反的部分,个体程序员不得违反本规范中的相关规则。术语定义原则:编程时必须坚持的指导思想规则:编程时强制必须遵守的约定。建议:编程时必效加以考虑的约定说明:对此原则/规则/建议进行必要的解释。示例:对此原则/规则/建议从好、不好两个方面给出例子。延伸阅读材料:建议进一步阅读的参考材料。常量不变的值更易于理餡、跟踪和分析,所以应该尽可能地使用常量代替变量,定义值的时侯,应该把 const作为默认的选项规则1.1使用 const常量取代宏华为机密,未经许可不得扩散第页共页se语言编程规范内部公开说明:宏是简单的文本替换,在预处理阶段时完成,运行报错时直接报相应的值;跟踪调试时也是显示值,而不是宏名;宏没有类型检查,不安全;宏没有作用域。示例defi: e MAX MSISDN LEN(20)//不好的例子const int MAX MSISDN LEN=20;/好的例子规则1.2一组相关的整型常量应定义为枚举说明:之所以使用枚举,基于:●枚举比# define或 const int更安全,因为编译器会检查参数值是否是否位于枚举取值范围内,从而避免错误发生。示例//好的例子enum DayofWeek( sunday, monday, tuesday, wednesday, thursday, friday, saturday)ienum Ccloriblack, blue, whiter red, purp_e]BOOL CclorizeCalendar (DayofWeek today, Color todays Color)Coorizeca1 endor(b1ue, sunday);//编译报错,1ue和 Sunday位置错误//不好的例子:const int sunday=0iconst int monday= 1const int b⊥acKconst int blueBOOL CclorizeCalendar (int today, int todays ColorCoorizecalendar(blue, sunday);//不会报错当枚举值需要对应到具体数值时,须在声明时昰示赋值。否则不需要昰式赋值,以避免重复赋值,降低维护(增加、朋除成员)工作量示例好的例子:s协议里定义的设备I值,用于标识设备类型cnum TDcv-cclypcDEV UNKNOWN --l,DEV DSMP 0DEV工SMGDEV WAPPORTAL=2程序内部使用,仅用于分类的情況,不应该进行显式的赋值。示例/好的例子:程序中用来标识会话状态的枚举定义enum TSessionstateSESSION STATE INITISESSTON STATE CTOSEDSESSION STATE WA工TING●应当尽量避免枚举值亘复,如必须重复也要用己定义的枚举来修饰,例如:typed f enumRTCP SR 200,RTCP MIN TYPE RTCP SR//must be lowest known typeRTCP RR华为机密,未经许可不得扩散第页共页se语言编程规范内部公开RTCP SDES= 202RTCP BYE203,RTCP APP204,RTCP RTPFB=205RTCP PSEB =206/RTCP XR207RTCP RSI =208RTCP PUBPCRTS =209RTCP MAX TYPF= RTCP PUB PORTS //must be highest known typertcp type ti规则1.3不相关的常量,即使取值一样,也必须分别定义说明:一个常量只用来表示一个特定功能,即一个常量不能有多种用途。示例:/好的例子:协议和协议B,于机号( (MSISDN)的长度都是20。unsigned const int. A MAX MST SDN LEN0;unsigned const int B MAX MSI SDN LEN 20//或者使用不同的名字空间namespace alibunsigned const int MAX MSISDN LEN=20;namespace blibunsigned const int MAX MSISDN LEN =20建议1.1尽可能使用 const说明:在声明的变量或参数前加上关键字 const用于指明变量值不可被篡改。类成员函数加上 const限定符表明该函数不会修改类成员变量的状态使用 const常见的场景:函数参数:传递引用时,如果函数不会修改传入参数,该形参应声明为 const。成员函数:访问函数(如get函数):不修改任何数据成员的函数:未调用非 cons t函数、未返回数据成员的非 const指针或引用的函数。数据成员:如果数据成员在对象构造之后个再发生变化,可将其定义为 cons t。2初始化和类型转换声明、定义与初始化规则2.1禁止用 memcpy、 memset初始化非POD对象说明:PO全称是“ Plain0 ld Data”,是C++98标准(ISO/IEC14882, first edition,19980901)中引入的一个概念,POD类型主要包括int,char, float, double, enumeration,woid,指针等原始类型及其集合类型,不能使用封装和面对对象特性(如用户定义的构造/赋值/析构函数、基类、虚函数等)。华为机密,未经许可不得扩散第页共页se语言编程规范内部公开由于非P0D类型比如非集合类型的 class对象,可能存在虚函数,内存布局不确定,跟编译器有关,滥用内存拷贝可能会导致严重的问题即使对集合类型的 class,使用直接的内存拷贝和比较,破坏了信息隐蔽和数据保护的作用,也不提倡memcpy、 memset操作示例:×××产品程序异常退出( corc dump)。经过现场环境的模似,程序产生 COREDUMP,其原因是:在初始化函数内使用 memset(this,0,sizeof(*this))进行了类的初始化,将类的虚函数表指针被清空,从而导致使用空指针。解决方案:使用C艹构造函数初始化,不要便用 memset函数初始化类对象建议2.1变量使用时才声明并初始化说明:变量在使用前未赋初值,是常见的低级编程错误。使用前才声明变量并同时初始化,非常方便地避免了此类低级错误。在函数开始位置声明所有变量,后面才使用变量,作用域覆盖整个函数实现,容易导致如下问题:程序难以理解和维护:变量的定义与使用分离变量难以合理初始化:在函数丌始时,经常没有足够的笮息进行变量初始化,往往用某个默认的空值(比如零)来初始化,这遥常是一种浪费,如果变量在被赋于有效值以前使用,还会导致错误。遵循变量作用域最小化原则与魷近声明原则,使得代码更容易阅读,方便了解变量的类型和初始值特别是,应使用初始化的方式替代声明再赋值示例:不好的例子:声明与初始化分离string name;//声明时未初始化:调用缺省构造函数nane=" zhangsan";//再次调用赋值操作符函数;声明与定义在不同的地方,理解相对困难好的例子:声明与初始化一体,理解相对容易string name(" zhangsan");//调用一次构造函数建议2.2避免构造函数做复杂的初始化,可以使用“init”函数说明:正如函数的变量都在函数内部初始化一样,类数据成员最好的初始化场所就是构造函数,数据成员都应该尽量在构造函数中初始化以下情况可以使用init(函数来初始化:需要提供初始化返回信息。数据成员初始化可能抛异常。●数据成员初始化大败会造成该类对象初始化失败,引起不确定状态数据成员初始化依赖this揞针:构造凶数没结束,对象就没有构造出来,构造凶数內不能使用this成员数据成员初始化需要调用虚函数。在构造函数和析构函数中调用虚函数,会导致未定乂的行为示例:数据成员初始化可能拋异常:cl ass CPPRule华为机密,未经许可不得扩散第页共页se语言编程规范内部公开publicCEPRule(): size (0), res (null)i//仅进行值初始化long init (int size)//根据传入的参数初始化size,分配资源resr vateint siResourceptrx res//使用方法CPPRule ait(100)建议2.3初始化列表要严格按照成员声明顺序来初始化它们说明:编译器会按照数据成员在类定义中声明的顺序进行初始化,而不是按照初始化列表中的顺序,如果打乱初始化列表的顺序实际上不起作用,但会造成阅读和理解上的混淆;特别是成员变量之间存在依赖关系时可能导致BUG示例://不好的例子:初始化顺序与声明顺序不一致class Emp-oyeepublic:Employee(const charx firstName, const charx lastNamefirstName (firstName), lastName (lastName)r email (firstName.+-astName t huawei. com)ipr-vate:string email, firstName lastName类定义emai1是在 firstName, lastName之前声明,它将首先初始化,但使用了未初始化的ratNam和 lastName,导致错误。在成员声明时,应按照成员相互依赖关系按顺序声明。建议2.4明确有外部依赖关系的全局与静态对象的初始化顺序说明:如果全尻对象A的成员变量有外部依赖,比如依赖另外一个全局变量B,在A的构造函数中访问B,隐含的规则就是B先于A初始化,然而全局与静态对象的初始化与析构顺序未有严格定义,无法确保B已经完成初始化,而每次生成可执行程序都可能发生变化,这类BUG难以定位。通常采用单件( Singleton)模式或者把有依赖关系的全局对象放在一个文件中定义来明确初始化顺序冋一个文件屮,若全局对象a在全局对象b之前定义,则a一定会在b之前初始化;但是不同文件中的全局对象就没有固定的初始化顺序。可以在main0或 pthread once(内初始化一个运行期间不回收的指针类型转换避免使用类型分支来定制行为:类型分支来定制行为容易出错,是企图用C+编写C代码的明显标志。这是一种很不灵活的技术,要添加新类型时,如果忘记修改所有分支,编译器也不会告知。使用模板和虚函数,让类型自己而不是调用它们的代码来决定行为。华为机密,未经许可不得扩散第页共页

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 《卡尔曼滤波原理及应用MATLAB仿真》黄小平(书&代码)
    《卡尔曼滤波原理及应用MATLAB仿真》黄小平 原版PDF&代码
    2020-11-28下载
    积分:1
  • 常用EWSA跑包字典1400w
    常用跑包字典,懂行的不解释,有字典不一定跑出密码,不保证能跑出密码,这只是一种可能,想一定要求跑出密码的朋友不要下,不喜勿喷!本字典32大洋淘宝来,本人用EWSA跑出6个密码。
    2020-12-02下载
    积分:1
  • SVPWM发波
    利用MATLAB M文件编写的SVPWM发波程序,很容易理解原理
    2020-12-11下载
    积分:1
  • 国科大高级软工18-19秋季复习
    国科大研究生课程-高级软件工程期末复习题,18-19秋季学期。
    2020-12-07下载
    积分:1
  • SELinux详解(带完整中文标签)
    SELinux详解(带完整中文标签),不错的介绍selinux的文档第5章:"类型增强策略ˆε在这·章中,我们描述了所有核心策咯语言规则和编写类型增强策略的指令。类型增强是 SELinux最重要的访问控制特性,第6章:"角色和用户"。在这一章中,我们描述」 seLinux基于角色的访问控制杋制,以及策略语言中的角色和用户如何支持类型增强策。第7章:"约東″。在这一章中,我们描述∫ sELinux策略语言的约束特性,即在支持强制策咯类型的策咯内提供约束。第8章:"多级安仝"。在这一章中,我们描述了除核心强制访问控制之外的,允许非强制的多级安全访问控制的策咯语言特性。第9章:"条件策略″。在这一章中,我们描述了策眳语言旳増强,使我们可以在类型增强策略中应用布尔表达式,布尔表达式的值在生产系统上,在运行过程中可以被改变第10章:"对象标记″。在这一章中,我们结束了对簧略语言的描述,同时描述了如何标记对象,以及如何在 seLinux增强的访问控制支持下管理那些标记第三部分:"创建和编写 seLinux安仝策略"。在这最后一部分中,我们向你展示如何使用策略语言,同时描写了建立安仝策略的方法,以及如何管理一个 SELinux系统和调试SELinuX策略模块。第11章:"最早的样例箦略″。在这一章中,我们描述了样例篑略,它是一个创建 sELinuX箎略的方法(源文件,构建工具和示范等),自从美国国家安全局(NSA)释放出最初的样例策略以来,已经经过多年的发展和改进。第12章:ˆ参考策略″。在这一章中,我们描述了一个新的创建 seLinuX策略的方法,它提供了所有样例策略的特性。最近发布的 Fedora core5就是使用参考策略作为它的策略基础的。第13章:"管理 SELinux系统"。在这一章中,我们描述了 SELinux如何影响 Linux系统的管理的。第14章:"编写策略模块"。在这最后一章中,我们利用在木书中学到的所有知识总结成一个向导式的指南,指导如何为样例策略和参考策略编写策略模块。附录。木书结尾包括了儿个附加的参考资料的附录附录A:"获取 SELinⅹ样例策略″。提供了关于如何获取本书中描述过的样例策略源文件的说明。附录B:"参与和额外信息"。列出了关于 seLinux的额外信息源,以及如何参与 seLinux的开发。附录C:"对象类参考"。提供了个详绀的关于 SELinux内核对象类和关联的许可的字典附录D:" seLinux命令和实用程序″。提供」一些实用程序和第三方工只,帮助开发SELinuX策略和管理 SELinux系统。如何使用这本书很少有人翻来覆去地阅读一本技术书籍。大多数人都只想理解某个特定的知识点或开始探索一下新技术。尽管反复阅读确实是可取的,这里我们也给出一和备选的方法。透彻阅读并理解第一部分的内容(第1-3章)。这一部分提供了必要的背景知识和概念,对深入理解 SELinux是很有帮助的。特别要仔细阅读和理解第2章。你可能想撇去第二部分(第4-10章)的内容,这一部分主要讲解了 seLinux策略语言。对大多数人而言,这一部分的内容确实显得太深入了,特别是对于初次接触 SELinux的人更是如此。因此,你可以跳过第4章和第10章,但要仔细阅读第5章。这些章节覆盖了几乎所有 seLinux策略语言元紊,在编写策略时就会使用到。最后,阅读第三部分的所有章节(第11-14章),描述了你感兴趣的问题。阅读这些章节时使用第二部分作参考。侧边栏,注意,警告和提示贯穿本书,我们广泛使用了侧边栏和注解以提供附加的信息或强调某个项目,也包括了大量的警告和提示。下面是它们在本书中的约定。侧边栏:我们使用侧边栏主要出于两个目的。首先,使用它描述在章节主体内容中没有直接涉及到附加信息。例如:我们使用侧边栏列出不同 SeLinux版本之间的差异或深入描述读者感兴趣的某个特定的概念。在第二部分中,我们使用侧边栏来描述所有 seLinux策略语言语句的完整语法。这些语法侧边栏为大量策略语言元素提供了快速参考注意:我们伩用注意为某个特定知识点提供了附加的强调。通常注意是非常短的附加说明警告:警告与注意的使用类似,只是它更着重强调或指出需要额外小心提示:为如何执行一个给定的功能提供快速提示和建议,或使某事交得容易的技巧。排版约定所有技术书籍都必须使用某种排版约定,以便于与读者更好地沟通。我们使用斜体宁表示定义概念时的一个关键概念(通常是首次使用时定义),同时也使用斜体字表示强调。对于着重强调的地方,我们使用粗体字对所有 SELinux策略语言元素( allow),用户命令(ps,ls)或你输入的内谷或你在电脑显示屏上看到的内容使用固定宽度的字体。对于显小命令及其输出的长清单,我们使用 Bourne shell标准提小符#( root shell)和$(普通用户shel1)。用户输入使用粗体加固定宽度字体。例如:Is -lz /etc/selinux/W---yroct rcotsystem u: object_r: selinux_config_tconfig彐rwxr-xr-roctrcotsystem u: object r: selinux con=ig tstrictdrwxr-xr-xroct rcotsystcm u: object r: selinux con=ig ttargeted谈论到斥函数或系统调用时,我们约定使用·对空括号,如 execve(,对策略带有参数的宏也使用这个约定,如 domain auto trans(。当参考Linx命令或函数的帮助手册时,对命令或函数使用斜体字,并用括弧将手册小节括起来。如make(1), execve(2)。从哪里获取 SELinuxSELinux在多个 Linux发行版中受到支持,包括 Red Hat Enterprise linux, Red hatFedora core, Gentoo和 Debian。 Fedora core已经成为 SELinux社区测试和集成大部分创新技术的主要平台。 Red Hat Enterprise linux版本4(RHEL4)是第一个完全支持 SeLinux的大型商业发行版。我们在本书中描述的所有内容都与RHEL4和其他发行版有关。我们选择 Fedora core4(FC4)作为本书的基础,它是REI4之后释放出来的一个 FedoraCore版本。我们描述的所有内容都可以在FCA系统上重现。在我们花了八个月编写此书期间,FC4在不断发展、测试、发布。当我们写完此书时 Fedora Core5(FC5)刚刚发布。FC5集成了许多 SELinux新的特性,FC5的特性可能暗示了RIEL5将会更新的内容。实际上,我们在本书中标注了FC4中没有FC5中的新特性和功能。同样,我们也标了FC4中有但RHEL4中没有的特性如果你是一个企业用户或开发人员,你很可能正在使用RHE4或计划使用RHEL5。目前我们使用RHEL4开发我们的个业应用产品。如果你是一名 seLinux的开发人员或早期使用者,你可能正在使用某 Fedora ceυre版木或某些其他发行版。无论你是哪种情况,木书都将会向你提供大量的关于如何使用 SELinuX和开发 SELinux策略的信息。如何取得本书中的样例策略贯穿本书,我们给出了大量的 SElinux策略样例。这些样例基于 Red hat发布 FedoraCore4附带的 strict策略。我们在第1l章详细地介绍了这个策略。C4默认使用的是 target策略,而不是 strict策略,因此你必须用更多的步骤来获得我们样例使用的基础策略。在第三部分中,我们扩大了视野,涵盖了其但类型的策略。在附录A中,我们提供了如何获得本书使用到的样例策略源文件的说明。目录第一部分: SELinux摘要1第1章.背景11.1.软件失效的必然性11.2.操作系统访问控制安全的进展22.1.引用监视程序原理21.2.2.任意访问控制的问题31.2.3.强制访问控制的起源31.2.4.更好的强制访问控制41.2.5. sELinux的发展51.3.小结6练习6第2章:概念12.1.类型强制的安全上下文12.1.1.对比 SELinux和标准 Linux22.1.2.安全上下文22.2.类型强制访问控制32.2.1.类型强制示例42.2.2.域转变的问题52.2.3.标准 Linux安全中的 setuid程序62.2.4.域转变72.2.5.默认域转变: type transition指令2.3.角色92.4. SELinux中的多层安全102.5.精通 SELinux特性112.5.1.重游 passwd示例122.5.2精读策略文件122.6.小结13练习14第3章.架构13.1.内核架构13.1.1.LSM框架13.1.2. SELinuX LSM模块23.2.用户空间客体管理器43.2.1.用户空间客体管理器的内核支持43.2.2.策略服务器架构53.3. SELinux策略语言63.3.1.本地 SELinux策略语言编译器63.3.2.单个策略中的源策咯模块83.3.3.载入式策略模块83.3.4.构建和安装单策略83.4.小结10练习10第部分: SELinux策略语言1第4章.客体类别和许可14.1. seLinux中客体类别的用途14.2.在 SELinux策略中定义客体类别24.2.1.声明客体类别24.2.2.声明并连接客体类别许可34.3.有效的客体类别54.3.1.与文件相关的客体类别54.3.2.与网终有关的客体类别74.3.3. system V IPC客体类别84.3.4.其它杂类客体类别84.4.客体类别许可示例94.4.1.文件客体类别许可94.4.2.进程客体类别许可115.使用Apol研究客体类别144.6.小结16练习16第5章-类型强制15.1.类型强制15.2.类型、属性和别名25.2.1.类型声明25.2.2.类型和属性35.2.3.关联类型和属性45.2.4.别名55.3.访问向量规则65.3.1.通用AV规则语法75.3.2.允许( allow)规则115.3.3审核( audit)规则1l5.3.4. neverallow规则135.4.类型规则145.4.1.通用类型规则语法155.4.2类型转换规则165.4.3.类型改变规则185.5.用Apol研究类型强制规则195.6.小结21练习22第6章.角色和用户16.1. SELinux中基于角色的访问控制16.1.1. SELinux中RBAC概述26.1.2.用角色管理用户权限36.1.3.客体安全上下文中的用户和角色46.2.角色和角色语句46.2.1.角色声明语句46.2.2.角色a11w规则56.2.3.角色转换规则56.2.4.角色控制语句66.3.用户和用户语句76.3.1.声明用户及其关联的角色76.3.2.将 Linux用户映射到 SELinuX用户86.4.用Apol分析角色和用户86.5.小结10练习11第7章.约東17.1.近距离查看访问决定算法7.2.约束语句27.3.标记转换约束57.4.小结8练习8第8章.多层安全8.1.多层安全约束8.2.开启了MLS后的安全上下文18.2.1.安全级别定义28.2.2MLS对安全上下文的扩展48.3.MS约束58.3.1. mlsconstrain语句58.3.2. mlsvalidatetrans语句88.4.MS的其它作用108.5.小结11练习11第9章.条件策略19.1.条件策略概述19.2.布尔变量29.2.1.布尔变量定义29.2.2.在运行系统中关联布尔变量29.2.3.对布尔值的永久性改变9.3.条件语句69.3.1.条件表达式和规则列表69.3.2.条件语句限制99.3.2.1.支持的语句99.3.2.2.嵌套条件话句109.4.使用Apol检查布尔和条件策略109.5.小结14练习14第10章.客体标记110.1.客体标记简介110.2.与文件有关的客体标记210.2.1.扩展属性的文件系统( fs use xattr)410.2.1.1.扩展属性文件系统的标记行为510.2.1.2.在扩展属性文件系统中管理安全上卜文(文件上卜文)610.2.2.基于任务的文件系统( fs use task)710.2.3.基于转换的文件系统( fs use trans)710.2.4.普通安全上下文标记( genesco)810.2.4.1. gencon语句绀粒度标记810.2.4.2.使用 gentscon语句标记传统文件系统1010.3.网终和套接字客体标记1010.3.1.网络接口标记( netifcon)10.3.2.网络节点标记( nodecon)1110.3.3.网络端口标记( porton)1210.3.4.套接字标记1310. 1. System V IPC 1110.5.其它客体标记1410.5.1. capability客体标记1510.5.2. process客体标记1510.5.3. system和 security客体标记1510.6.初始安全标识符1510.7.使用Apo1研究客体标记1710.8.小结18练习19第三部分:创建和编写 SELinux安全策略1第11章.原始示例策略111.1.管理构建过程的方法111.2. strict小例策略211.2.1.策略源文件结构概述311.2.1.1.客体类别和许可定义411.2.1.2.域类型和策略规则411.2.1.3.独立的资源类型511.2.1.4.其它顶层文件和目录511.2.1.5.安全上下文标记611.2.1.6.应用程序配冒文件711.2.2.分析示例策略模块711.2.2.1.定义类型和域911.2.2.2.指定域转换规则1011.2.2.3.条件策略小例1111.2.2.4.ping命令的网络和其它访问1111.2.2.5.审核规则1211.2.2.6.文件安全上下文标记1211.2.3. strict小例策略构建选项12
    2020-12-05下载
    积分:1
  • 2013国外远控DarkComet最新免杀汉化版
    国外远控DarkComet最新汉化版,并且经过了免杀处理,完美过360全套。 如果再次被查杀的话请自己手动定定位,改下特征码就行了。祝大家技术天天向上。
    2020-12-11下载
    积分:1
  • 高斯过回归模型MATLAB代码
    提供高斯过程模型回归的预测方法,可以很好地进行模型预测
    2021-05-06下载
    积分:1
  • 模拟交通模型
    这是一个模拟交通系统模型的论文及代码,实现对城市交通系统的模拟,matlab实现,可直接运行。
    2020-11-05下载
    积分:1
  • UG二次开发创建曲面
    本示例演示了从文件中读取数据点并把读取的点在UG中画出来,然后根据每个截面上的点拟合成样条曲线并对曲线进行光顺等操作,最后通过曲线创建曲面的过程。
    2020-11-03下载
    积分:1
  • 自动驾驶系列报告二---决策篇
    自动驾驶决策层、自动驾驶整车厂方案(特斯拉、奥迪A8、百度、Waymo)
    2020-12-06下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载