我有这个 XDR 结构:
struct Response {
bool_t error;
float result;
};
typedef struct Response Response;
而在我的主要:
Response y;
y.result = 5.7;
y.error = 0;
fprintf(f,"y.error's size: %d bit\n",sizeof(y.error));
我在我的 txt 文件中获得:
y.error's size: 0 bit
更多的:
我用 rpcgen 创建了一个 XDR 结构(结构响应)。我使用套接字将此结构发送给客户端:
XDR xdrs_w;
Response y;
FILE *stream_socket_w = fdopen(s, "w"); /* s is socket's file descriptor */
xdrstdio_create(&xdrs_w, stream_socket_w, XDR_ENCODE);
y.result = 6.8;
y.error = 0; /* false */
if(!xdr_Response(&xdrs_w, &y)){
printf("Error");
}
fflush(stream_socket_w);
问题在于xdr_Response
功能。所以我认为错误在于y.error = 0