| 头文件 | 说明 |
|---|---|
| <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