if(strspn(buf,"0123456789")!=9) じゃなくてif(strspn(buf,"0123456789")!=strlen(buf)) か。
見当違いな回答だからどうでもいいけど。