Re: getsockopt & 64bit arch

From
Gleb Smirnoff (2:5020/400)
To
Oleg Koreshkov (2:5054/37.63)
Date
2005-04-06T11:27:10Z
Area
RU.UNIX.BSD
From: Gleb Smirnoff <glebius@cell.sick.ru>

Oleg Koreshkov <okoreshkov@salut.ru> wrote:
OK> на RELENG_5 Amd64 getsockopt не трогает старшие 32 бита size, заполняя только 
OK> младшие 32 бита размером сокета:

То есть в старших битах остаётся мусор?

OK>          int             sock;
OK>          size_t          size;
OK>          socklen_t       oplen;
OK> ...
OK>          oplen = sizeof(size);
OK>          if (getsockopt(sock, SOL_SOCKET, SO_SNDBUF, &size, &oplen) < 0)
OK>                  fatal(EX_OSERR, errno, "can not getsockopt(SO_SNDBUF)");
OK> ...

OK> Это нормальное поведение или баг?
OK> Указание раздела какого нибудь стандарта относящегося к subj приветствуется.

SuS:

SO_SNDBUF
    Reports send buffer size information. This option shall store an int value.
SO_RCVBUF
    Reports receive buffer size information. This option shall store an int value.

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
--- ifmail v.2.15dev5.3
 * Origin: Demos online service (2:5020/400)
SEEN-BY: 46/50 50/203 520 400/814 450/159 186 247 1024 451/30 461/43 132 640
SEEN-BY: 469/999 550/196 4616/3 4625/8 4627/10 4635/4 4652/15 5000/76 5000
SEEN-BY: 5006/1 5007/1 5010/70 5011/13 5015/10 5019/31 5020/52 118 154 175 194
SEEN-BY: 5020/400 545 549 604 715 758 830 937 1057 1523 1604 1630 1922 2020
SEEN-BY: 5020/2142 2238 2450 2590 4441 5021/29 5022/128 5025/3 750 5026/45
SEEN-BY: 5027/16 5029/32 5030/49 115 473 500 556 966 1063 1900 5031/70 72
SEEN-BY: 5034/13 5035/3 38 5036/1 34 5042/13 5049/1 50 97 5051/15 5054/1 4 8 9
SEEN-BY: 5054/28 35 36 37 63 66 67 70 75 81 84 85 5055/95 5057/1 5060/88
SEEN-BY: 5061/15 5062/1 10 5066/18 5067/2 5069/7 5070/1222 5074/9 5075/5 35
SEEN-BY: 5079/23 5080/80 1003 5081/2 5082/6 5083/21 5085/13 5090/108 5095/20
SEEN-BY: 5096/18 6000/12 254 6001/3
PATH: 5020/400 4441 545 5054/1 37