I used guile 2.0.11 on Mac OSX.
but, I find this problem..
(use-modules (system foreign)
(rnrs bytevectors))
(define sock (socket AF_INET SOCK_DGRAM 0))
(getsockopt sock SOL_SOCKET SO_SNDBUF) ;;=> 140733193397248 ???
so…I use C function directly…
;;;
(define foreign-getsockopt
(pointer->procedure int (dynamic-func "getsockopt" (dynamic-link))
(list int int int '* '*)))
(define ret-value (sint-list->bytevector '(0) (native-endianness) 4))
(define size-value (sint-list->bytevector '(4) (native-endianness) 4))
(foreign-getsockopt (port->fdes sock) SOL_SOCKET SO_SNDBUF (bytevector->pointer
ret-value)
(bytevector->pointer size-value))
(bytevector->sint-list ret-value (native-endianness) 4) ;;=> 9216. It's right!
is it bug of getsockopt??