私は Ubuntu 10.4 を使用しており、2 つの (長い) C プログラムがあります。1 つは XDR を使用してファイルを書き込み、もう 1 つはこのファイルを入力として使用します。ただし、2 番目のプログラムは、書き込まれたファイルを読み取ることができません。すべてが完全に問題ないように見えますが、機能しません。具体的には、ここに追加された最後の行で失敗し、エラー メッセージ xdr_string() が表示されます。これは、入力ファイルの最初の行を読み取れないことを示しています。明らかなエラーは見られません。入力ファイルが書き出され、コンテンツがあり、stings -a -n 2 "inputfile" を使用して正しい文字列を確認できます。何がうまくいかないのか誰にも分かりますか?
プログラム 1 (ライター) の関連部分:
/**
* create compressed XDR output stream
*/
output_file=open_write_pipe(output_filename);
xdrstdio_create(&xdrs, output_file, XDR_ENCODE);
/**
* print material name
*/
if( xdr_string(&xdrs, &name, _POSIX_NAME_MAX) == FALSE )
xdr_err("xdr_string()");
プログラム 2 (リーダー) の関連部分:
/**
* open data file
*/
input_file=open_data_file(input_filename, "r");
if( input_file == NULL ){
ERROR(input_filename);
exit(EXIT_FAILURE);
}
/**
* create input XDR stream
*/
xdrstdio_create(&xdrs, input_file, XDR_DECODE);
/**
* read material name
*/
if(xdr_string(&xdrs, &name, _POSIX_NAME_MAX) == FALSE)
XDR_ERR("xdr_string()");