`
cwqcwk1
  • 浏览: 87275 次
文章分类
社区版块
存档分类
最新评论
文章列表
strtok函数 在C/C++中, strtok函数被用来拆分字符串 strtok函数原型: char *strtok( char *str, const char *delims ); strtok函数例子: char str[] = "now#the tiger is coming#please run away"; char delims[] = "#"; char *result = NULL; result = strtok( str, delims ); while( result != NULL ) { print ...
托盘程序就是运行在系统托盘区域的程序,显示为桌面右下角显示区域的一个小图标。通常托盘程序带有几种功能:托盘菜单,托盘图标,气泡提示,托盘提示。例如QQ收到消息后,会在系统右下角显示闪动QQ图标。 主程序Tray.cpp #include <windows.h> #include "resource.h" #define WM_TRAY (WM_USER + 100) #define WM_TASKBAR_CREATED RegisterWindowMessage(TEXT("TaskbarCreated")) #define APP ...
erlang自带了类似makefile的功能,Emakefile,可以自动化编译整个erlang项目的代码,使用非常方便,直接运行erl -make即可自动化编译。 Erlang项目编译 一个简单的例子,保存为Emakefile文件: {'src/*', [debug_info, {i,"include"}, {outdir,"ebin"} ] }.使用erl -make编译。 erlang将查找当前目录有没有Emakefile这个文件,然后根据文件指示,对src目录所有的模块进行编译,include指定了编译需要的文件目录,eb ...
Erlang之父Joe Armstrong在描述Erlang的设计要求时,就提到了软件维护应该能在不停止系统的情况下进行。在实践中,我们也因为这种不停止服务的热更新获益良多。那么Erlang是如何做到热更新的呢?这就是本文要讨论的问题。 如何使 ...
Erlang最开始是为了电信产品而发展起来的语言,因为这样的目的,决定了她对错误处理的严格要求。Erlang除了提供exception,try catch等语法,还支持Link和Monitor两种监控进程的机制,使得所有进程可以连接起来,组成一个整体。当某个进程出错退出时,其他进程都会收到该进程退出的消息通知。有了这些特点,使用erlang建立一个简单,并且健壮的系统就不是什么难事。 进程双向监控-Link link方式可以建立进程之间的双向链接关系,当其中一个进程退出时,另一个进程会收到该进程退出的消息。 例子1: -module(test). -export([start/0]). st ...
网络通讯常用的有2种:文本通讯和二进制通讯。php与erlang之间文本通讯比较简单,这里不做讨论,主要讨论php与erlang实现二进制通讯。 通讯示例 erlang端代码: -module(server). -export([start/0]). -define( UINT, 32/unsigned-little-integer). -define( INT, 32/signed-little-integer). -define( USHORT, 16/unsigned-little-integer). -define( SHORT, 16/signed-little-integ ...
这两天在研究 erlang 如何构建 TCP 服务器,看到一篇文章,基于Erlang OTP构建一个TCP服务器,里面讲述了两种混合型Socket的实现方法,着实让人欢欣鼓舞。对比老外写的Building a Non-blocking TCP server using OTP principles,作者写的那个有点简单。本文将结合这两篇文章,继续讨论Erlang/OTP 构建TCP服务器的具体实现,以示例演示如何如何使用标准Erlang/OTP行为创建一个简单的无阻塞的TCP服务器。 TCP Socket模式 主动模式{active, true},非阻塞方式接收消息,但在系统无法应对超大 ...
网络通讯常用的有2种:文本通讯和二进制通讯。文章分别在两种方式上实现erlang与c++通讯。 一、erlang 与 c++ 行通讯 行通讯是一种文本通讯,格式如“cmdargs\n”,比较简单,erlang接收数据也比较简单,可以设置参数 {packet, line} ...
Erlang/OTP 监督者(Supervisor)的作用是负责其子进程的启动,停止和监视。监督者的基本思路是,保持其子进程能正常运行,并在必要时重新启动子进程。 一、Erlang/OTP Supervisor 基本参数 Erlang/OTP Supervisor的基本参数有进程策略,进程id,进程启动函数,进程重启,进程关闭,进程类型,进程模块。 -module(test_sup). -behaviour(supervisor). -export([start_link/1, init/1]). start_link(_) -> io:form ...
如果只是将当前时间转成时间戳,可以直接使用new Date().getTime()/1000;但如果是将某个具体时间或日期转成Unix时间戳,ie不支持像new Date(“2013-1-1”) 这样带参数的方法,将返回NaN 对此,我写了以下函数,支持ie6+,谷歌,火狐等浏览器: function getTime(day){ re = /(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day); return new Date(re[1],(re[2]||1)-1,r ...
在Erlang/OTP ,Application表示作为一个单元,可以启动和停止,执行一些特定功能​​的组件,并可以在其它系统中重新使用。Application控制器的模块接口,是在每一个Erlang运行时系统启动的进程,并包含用于控制Application(例如启动和停止Application),以及访问Application的信息(例如配置参数)的功能。 Erlang/OTP Application基本结构: 一个 Application 至少包含了3部分的内容:应用模块、监督者模块、资源文件。 应用模块(test_app.erl) : -module(test_app). -behavi ...
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。文章将着重说明 如何使用 Mnesia 数据库。 创建 ...
erlang 有好几种常用的判断结构语句,如 if、case、guard 等。文章将分别对if / case /guard的特点做介绍,以及用例说明 1、if 结构 if Condition 1 -> Action 1; Condition 2 -> Action 2; Condition 3 -> Action 3; Condition 4 -> Action 4 end Erlang是这样工作的:先对Condition 1求值,如值为true,那 ...
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 Mnesia 数据库如何实现SQL查询,实现select / insert / update / where / order by / join / limit / delete等SQL操作。 示例中表结构的定义: %% 账号表结构 -record( y_account,{ id, account, password }). %% 资料表结构 -record( y_info, { ...
Erlang是一种面向并发的编程语言,可以应对大规模并发活动,将越来越受关注和使用,但是ErlangIDE却少得可怜。对比了一下,我觉得erlide比较合适。使用erlide开发环境的好处有erlang项目管理,代码自动编译,控制台调试,代码导 ...
Global site tag (gtag.js) - Google Analytics