摘要:
一、函数的引出 首先是这个函数在笔试的时候经常会被问到,另一个就是C库实现的一些技巧以及这个函数本身的一些保证。 二、说明 memmove的说明:将src拷贝到dst,其语义等价于首先将源拷贝到一个和目的、源都不搭的空间中,然后将这个中间空间的内存拷贝到目的空间。 这里最重要的就是当源和目的之间有重 阅读全文
摘要:
一、问题的引入 在使用IPV6转化的过程中,为了兼容IPV4和V6版本,一个兼容的方法就是使用这个getaddrinfo函数,这个函数在windows下同样存在,应该是一个跨平台的接口。 这个接口的一个特殊之处就是这个接口可以传入hostname和servername,这两个变量都是可以为一个字符串 阅读全文
摘要:
一、报文的分层转发 当我们上层通过write来发送消息的时候,会走到socket文件系统的发送接口。 首先,socket是整个系统中所有网络设备在用户态的一个抽象,也就是一个socket可以为appletalk,bluetooth一样,代表不同的协议类型。所以此时首先经过一次协议类型的转发,整个最为 阅读全文
摘要:
一、查看方法。 通过gcc -S -g 生成的汇编代码中包含了一些使用树脂表示的调试信息,但是这些信息本身如果我们一个一个看文档的话还是比较麻烦的,所以我们只有通过其它的方法来实现。还要readelf提供了-w功能来显示整个结构中调试信息的格式。我们就可以结合生成的汇编文件和对应的readelf的输 阅读全文
摘要:
一、问题 对于多线程的时候,为了避免堆栈被破坏之后堆栈已经不再有效,从而发生二次内存访问违例异常。有些任务会在自己的系统启动的时候注册一个信号专门使用的异常信号,但是对于多线程的时候,理论上就可以应该为每个线程都分配一个私有的信号堆栈。但是这样对于系统内存消耗会特别多,可能系统根本负担不起。有些系统 阅读全文
摘要:
协程是高并发环境下的一个重要需求,它的核心实现基础是执行上下文的挂起和恢复。由于python是一种解释性语言,它的每个函数调用都是基于独立的栈帧完成,所以天生对于协程的支持天然友好。事实上,这种挂起/恢复不仅可以用于异步,而且还可以用于迭代器的实现。
下面结合生成器/协程对象的send接口中参数的意义来看下python对于协程的实现基础。 阅读全文
摘要:
作为一个相对精细的语言,python中可以定义class,这是python座位高级语言的一个重要特性,也是python语法中非常有意思的功能。但是这个class和c++/java之类的高级语言存在很大差别,在整个实现机制上来看也是一种相对另类的实现。这里主要看下python中对于一个类方法的实现。 阅读全文
摘要:
在C/C++中,函数的定义和调用由编译器和链接器完成;而python中函数定义和调用都是在运行时执行,这就意味着函数定义也需要有对应的python指令。
当一个函数定义包含在另一个函数中,外层还输被调用,内层函数定义对应的指令会被再次执行,这个执行会生成一个新的function对象还是复用之前可能已经存在的函数定义? 阅读全文
摘要:
python是动态语言的一个很意思的特性,特别是对于从C++程序员来说。之前在看lua的实现时大致看过其实现原理,现在再结合python这个相对于lua来说重量级的语言来看下closure如何实现 阅读全文
摘要:
在python中,类是一个大型项目中必不可少的特性,它是用户定制结构的基础,用户可以通过该功能来进行模块化,进而组合出大型软件项目。在类的接口实现中,self又是一个出现频率极高的概念,而它的实现对于理解python解释器也是一个必要门槛。 阅读全文