摘要: semget semget函数创建一个新的信号量或是获得一个已存在的信号量键值。 第一个参数key是一个用来允许不相关的进程访问相同信号量的整数值。所有的信号量是为不同的程序通过提供一个key来间接访问的,对于每一个信号量系统 生成一个信号量标识符。信号量键值只可以由semget获得,所有其他的信号 阅读全文
posted @ 2016-06-29 10:36 borey 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 1,signal-ANSI C信号处理 signal是ANSI C实现的信号处理函数,signum表示信号ID,常用的信号有: handler参数有3种: a)SIG_IGN,表示忽略该信号 b)SIG_DFL,表示捕捉到某信号采用系统默认的处理方式,查看signal(7) c)自定义信号处理函数, 阅读全文
posted @ 2016-06-29 10:31 borey 阅读(316) 评论(0) 推荐(0) 编辑
摘要: FIFO又被称为命名管道,未命名的管道只能在两个相关的进程之间使用,而这两个相关的进程还要有一个共同创建了它们的祖先进程,但是FIFO,不相关的进程之间也能交换数据。 FIFO是一种文件类型。通过stat结构的st_mode成员的编码可以知道文件是否是FIFO类型,在linux下查看自己创建的FIF 阅读全文
posted @ 2016-06-29 10:28 borey 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 管道是UNIX系统IPC的最古老的形式,所有的UNIX系统都提供此通讯机制。管道有以下两种局限性: 1, 历史上,它们是半双工的(即数据只能在一个方向上流动)。现在某些系统提供了全双工管道,但是为了最佳的移植性,我们不应预先假定系统支持全双工管道。 2,管道只能在具有公共祖先的两个进程之间使用。通常 阅读全文
posted @ 2016-06-29 10:24 borey 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1,非对称加密RSA: (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。 (2)甲方获取乙方的公钥,然后用它对信息加密。 (3)乙方得到加密后的信息,用私钥解密。 2,使用CryptoPP实现RSA: CryptoPP是一套非常完整的加密解密开源解决方案,如何使 阅读全文
posted @ 2016-06-29 10:18 borey 阅读(4889) 评论(0) 推荐(0) 编辑
摘要: linux下存储时间常见的有两种存储方式,一个是从1970年01月01日 0:00:00到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构struct timeval,它精确到微妙。 而直接存储年 阅读全文
posted @ 2016-06-29 10:13 borey 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: C函数可以通过堆栈来和Lua交换数据,但有时候C函数需要在函数体的作用域之外保存某些Lua数据,那么我们想到全局变量或static变量,这样做的缺点是: registry全局注册表 解释:一个普通的Lua表,使用假索引(pseudo-index)LUA_REGISTRYINDEX访问。C代码可以访问 阅读全文
posted @ 2016-06-28 11:54 borey 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 之前在《C/C++和Lua是如何进行通信的?》一文中简单的介绍了lua与宿主之间的通信。简单的说两种不同的语言之间数据类型不一样又如何进行数据交换呢?那就是lua_State虚拟栈,通过栈操作和lua库函数,我们很轻松就能完成两者之间的数据交换。 开始之前,明确几个问题,lua中的虚拟栈的索引编号问 阅读全文
posted @ 2016-06-28 11:45 borey 阅读(8831) 评论(0) 推荐(0) 编辑
摘要: 为了实现Lua和其他语言之间的通信,Lua虚拟机为C/C++提供了两个特性: Lua_State状态机 lua_State主要是管理一个lua虚拟机的执行环境, 一个lua虚拟机可以有多个执行环境。Lua虚拟机通过维护这样一个虚拟栈来实现两种之间的通信,lua_State定义如下: 1,虚拟栈的管理 阅读全文
posted @ 2016-06-28 11:40 borey 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 为什么要在游戏中使用脚本语言? 要解释这个问题首先我们先来了解一下脚本语言的特性: 相对于C/C++这类高复杂性、高风险的编译型语言来说,Lua脚本做为一种轻量级的动态语言,简单的语言特性,精简的核心和基础库,使得语言的学习门槛大大的降低,即使是没有任何游戏经验的人都能快速上手,开发游戏功能。实际上 阅读全文
posted @ 2016-06-28 11:33 borey 阅读(6470) 评论(0) 推荐(0) 编辑