$> Linux命名管道

前言

众所周知,Linux的IPC主要有多种方式,本文主要记录命名管道的使用。

使用

  1. 调用 mkfifo() 创建具名管道文件
  2. 读写两端分别调用 fopen() 打开
  3. 调用 fwrite() 写入;调用 fread() 读取
  4. 调用 unlink() 销毁具名管道文件

阻塞

  1. 如果以只写打开,则会阻塞写入直到有读取;如果以只读打开,则会阻塞直到有写入;如果以读写打开,那么就不会阻塞。
  2. 写入直到缓冲区满则阻塞;读取直到缓冲区空则阻塞。

$> PHP-PoloDB系列之PLDBValue结构

背景

上文提到,在导出的动态库中,并没有实现头文件所申明的那些 PLDBValue 结构相关的接口。

本文主要基于以下几个问题和目标展开:

  1. 实现 PLDBValue 相关(创建、销毁)的接口;
  2. 研究这个结构在数据库底层的具体用途;

阅读更多

$> SwordOffer把数字翻译成字符串

题目

给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

草图

阅读更多