让我们以这个服务器代码为例来解释我的疑惑:
/* 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字节)是否会导致问题?
如果有,我该如何解决?
read=0
!不过我将只在英特尔 x86 或 x64 CPU 上使用这个简单的 FTP 服务器和客户端! :) - polslinux