printfなどで表示される文字数を、標準出力や標準エラー出力など画面に
文字を出力せずにカウントするにはどうすればいいでしょうか?
gccじゃないコンパイラで、asprintfを使いたいので、それらしい動きをするも
のを作るために使おうと思ってます。(下のような)

今は出力を捨てるようにファイルを開いているんですが、スマートじゃないかなぁ
と感じているので、何か対処法がありましたら教えてください。お願いします。

int
_asprintf(char **path, char *fmt, ...)
{
va_list ap;
int size;
FILE *gomi;

/* gomi = fopen("/dev/null", "w"); */
gomi = fopen("gomi.txt", "w");
va_start(ap, fmt);
size = vfprintf(gomi, fmt, ap);
fclose(gomi);

printf("get memory %d + 1\n", size);
*path = (char *)malloc((sizeof (char) * size) + 1);

if (*path == NULL) {
return -1;
}

vsprintf(*path, fmt, ap);
va_end(ap);
return 0;
}