头文件 | 说明 |
---|---|
<assert.h> | 验证程序断言 |
<complex.h> | 复数算术运算支持 |
<ctype.h> | 字符分类和映射支持 |
<errno.h> | 出错码 |
<fenv.h> | 浮点环境 |
1、 管道概述及相关API应用
1.1 管道相关的关键概念
管道是Linux支持的最初Unix IPC形式之一,具有以下特点:
- 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;
- 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);
- 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
- 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。
一、基本约定
1、源文件
(1)纯PHP代码源文件只使用 <?php 标签,省略关闭标签 ?> ;
(2)源文件中PHP代码的编码格式必须是无BOM的UTF-8格式;
(3)使用 Unix LF(换行符)作为行结束符;
(4)一个源文件只做一种类型的声明,即,这个文件专门用来声明Class, 那个文件专门用来设置配置信息,别混在一起写;
大家在使用 Lua 的时候,一定会遇到不少和 nil 有关的坑吧。有时候不小心引用了一个没有赋值的变量,这时它的值默认为 nil。如果对一个 nil 进行索引的话,会导致异常。
配置仓库
在maven的settings.xml文件里的mirrors节点,添加如下子节点:
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
如题:如何设计业务模块返回结果的结构?
一个业务函数/方法执行后,对外输出数据的结构通常有以下几种:
1、返回数字,如 成功时返回 0,失败时返回 -1,有的还会用一个全局变量输出错误信息:
<?php class UserLogic extends \Think\Model { protected $error; /** * 更改用户名称 * * @param int $userId 用户ID * @param string $userName 用户名 * @return int -1: 操作失败, 0: 操作成功 */ public function updateUserName($userId = 0, $userName = '') { if (empty($userId)) { $this->error = '用户ID不能为空'; return -1; } if (empty($userName)) { $this->error = '用户名不能为空'; return -1; } $where = array( 'userId' => $userId ); $data = array( 'userName' => $userName ); $res = $this->where($where)->save($data); if ($res !== false) { return 0; } return -1; } }
Glide 是 Golang 的 Vendor 包管理器,方便你管理 vendor 和 verdor 包。类似 Java 的 Maven,PHP 的 Composer。
主要特性:
-
简单管理依赖
-
支持 versioning packages,包括 Semantic Versioning 2.0.0 支持
-
支持 aliasing packages (e.g. for working with github forks)
-
Remove the need for munging import statements
-
支持所有
go
工具 -
支持 VCS 工具和 Go 支持:git、bzr、hg、svn
-
支持定制本地和全局插件 (see docs/plugins.md)
-
仓库缓存
一、什么是管道
如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另一个进程的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。
举个例子,在shell中输入命令:ls -l | grep string,我们知道ls命令(其实也是一个进程)会把当前目录中的文件都列出来,但是它不会直接输出,而是把本来要输出到屏幕上的数据通过管道输出到grep这个进程中,作为grep这个进程的输入,然后这个进程对输入的信息进行筛选,把存在string的信息的字符串(以行为单位)打印在屏幕上。
单独的 T 代表一个类型 ,而 Class<T> 代表这个类型所对应的类,Class<?> 表示类型不确定的类
从零开始写Go网络通信框架
(1)基本的Socket Client/Server的编写 http://blog.csdn.net/mypc2010/article/details/73432246
(2)自定义通讯协议 http://blog.csdn.net/mypc2010/article/details/73471274
(3)对长连接的处理 http://blog.csdn.net/mypc2010/article/details/73571746
(4)全双工收发消息 http://blog.csdn.net/mypc2010/article/details/73650049
(5)断线重连 http://blog.csdn.net/mypc2010/article/details/78276702