加载中
openssl d2i_TYPE分析

由宏生成的代码: X509 *X509_new(void) { return (X509 *)ASN1_item_new(X509_it()); } void X509_free(X509 *a) { ASN1_item_free((ASN1_VALUE *)a, X509_it()); } X509 *d2i_X509(X509 .....

03/26 18:07
30
crack DOS/4GW游戏——免CD免光驱

以《大唐英雄传》为例。 用IDA pro反汇编NLB.EXE,注意要选择Linear Executable (LE)模式,因为dos4gw程序是这种模式(可参考open watcom文档) 可以推测出逻辑大致如下: char cdromNo = -...

2022/09/04 18:35
30
openssl SSL客户端例子

以百度为目标服务端,获取证书链 openssl s_client -showcerts -connect www.baidu.com:443

2022/06/12 12:09
344
内存对齐

对齐原因 平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 性能原因:数据结构(尤其是栈)...

2022/01/14 22:01
42
malloc(0)和free(NULL)

先看man 3 free的原话 The malloc() function allocates size bytes and returns a pointer to the allocated memory. The memory is not initialized. If size is 0, then malloc() returns...

2022/01/11 20:42
112
mount中文

sudo dnf install langpacks-zh_CN mkdir usb sudo mount -o uid=$(id -u),utf8 /dev/sdb1 usb

dnf
2022/01/10 14:50
41
算法导论2nd 15.4-6 最长递增子序列 O(n lgn)

#include #include #include std::size_t LIS_length(const std::vector &s) { std::vector dp; // dp[i]是长度为i+1的最长递增子序列的最后一个值 f......

2021/03/15 21:08
318
MyMinimad ── Linux下用libmad写的mp3解码播放程序(四)

优化了内存使用,不再使用mmap映射整个文件到内存 /* * 本程序是从 minimad 改进而来,如要更详细的说明请参看 minimad.c * * Gu Zhou, 2009/12/25, SiChuan University, China * * 系统: ...

2019/11/21 00:15
406
MyMinimad ── Linux下用libmad写的mp3解码播放程序(三)

MyMinimad ── Linux下用libmad写的mp3解码播放程序 MyMinimad ── Linux下用libmad写的mp3解码播放程序(二) csdn的博客帐号当年那个事件中被盗了,相应的邮箱也被盗了,这次写在这里。 /*...

2019/10/27 00:18
709
非c++1x实现UniquePtr

#ifndef UNIQUEPTR_H #define UNIQUEPTR_H template<typename _T> struct default_delete { void operator()(_T *ptr) { delete ptr; } }; template<typename _T, typename _D......

2019/10/23 12:15
45
GB18030Cut

int GB18030Cut(const unsigned char *buf, int max) { int i = 0; for (; i < max;) { if (0 == buf[i]) { break; } if (buf[i] <= 0x7F) ......

2019/10/23 12:01
40
算法导论2nd 10.2-8 单指针双向链表

思路:按提示是将指针转换为整型数,然后做异或保存为np。我们知道对于异或操作来说,如果c = a ^ b,那么c ^ a = b且 c ^ b = a。也就是说对于异或的结果,可以根据其中一个原操作数解出另一...

2019/06/22 16:48
243
fedora dnf.repo

# change /etc/dnf/dnf.conf: gpgcheck=0 [fedora] name=Fedora $releasever - $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$basearch...

2019/05/26 19:38
154
算法导论2nd 10.1-7

思路:两个队列q1和q2,两个队列指针pusher和poper分别指向q1和q2,push时调用pusher->enqueue,然后将poper里的元素全部dequeue并enqueue到pusher,最后交换pusher和poper。 #include <iost...

2019/05/14 17:20
60
算法导论2nd 10.1-4

两个细节 循环数组的实际size为n+1 enqueue时tail和head不允许重合(保证元素个数为n),dequeue时可以重合 class Queue { int *array; int head, tail, size; Queue(Queue &&q) = delete; ....

2019/05/14 10:08
29
算法导论2nd 9.1-1

为方便处理,设输入规模n为2的次方。 算法:将数组划分成对,比较选出最小的元素,这些选出的最小元素再次划分成对,再比较选出最小元素,重复这个过程,直到找出整个数组的最小元素。这个过...

2019/05/07 01:19
429
C++引用计数原理和实现

引用计数主要用于自动垃圾回收,C++程序直接运行于cpu,本身是没有垃圾回收功能的,但可以通过引用计数实现一个带半自动垃圾回收功能的类,之所以称之为半自动,典型的是因为它不像java/pyth...

2019/04/17 13:34
1.3K
shared_ptr源码分析

源码来自llvm 8.0.0的libc++,精简了一些不太重要的部分,重要的地方加了注释。目的是学习智能指针的实现原理。关于shared_ptr的线程安全问题,cppreference上的描述: All member functions...

2019/04/15 23:06
1.2K
epoll源码分析

按如下流程来分析epoll: 系统级的初始化 创建epollfd 向epollfd添加fd(本文只关心添加) 事件到来,激活唤醒 epoll_wait 系统级的初始化 static int __init eventpoll_init(void) { struc...

2019/04/11 23:08
116

没有更多内容

加载失败,请刷新页面

返回顶部
顶部