Feature #13568 » tmpfile-path.patch
io.c | ||
---|---|---|
rb_file_open_generic(VALUE io, VALUE filename, int oflags, int fmode,
|
||
const convconfig_t *convconfig, mode_t perm)
|
||
{
|
||
VALUE pathv;
|
||
rb_io_t *fptr;
|
||
convconfig_t cc;
|
||
if (!convconfig) {
|
||
... | ... | |
MakeOpenFile(io, fptr);
|
||
fptr->mode = fmode;
|
||
fptr->encs = *convconfig;
|
||
fptr->pathv = rb_str_new_frozen(filename);
|
||
fptr->fd = rb_sysopen(fptr->pathv, oflags, perm);
|
||
pathv = rb_str_new_frozen(filename);
|
||
#ifdef O_TMPFILE
|
||
if (!(oflags & O_TMPFILE))
|
||
fptr->pathv = pathv;
|
||
#else
|
||
fptr->pathv = pathv;
|
||
#endif
|
||
fptr->fd = rb_sysopen(pathv, oflags, perm);
|
||
io_check_tty(fptr);
|
||
if (fmode & FMODE_SETENC_BY_BOM) io_set_encoding_by_bom(io);
|
test/ruby/test_file.rb | ||
---|---|---|
assert_file.not_exist?(path)
|
||
end
|
||
end
|
||
def test_open_tempfile_path
|
||
Dir.mktmpdir(__method__.to_s) do |tmpdir|
|
||
File.open(tmpdir, File::RDWR | File::TMPFILE) do |io|
|
||
io.write "foo"
|
||
io.flush
|
||
assert_nil io.path
|
||
assert_equal 3, io.size
|
||
end
|
||
end
|
||
end if File::Constants.const_defined?(:TMPFILE)
|
||
end
|