マルチバイト文字列のstrlen()

昨日言ってたマルチバイト文字列の長さをはかる方法、mblen()を使えば簡単に出来た。っていうかmbなんたら系の関数っていつのまにC標準に?(ぉ

int mbstrlen(const char * src)
{
  unsigned length = 0;      /* 返り値となるlength */
  const char * psrc = src;  /* 渡された文字列をなめるためのポインタ */
  int byte_size;            /* mblen()の返り値を受け取る変数 */

  /* 空データは勘弁。 */
  assert(src != NULL);

  do
  {
    /* mblen()で現在の文字のバイト数をはかる */
    byte_size = mblen(psrc, MB_CUR_MAX);
    switch(byte_size)
    {
      /* 不正なマルチバイト文字だった場合、-1を返す */
      case -1:
        return -1;
      /* それ以外は次の文字を見に行く */
      default:
        psrc += byte_size;
    }

    /* 文字数をカウント */
    ++length;
  /* byte_sizeが0(つまりmblen()の返り値が0) == NULL文字 */
  }while(byte_size != 0);

  /* 終端のNULL文字の分を除外した分を返す */
  return length - 1;
}

これってWindowsでは_mbslen()で提供されてるけど、なぜC標準では提供されてないのかしら?