bool print_line(unsigned char const* p_buf, unsigned char const** pct_next);
bool print_line(unsigned char const* p_buf, unsigned char const** pct_next){
 unsigned char const* c_buf = p_buf;
 //改行位置を検索
 for(; *c_buf != '\x0a'; ++c_buf);

 char line[LINE_SIZE];
 strncpy( line, (char const*)p_buf, c_buf - p_buf );
 // nullで区切らないと過去に代入した文字数より少ないときにゴミが残る
 line[c_buf - p_buf] = '\x00';

 ++c_buf;
 *pct_next = c_buf;
 return true;
};