## T2.c

+ 记得填写 sno 和 name

+ 要求使用信号量实现 buffer 
  - 信号量的实现在 sema.h 中
    * 已经帮你完成
    * 无需修改 sema.h
  - 使用条件变量,没有分数

+ 完成 buffer_get 
  - 要求基于 sema 实现
  - 从 buffer 中取出一个数据
  - 如果 buffer 为空则等待

+ 完成 buffer_put 
  - 要求基于 sema 实现
  - 向 buffer 中放置一个数据
  - 如果 buffer 为满则等待

+ 创建 3 个线程 T0 T1 T2
  - 使用 4 个 buffer 连接这 3 个线程

+ 此题
  - 只要求 T0 发送 1 个字符,最终再接收 1 个字符

+ 从 T0 到 T2 
  - T0 -> b0 -> T1 -> b1 -> T2
  - T0 发送 1 个字符 'a' 到 b0  
  - T1 从 b0 收到字符后,递增 1,发送到 b1 

+ 从 T2 到 T0 
  - T0 <- b3 <- T1 -> b2 <- T2
  - T2 从 b1 收到字符后,发送到 b2
  - T1 从 b2 收到字符后,递增 1,发送到 b3

+ T0 从 b3 收到字符后
  - 打印,期望输出 'c'
  - 只有 T1 才会做递增操作

+ Makefile 已经写好,请用 make 编译