anchor.diff:        integer(c_size_t), value :: length
         integer(c_int), value :: flags
       end function c_send
  -  end interface
   
  -  ! fork
  -  interface
       integer(c_int) function c_fork() bind(C, name='fork')
         use, intrinsic :: iso_c_binding
       end function c_fork
  -  end interface
   
  -  ! accept
  -  interface
       integer(c_int) function c_accept(socket, address, address_len) bind(c, name='accept')
         use, intrinsic :: iso_c_binding
         integer(c_int), value :: socket
         type(c_ptr), value :: address, address_len
       end function c_accept
  -  end interface
   
  -  ! close
  -  interface
       integer(c_int) function c_close(fd) bind(c, name='close')
         use, intrinsic :: iso_c_binding
         integer(c_int), value :: fd
  
positive.code:   end type c_sockaddr_storage
  
    
    ! Not interoperable due to pointers.
    type, bind(C) :: c_addrinfo
      integer(c_int) :: ai_flags
      integer(c_int) :: ai_family
  
negative.code:     type(c_ptr) :: ai_next
    end type c_addrinfo
  
    interface
      type (c_ptr) function c_popen(command, mode) bind(C, name='popen')
        use, intrinsic :: ISO_C_BINDING
        character(kind=c_char), dimension(*) :: command, mode
      end function
  
      type (c_ptr) function c_fgets(str, siz, stream) bind(C, name='fgets')
        use, intrinsic :: ISO_C_BINDING
        ! assumed size, or any shape works here, but not assume shape...?
  