summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/samples/gettimeofday.rb
blob: 864bbb62b1d10d0f0fa1493274829742a45df6ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
require 'ffi'
require 'rbconfig'

class Timeval < FFI::Struct
  layout tv_sec: :ulong, tv_usec: :ulong
end
module LibC
  extend FFI::Library
  if FFI::Platform.windows?
    ffi_lib RbConfig::CONFIG["LIBRUBY_SO"]
  else
    ffi_lib FFI::Library::LIBC
  end
  attach_function :gettimeofday, [ :pointer, :pointer ], :int
end
t = Timeval.new
LibC.gettimeofday(t.pointer, nil)
puts "t.tv_sec=#{t[:tv_sec]} t.tv_usec=#{t[:tv_usec]}"