[Win32utils-devel] _mktemp on Windows

Heesob Park phasis at gmail.com
Sun Jan 15 22:44:41 EST 2012


Hi,

2012/1/14 Daniel Berger <djberg96 at gmail.com>:
> Is it odd that calling _mktemp more than once in the same process doesn't work?
>
> require 'ffi'
>
> class Win
>  extend FFI::Library
>
>  ffi_lib 'msvcrt'
>  attach_function :_mktemp, [:string], :string
>
>  def self.mktemp
>    5.times{ p _mktemp("rb_file_temp_XXXXXX") }
>  end
> end
>
> Win.mktemp
>
> # Output
> "rb_file_temp_a03680"
> nil
> nil
> nil
> nil
It is odd indeed.
_mktemp not working in the loop.

require 'ffi'

class Win
 extend FFI::Library

 ffi_lib 'msvcrt'
 attach_function :_mktemp, [:string], :string

 def self.mktemp
   p _mktemp("rb_file_temp_XXXXXX")
   p _mktemp("rb_file_temp_XXXXXX")
   p _mktemp("rb_file_temp_XXXXXX")
   p _mktemp("rb_file_temp_XXXXXX")
   p _mktemp("rb_file_temp_XXXXXX")
  5.times {
   p _mktemp("rb_loop_temp_XXXXXX")
  }
 end
end

Win.mktemp

 # Output
"rb_file_temp_a05972"
"rb_file_temp_a05972"
"rb_file_temp_a05972"
"rb_file_temp_a05972"
"rb_file_temp_a05972"
"rb_loop_temp_a05972"
nil
nil
nil
nil

Regards,
Park Heesob


More information about the win32utils-devel mailing list