【发布时间】:2012-10-29 06:56:37
【问题描述】:
我正在使用 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()");
【问题讨论】:
-
什么是“一切看起来都很好,只是不起作用。”意思是?什么看起来不错,到底什么不起作用?你能单步调试代码,看看哪里出错了吗?
-
在此处添加的最后一行失败,并显示错误消息 xdr_string(),表示无法读取输入文件的第一行。一切看起来都很好,我的意思是我没有看到任何明显的错误。输入文件被写出,有内容,我可以使用 stings -a -n 2 "inputfile" 看到正确的字符串。