源码来自llvm 8.0.0的libc++,精简了一些不太重要的部分,重要的地方加了注释。目的是学习智能指针的实现原理。关于shared_ptr的线程安全问题,cppreference上的描述: All member functions...
源码来自llvm 8.0.0的libc++,精简了一些不太重要的部分,重要的地方加了注释。目的是学习智能指针的实现原理。关于shared_ptr的线程安全问题,cppreference上的描述: All member functions...
按如下流程来分析epoll: 系统级的初始化 创建epollfd 向epollfd添加fd(本文只关心添加) 事件到来,激活唤醒 epoll_wait 系统级的初始化 static int __init eventpoll_init(void) { struc...
C++是静态类型语言,提供了丰富的数据类型,它的简单声明的文法如下(摘自C++11标准): simple-declaration: decl-specifier-seq(opt) init-declarator-list(opt) ; attribute-specifier-se...
如: 通过N个线程顺序循环打印从0至100,如给定N=3则输出: thread0: 0 thread1: 1 thread2: 2 thread0: 3 thread1: 4 ..... 解:N个线程对应N个条件变量,依次激活下一个线程 #include <iost...
结论 两者都基于struct poll_wqueues(poll机制),调用file.f_op->poll获得事件mask; select以事件类型为切入点,poll以fd为切入点; 磁盘文件不可以poll。 核心代码 struct poll_table_st...
结论 基于unix“一切皆文件”的思想,创建名为sockfs的伪文件系统(挂载点为socket:,由于不是/,所以无法直接看到,但可以通过ls -l /proc/$pid/fd/看到),实现通用文件系统的操作接口,这...
git_prompt() { local prompt= local branch=`git branch 2>/dev/null | sed -n 's/^* //p'` test -z "$branch" && return local status=$(git status -s | awk '{a[$1]+=1}END{for(i in a)p...
set uuid=2C69-9ECA menuentry "Windows" { insmod ntfs set root=(hd0,1) chainloader +1 } menuentry "freedos" { freedos /KERNEL.SYS } menuentry "LMT ISO" { loopback......
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"> <string>monospace</string> </test> <e......
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default%20Settings] "Colour0"="217,230,242" "Colour1"="217,230,242" "Colour2"="14,27,...
import java.net.Inet6Address; import java.io.BufferedReader; import java.io.FileReader; import java.io.InputStreamReader; public final class IPv6Base { private final class Node ...
That is, an object is a contiguous region of storage; an lvalue is an expression that refers to an object. The word “lvalue” was originally coined to mean “something that ca...
val conf = HBaseConfiguration.create conf.addResource(new Path("hbase-site-xxx.xml")) // hbase-site-xxx.xml需在classpath的jar包中 conf.writeXml(System.out) // 看hbase-site-xxx....
(本题的注释中拓展了一个叫Y运算的东西) 总体思想是:lambda是匿名函数,可以通过它自己的参数来绑定自己。 (define (fib n) ((lambda (f) (f f n)) (lambda (f k) (con...
代码如下: (define (scan-out-defines exp) (define (iter exp defines nodefines) (if (null? exp) (list defines nodefines) (let ((x (car exp))) (if ...
设计一个for循环: (for <init> <condition> <update> <body>) (for ((a 0) (b 1)) (and (< a 10) (< b 11)) ((set! a (+ a 1)) (set! b (+ b 1))) (print a) (print b)) ...
题目的例子等价于: (let ((x 3)) (let ((y (+ x 2))) (let ((z (+ x y 5))) (* x z)))) 于是代码如下: (define (make-let bindings body) (cons 'let (cons bindings bod...
本题的求(1,100)的问题给出了整个题目的思路,本题涉及解递推(归)方程 设f(n,i,j)为从第n行开始(i,j)的位置,n,i,j从0开始,则从(i,j)的当前行开始(i,j)所在的位置 f(i,i,j) = (j-i-1)*2+1...
3.28 (define (or-gate a b output) (define (or-action) (let ((new-value (logic-or (get-signal a) (get-signal b)))) (after-delay or-gate-delay (lambda () (set-signal! ...
3.23 思路:((a) (b) (c))这个列表本身做正序,(c)的cdr做prev指针 (define (make-deque) (let ((front-ptr '()) (rear-ptr '())) (define (empty?) (null? front-ptr)) (define ...
没有更多内容
加载失败,请刷新页面