什么是程序模块?它分为的逻辑结构模块和文件结构模块又是什么意思?

什么是程序模块?它分为的逻辑结构模块和文件结构模块又是什么意思?,第1张

C 用模块化的思想

在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。

模块有各种类知唤型,如单元 *** 作模块(换热器、精馏塔、压缩机等)、计算方法模块(加速收敛算法、最优化算法等)、物理化学性质模块(汽液相平衡计算、热焓计算等)猜岩等。 程序结构分为顺序结构、分支结构 、循环结构,其它说法都是错误的。判断程序属于哪种结构只要看几个英文命令,如有IF,SELECT就是分支结构(又称选择穗猛御结构),如有FOR,WHILE则称为循环结构。

包管理库提供了从 L ua 中加载模块的基础库。 只有一个导出函数直接放在全局环境中: require。 所有其它的部分都导出在表 package 中。

1.加载一个模块。 这个函数首先查找 package.loaded 表, 检测 modname 是否被加载过。 如果被加载过,require 返回 package.loaded[modname] 中保存的值。 否则,它试着为模块寻找 加载器 。

2.require 遵循 package.searchers 序列的指引来查找加载器。 如果改变这个序列,我们可以改变 require 如何查找一个模块。 下列说明基于 package.searchers 的默认配置。

首先 require 查找 package.preload[modname] 。 如果这里有一个值,这个值(必须是一个函数)就是那个加载器。 否则 require 使用 Lua 加载器去查找 package.path 的路径。 如果查找失败,接着使用 C 加载器去查找 package.cpath 的路径。 如果都失败了,再尝试 一体化 加载器 )。

3.每次找到一个加载器,require 都用两个参数调用加载器: modname 和一个在获取加载器过程中得到的参数。 (如果通过查找文件得到的加载器,这个茄让额外参数是文件名。) 如果加早弯载器返回非空值, require 将这个值赋给 package.loaded[modname]。 如果加载器没能返回一个非空值用于赋给 package.loaded[modname], require 会在那里设入 true 。 无论是什么情况,require 都会返回 package.loaded[modname] 的最终值。

4.如果在加载或运行模块时有错误, 或是无法为模块找到加载器, require 都会抛出错误。

一个描述有一些为包管理准备的编译期配置信息的串。 这个字符串由一系列行构成:

第一行是目录分割串。 对于 Windows 默认是 '\' ,对于其它系统是 '/' 。

第二行是用于路径中的分割符。默认值是 '' 。

第三行是用于标记模板替换点的字符串。 默认是 '?' 。

5.第四行是在 Windows 中将被替换成执行程序所在目录的路径的字符串。 默认是 '!' 。

第五行是一个记号,该记号之后的所有文本将在构建 luaopen_ 函数名时被忽略掉。 默认是 '-'。

这个路径被 require 在 C 加载器中做搜索时用到。

用于 require 控制哪些模块已经被加载的表。 当你请求一个 modname 模块,且 package.loaded[modname] 不为假时, require 简单返回储存在内的值。

这个变量仅仅是对真正那张表的引用; 改变这个值并不会改变 require 使用

让宿主程序动态链接 C 库 libname 。

5.当 funcname 为 "*", 它仅仅连接该库,让库中的符号都导出给其它动态链接库使用。 否则,它查找库中的函数 funcname ,以 C 函颤睁局数的形式返回这个函数。 因此,funcname 必须遵循原型 lua_CFunction (参见 lua_CFunction)。

6.这是一个低阶函数。 它完全绕过了包模块系统。 和 require 不同, 它不会做任何路径查询,也不会自动加扩展名。 libname 必须是一个 C 库需要的完整的文件名,如果有必要,需要提供路径和扩展名。 funcname 必须是 C 库需要的准确名字 (这取决于使用的 C 编译器和链接器)。

这个函数在标准 C 中不支持。 因此,它只在部分平台有效 ( Windows ,Linux ,Mac OS X, Solaris, BSD, 加上支持 dlfcn 标准的 Unix 系统)。

蠕虫程序的传输模块可实现程序复制功能。

蠕虫的基本结构和传播过程蠕虫的基本程序结构为: 1、传播模块:负责蠕虫的传播,这是本文要讨论的部分。2、隐藏模块:侵入主机后,隐藏蠕虫程序,防止被用户发现。 3、目的功能模块:实现对计算机的控制、监视或破坏等功能。

传播模块由可以分为三个基本模块:扫描模块、攻击模块和复制模块指或没。

蠕虫程序的一般传播过程为: 1。扫描:由蠕虫的扫描功能模块负责探测存在漏洞的主机。 当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可传播的对象。

2。攻击:攻击模唯纳块按漏洞攻击步骤自动攻击步骤1中找到的对象,取得该主机的权限(一般为管理员权限),获得一个shell。 3。复制:复制模块通过原主机和新主机的交互将蠕虫程序复制到新主机并启动。

我们可以看到,传播模块实现的实际上团棚是自动入侵的功能。所以蠕虫的传播技术是蠕虫技术的首要技术,没有蠕虫的传播技术,也就谈不上什么蠕虫技术了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12468206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存