Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Erlang中的模块与模式匹配

Erlang中的模块与模式匹配

模块是Erlang的基本代码单元,erl文件编译后以.beam作为扩展名,采用UTF8字符集,.erl文件示意如下:-module(模块名,与存放模块的文件名相同)-export([方法名/输入参数的个数])Method1( {a,b,c})->a*b*c;Mehtod2({d,e})->d-e.模块属性有两种类型:预定义型和用户定义型。Erlang中用于代表函数的数据类型被称为fun,相当于python中的lambda,一般用于1) 对列...
编程基本功触类旁通

编程基本功触类旁通

Spark 是用scala写的,storm是clojure开发的,docker采用了go, 各种编程语言层出不穷,但其实都是马甲,作为一个程序员,我们需要理解那些相通的本质,做到触类旁通.程序中的基本逻辑控制——跳转,在汇编语言中早就有满足条件后跳转的命令了。所谓跳转,就是告诉机器到那去干活. 就像过去的接线员那样,因而C语言中有个goto语句,它是跳转的最直接的解释. 如果程序中goto多了,恐怕没谁能看懂了. 为了避免goto语...
Linux内核源码学习之 内核页表打印

Linux内核源码学习之 内核页表打印

本学期Linux内核实验最后是打印内核页表,线性地址----物理地址我看到这个实验题目的时候想到的就是这个init函数(因为这部分当时就是我讲的^_^),这个函数是初始化linux内核页表的,也就是将32位系统中3G以上的896M线性地址映射到物理地址的0-896M,在其调用者paging_init函数中还处理了其他的情况,比如固定映射之类的。那属于高端内存映射那一块的内容,目前我们先看一下如何将内核页表3G~3G+896M的线性地址对应的物理地址打印出来...
Java访问模式(Visitor者模式)

Java访问模式(Visitor者模式)

Visitor定义:作用于某个对象群中各个对象的操作。它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作。在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为。为何使用Visitor模式Java的Collection(包括Vector和Hashtable)是我们最经常使用的技术,可是Collection好象是个黑色大染缸,本来有各种鲜明类型特征的对象一旦放入后,再取出时,这些类型就消失了。...
C++ 全局变量初始化学习笔记

C++ 全局变量初始化学习笔记

注意:本文所说的全局变量指的是 variables with static storage,措词来自 C++ 的语言标准文档。什么时候初始化根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?是编译时还是运行时?答案是既有编译时,也可能会有运行时(seriously), 从语言的层面来说,全局变量的初始化可以认为分成以下两个阶段(c++11 N3690 3.6.2):...
Linux下动态链接实现原理

Linux下动态链接实现原理

符号重定位讲动态链接之前,得先说说符号重定位。C/C++ 程序的编译是以文件为单位进行的,因此每个 c/cpp 文件也叫作一个编译单元(translation unit), 源文件先是被编译成一个个目标文件, 再由链接器把这些目标文件组合成一个可执行文件或库,链接的过程,其核心工作是解决模块间各种符号(变量,函数)相互引用的问题,对符号的引用本质是对其在内存中具体地址的引用,因此确定符号地址是编译,链接,加载过程中一项不可缺少的工作,这就是所谓的符号重定位...
C++11 内存模型详解

C++11 内存模型详解

关于乱序首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序并不总是按照源码中的顺序被执行的,此谓之乱序,乱序产生的原因可能有好几种:编译器出于优化的目的,在编译阶段将源码的顺序进行交换。程序执行期间,指令流水被 cpu 乱序执行。cache 的分层及刷新策略使得有时候某些写,读操作的顺序被重排。以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果其实相同:写出来的代码与最后被执行的代码是不一致的。这个事实可能会让人很惊讶:有这样...
C++11 内存模型详解(续)

C++11 内存模型详解(续)

可见性与乱序在说到内存模型相关的东西时,我们常常会说到两个名词:乱序与可见性,且两者经常交错着使用,容易给人错觉仿佛是两个不同的东西,其实不是这样,他们只是从不同的角度来描述一个事情,本质是相同的。比如说,我们有如下代码:atomic<int> g_payLoad = {0};atomic<int> g_guard = {0};// thread 0void foo1(){g_payLoad.store(42, memory_ord...
Apple iOS安全措施绕过漏洞(CVE-2014-4457)

Apple iOS安全措施绕过漏洞(CVE-2014-4457)

发布日期:2014-11-17更新日期:2014-11-21受影响系统:Apple iOS < 8.1.1描述:BUGTRAQ ID: 71143CVE(CAN) ID: CVE-2014-4457OS X(前称Mac OS X)是苹果公司为麦金塔电脑开发的专属操作系统的最新版本。iOS是由苹果公司为移动设备所开发的操作系统,支持的设备包括iPhone、iPod touch、iPad、Apple TV。Apple iOS在调试功能的实现上存在权限问题...
C++ 模板元编程学习心得体会

C++ 模板元编程学习心得体会

快速翻了一遍传说中的、大名鼎鼎的 modern c++ design,钛合金狗眼顿时不保,已深深被其中各种模板奇技淫巧伤了身。。。论语言方面的深度,我看过的 c++ 书里大概只有 insight c++ object model 能与之一战吧?难怪 Herb 老喜欢调侃 Andrei 在模板方面是个可怕的家伙,就从这本书的质量来看,Andrei 当之无愧。c++ 模板元编程的力量远比第一眼印象里所能想像得要强大,当然,这个结论并不明显,很多时候人们也就拿模...
<< 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 >>