add char_buf.c