上一页 1 2 3 4 5 6 7 8 9 ··· 30 下一页
摘要: 首先来思考一个问题: 设计一个公平的洗牌算法 1. 看问题,洗牌,显然是一个随机算法了。随机算法还不简单?随机呗。把所有牌放到一个数组中,每次取两张牌交换位置,随机 k 次即可。 如果你的答案是这样,通常面试官会进一步问一下,k 应该取多少?100?1000?10000? 很显然,取一个固定的值不合 阅读全文
posted @ 2019-07-20 10:08 red_leaf_412 阅读(4935) 评论(0) 推荐(0) 编辑
摘要: adb工具即Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互。在某些特殊的情况下进入不了系统或者需要自动化测试的时候,adb就派上用场了 1 手机进入开发者模式,不同手机的进入方式不一样。一般是设置->关于手机,然后连续 阅读全文
posted @ 2019-07-19 19:27 red_leaf_412 阅读(2324) 评论(0) 推荐(0) 编辑
摘要: 一 有40亿个整数,再给一个新的整数,需要判断新的整数是否在1亿个整数中。 此处需要用到bitmap方法,每个整数用一个bit表示,1表示存在,0表示不存在。因此一个4字节的int=32个bit也就是可以表示32个数字,那么1亿个数字需要 100000000/32个int型。也就是需要申请10000 阅读全文
posted @ 2019-07-17 10:16 red_leaf_412 阅读(988) 评论(0) 推荐(0) 编辑
摘要: 一般来讲,应用程序使用的内存空间里有如下的默认区域: 1 栈:用于维护函数调用的上下文。栈通常在用户空间的最高地址出分配,通常有数兆字节的大小 2 堆:堆是用来容纳应用程序动态分配的内存区域。比如使用malloc和new分配内存就从堆里分配。 3 可执行文件镜像:这里存储着可执行文件在内存里的映射 阅读全文
posted @ 2019-06-25 15:55 red_leaf_412 阅读(4316) 评论(0) 推荐(1) 编辑
摘要: 静态链接情况下,操作系统接着就把控制权交给可执行文件的入口地址,然后程序开始执行。但在动态链接情况下,操作系统还不能在装载完可执行文件后就把控制权交给程序。因为可执行文件依赖很多共享对象。这个时候可执行文件中对于很多外部符号的引用还处于无效地址的状态,也就是还没有跟相应的共享对象中的实际位置链接过来 阅读全文
posted @ 2019-06-24 14:17 red_leaf_412 阅读(492) 评论(0) 推荐(1) 编辑
摘要: 对于之前的动态链接生成的可执行文件,来看下进程的地址空间分布。首先在pro1.c中加入sleep(-1)进行延时,然后将可执行完文件转入后台处理,通过pid来查询进程的地址空间分布。 cat /proc/3488/maps 558a542d3000-558a542d4000 r-xp 0000000 阅读全文
posted @ 2019-06-13 17:43 red_leaf_412 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 系统为ubuntu18.04, 在编译内核模块insmod helloworld.ko的时候提示如下错误。 出现此问题的原因是,Ubuntu Kernel 使用 EFI_SECURE_BOOT_SIG_ENFORCE 内核配置,这样会阻止内核载入第三方模块 解决方法: 1 sudo apt inst 阅读全文
posted @ 2019-06-11 14:05 red_leaf_412 阅读(1907) 评论(0) 推荐(0) 编辑
摘要: Pip-pop pip-grep主要是用于方便查看Requirements.txt中那些模块是安装了的。也就是通过输入的然后模块名称然后在Requirements.txt中进行查询。里面比较难的就是docopt这个模块。 docopt: docopt 本质上是在 Python 中引入了一种针对命令行 阅读全文
posted @ 2019-05-12 14:51 red_leaf_412 阅读(620) 评论(0) 推荐(0) 编辑
摘要: ubuntu下可以直接使用apt install nginx来安装 安装完成后,检查Nginx服务的状态和版本 systemctl status nginx nginx.service - A high performance web server and a reverse proxy serve 阅读全文
posted @ 2019-05-11 21:36 red_leaf_412 阅读(437) 评论(0) 推荐(0) 编辑
摘要: Posix共享内存区:共享内存是最快的可用IPC形式。它允许多个不相关(无亲缘关系)的进程去访问同一部分逻辑内存。如果需要在两个进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序 阅读全文
posted @ 2019-05-11 15:35 red_leaf_412 阅读(334) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 30 下一页