std::*streamから零終端文字列に変換してc_func(const char *)に渡す最も効率のいい方法はどんな方法ですか?

バイナリモードだったら動的配列にreadすればいいんですが
テキストモードだとreadが使えないので困ってます