摘要: 第九章 类 类的创建: class Dog: def __init__(self, name, age): # 初始化函数 self.name = name self.age = age def sit(self): print(f"{self.name} is now sitting") clas 阅读全文
posted @ 2022-08-22 01:38 227569hy 阅读(48) 评论(0) 推荐(0)
摘要: 第七章 用户输入和while循环 message = input("提示信息") message = input(str) #str可以提前赋值 message为字符串,需要数字,要先使用int()转化。 第八章 函数 定义: def print1(str): print(str.tittle()) 阅读全文
posted @ 2022-08-21 18:45 227569hy 阅读(45) 评论(0) 推荐(0)
摘要: ###第四章操作列表 函数range(m,n) 包含m-n的数,包括m,不包括n,左闭右开。 range(m,n,d) d为步长。 value ** 2 其中**表示乘方。 列表解析: [expression for iter_val in iterable if cond_expr] [expre 阅读全文
posted @ 2022-08-19 03:25 227569hy 阅读(63) 评论(0) 推荐(0)
摘要: 7.13 库打桩机制 库打桩:允许截获对共享库的调用,转而执行自己的代码。使用这个机制可以追踪某个特殊库函数的调用次数,验证和追踪它的输入和输出值,或者替换它。 需要创建一个包装函数,原型和目标函数完全一样。通常包装函数执行自己的逻辑,然后调用目标函数,再返回目标函数。 打桩可以发生在编译时,链接时 阅读全文
posted @ 2022-08-17 22:07 227569hy 阅读(57) 评论(0) 推荐(0)
摘要: ##python语法基础 python解释器提供一个traceback,指出解释器尝试运行代码时的错误信息。 ###第二章变量和简单数据类型 在字符串中使用变量: f字符串: 实例代码: first_name = "ada" last_name = "lovelace" full_name = f" 阅读全文
posted @ 2022-08-17 03:41 227569hy 阅读(54) 评论(0) 推荐(0)
摘要: ###7.11 从应用程序中加载和链接共享库 共享库的作用例子: 分发软件,可以用户下载共享库来更新软件。 构建高性能的web服务器,不用fork和execve子进程,而是可以在运行时更新已经存在的函数,以及添加新函数。 #inlcude<dlfc.h> void *dlopen(const cha 阅读全文
posted @ 2022-08-16 21:31 227569hy 阅读(80) 评论(0) 推荐(0)
摘要: 加载器运行时,它创建类似与该表的内存映像,在程序头部表的引导下,加载器将可执行文件的片复制到代码段和数据段。然后加载器跳转到程序的入口点(_start函数的地址)。这个函数定义在系统目标文件ctrl.o里。_start函数调用系统启动函数__libc_start_main,该函数定义在libc.so 阅读全文
posted @ 2022-08-11 21:49 227569hy 阅读(85) 评论(0) 推荐(0)
摘要: ###7.7重定位 建立定义和引用对应关系之后,就可以进行重定位了,合并输入模块,并为每个符号分配运行时内存。 重定位包括两步: 重定位节和符号定义:合并所有目标文件的类型相同的节,同时链接器把运行时内存的地址赋给新的节和输入模块定义的每个符号。这一步完成之后程序的每条指令和全局变量都有唯一的运行时 阅读全文
posted @ 2022-08-10 21:51 227569hy 阅读(172) 评论(0) 推荐(0)
摘要: 7.6.3 链接器使用静态库来解析引用 链接器维护三个集合:E、D、U。 E:可重定位目标文件的集合 D:已定义的符号集合 U:未解析的符号的集合 第一步:链接器判断输入文件f的类型,如果是目标文件,则放入集合E中,同时根据f更新D和U。 第二步:如果f是一个文档文件,那么链接器使用f中的每个存档文 阅读全文
posted @ 2022-08-09 21:45 227569hy 阅读(68) 评论(0) 推荐(0)
摘要: 7.6符号解析 重整:编译器把每个唯一的方法和参数列表组合编码成一个对链接器来说唯一的名字。(C++,JAVA 重载会使用) 7.6.1 链接器解析多重定义的全局符号 函数和已初始化的全局变量为强符号,未初始化的全局变量为弱符号 链接器会按照以下规则处理强符号和弱符号: 1、 不允许强符号被多次定义 阅读全文
posted @ 2022-08-08 21:33 227569hy 阅读(74) 评论(0) 推荐(0)