原作: #define MAX 0 unsigned int ui; for(ui = 0 ; ui <= MAX ; ui++) { if(buf[ui] == 0) { return ui; } } 解説: MAX の定義が0になっているので (デバッグ中かもしれません) このループは1回転だけします。 原作: size_t len = 0; ~ if(len <= 0) { } 修正案: if(len == 0) { 解説: <= より == の方が誤解が少ないです。