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??



Reply via email to