このサーバーコードで私の疑問の例を見てみましょう:
/* some code */
void *filebuffer = NULL;
/* some other code */
for (size_to_send = fsize; size_to_send > 0; ){
rc = sendfile(f_sockd, fd, &offset, size_to_send);
if (rc <= 0){
perror("sendfile");
onexit(f_sockd, m_sockd, fd, 3);
}
size_to_send -= rc;
}
/* その他のコード */
およびこのクライアント コード:
/* some code */
void *filebuffer;
/*some other code */
for(size_to_receive = fsize; size_to_receive > 0;){
nread = read(f_sockd, filebuffer, size_to_receive);
if(nread < 0){
perror("read error on retr");
onexit(f_sockd, 0, 0, 1);
}
if(write(fd, filebuffer, nread) != nread){
perror("write error on retr");
onexit(f_sockd, 0, 0, 1);
}
size_to_receive -= nread;
}
/* other code */
私の質問は、サーバーが x86 マシン (リトル エンディアン) にあり、クライアントが x64 マシン (リトル エンディアン) にある場合、ポインタのサイズ (4 ~ 8 バイト) が異なると問題が発生する可能性がありますか?
はいの場合、どうすれば解決できますか?