我正在使用 Ubuntu 10.4 并有两个(长)C 程序,一个使用 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()");