ファイルに印刷するために必要なMPIプロセスがあります。 MPIシステムは、MPI_File_iwriteのような機能コマンドを使用します。このコマンドは、バッファ(例えば、charポインタ)と整数長を受け入れます。次に、バッファがファイルに印刷されます。Cでprintf文が与えられた場合、char *バッファをどのように構築し、その長さを知ることができますか?
ファイルに印刷する必要があるものを印刷するために、printf関数を、書式変換をchar *バッファにマップする関数で置き換える必要があります。
printf("something %d, %d, %d, %f, etc.",x,y,z,p,d,...);
を私はprintfの書式が生成する文字列を回復するにはどうすればよい、長さが何であるかを把握し、へのchar *として渡す:文字列は、例えば...長さを変えることができるので、これは、問題がありますmpi関数?
1) 'printf'は関数であり、文ではありません。 2) 'printf'は文字列を生成しません(' char [] ')。' char * 'は' char'へのポインタであり、配列ではありません。 – Olaf
'printf()'が 'printf("%c "、0);'のようなことをし、 's(n)printf(some_buffer、...);を使用しようとすると、 len = strlen(some_buffer); 'は正しい文字数を出力しません。 'snprintf()'の戻り値を使うのがベストです。 – chux