Я использую Ubuntu 10.4 и у меня две (длинные) программы на Си: одна пишет файл с использованием XDR, а другая использует этот файл в качестве входных данных.Однако вторая программа не умеет читать в записанном файле.Все выглядит отлично, просто не работает.В частности, он завершается с ошибкой в последней строке, добавленной здесь с сообщением об ошибке 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()");