asprintf()
LinuxのGCCライブラリ関数であり、Windowsには存在しないため、Windowsに移植しようとしています。
var args の長さの計算に行き詰まっているので、それらにメモリを割り当てることができます。私は2つのアプローチを試しました:
var args をファイルに書き込み、関数の結果 (書き込まれたバイト数 = var args の長さ) を取得しますが、ユーザーは自分のアプリ ディレクトリに内部ランダム データが表示されるため、これはばかげています。
最初のパラメーター (出力を書き込む変数) として NULL を持つ関数
vsprintf()
を使用して、var args の長さを返しますが、これは XP でのみ機能するため失敗しました。Windows 7 では NULL 変数への書き込みが許可されていません。
これを解決する方法について、これ以上のアイデアはありますか?