- 浏览: 86809 次
最新评论
文章列表
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 ...
- 2013-11-09 16:20
- 浏览 390
- 评论(0)
托盘程序就是运行在系统托盘区域的程序,显示为桌面右下角显示区域的一个小图标。通常托盘程序带有几种功能:托盘菜单,托盘图标,气泡提示,托盘提示。例如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 ...
- 2013-11-05 17:53
- 浏览 831
- 评论(0)
erlang自带了类似makefile的功能,Emakefile,可以自动化编译整个erlang项目的代码,使用非常方便,直接运行erl -make即可自动化编译。
Erlang项目编译
一个简单的例子,保存为Emakefile文件:
{'src/*',
[debug_info,
{i,"include"},
{outdir,"ebin"}
]
}.使用erl -make编译。
erlang将查找当前目录有没有Emakefile这个文件,然后根据文件指示,对src目录所有的模块进行编译,include指定了编译需要的文件目录,eb ...
- 2013-10-29 12:37
- 浏览 427
- 评论(0)
Erlang之父Joe Armstrong在描述Erlang的设计要求时,就提到了软件维护应该能在不停止系统的情况下进行。在实践中,我们也因为这种不停止服务的热更新获益良多。那么Erlang是如何做到热更新的呢?这就是本文要讨论的问题。
如何使 ...
- 2013-10-28 20:32
- 浏览 372
- 评论(0)
Erlang最开始是为了电信产品而发展起来的语言,因为这样的目的,决定了她对错误处理的严格要求。Erlang除了提供exception,try catch等语法,还支持Link和Monitor两种监控进程的机制,使得所有进程可以连接起来,组成一个整体。当某个进程出错退出时,其他进程都会收到该进程退出的消息通知。有了这些特点,使用erlang建立一个简单,并且健壮的系统就不是什么难事。
进程双向监控-Link
link方式可以建立进程之间的双向链接关系,当其中一个进程退出时,另一个进程会收到该进程退出的消息。
例子1:
-module(test).
-export([start/0]).
st ...
- 2013-10-27 17:15
- 浏览 332
- 评论(0)
网络通讯常用的有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 ...
- 2013-10-23 23:45
- 浏览 233
- 评论(0)
这两天在研究 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},非阻塞方式接收消息,但在系统无法应对超大 ...
- 2013-10-22 21:50
- 浏览 290
- 评论(0)
网络通讯常用的有2种:文本通讯和二进制通讯。文章分别在两种方式上实现erlang与c++通讯。
一、erlang 与 c++ 行通讯
行通讯是一种文本通讯,格式如“cmdargs\n”,比较简单,erlang接收数据也比较简单,可以设置参数 {packet, line} ...
- 2013-10-19 00:20
- 浏览 216
- 评论(0)
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 ...
- 2013-10-14 20:53
- 浏览 316
- 评论(0)
如果只是将当前时间转成时间戳,可以直接使用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 ...
- 2013-10-12 18:03
- 浏览 273
- 评论(0)
在Erlang/OTP ,Application表示作为一个单元,可以启动和停止,执行一些特定功能的组件,并可以在其它系统中重新使用。Application控制器的模块接口,是在每一个Erlang运行时系统启动的进程,并包含用于控制Application(例如启动和停止Application),以及访问Application的信息(例如配置参数)的功能。
Erlang/OTP Application基本结构:
一个 Application 至少包含了3部分的内容:应用模块、监督者模块、资源文件。
应用模块(test_app.erl) :
-module(test_app).
-behavi ...
- 2013-10-11 20:58
- 浏览 290
- 评论(0)
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。文章将着重说明 如何使用 Mnesia 数据库。
创建 ...
- 2013-10-09 19:38
- 浏览 655
- 评论(0)
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,那 ...
- 2013-10-06 09:47
- 浏览 465
- 评论(0)
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 Mnesia 数据库如何实现SQL查询,实现select / insert / update / where / order by / join / limit / delete等SQL操作。
示例中表结构的定义:
%% 账号表结构
-record( y_account,{ id, account, password }).
%% 资料表结构
-record( y_info, { ...
- 2013-09-30 19:56
- 浏览 445
- 评论(0)
Erlang是一种面向并发的编程语言,可以应对大规模并发活动,将越来越受关注和使用,但是ErlangIDE却少得可怜。对比了一下,我觉得erlide比较合适。使用erlide开发环境的好处有erlang项目管理,代码自动编译,控制台调试,代码导 ...
- 2013-09-28 23:28
- 浏览 473
- 评论(0)