Cプログラムで一時ファイルを作成し、それにデータを書き込んでから、(execまたはsystemを介して)外部コマンドを呼び出して、作成したファイルに対して処理を実行する必要があります。私は外部コマンドを作成しなかったし、それをプログラムに統合することもできないので、すでに開いている記述子をそれと共有することはできないと思います。したがって、作成された一時ファイルの名前を知る必要があります。
tempname()関数はこれを行いますが、名前を取得してからファイルを開くまでの競合状態が発生する可能性があるため、残念ながら自分自身を使用しないことをお勧めします。また、推奨する関数(tmpfileとmkstemp)はどちらも方法を提供しません。作成されたファイルの実際の名前を確認します。