-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Closed
Labels
filesystemUnderlying file system and functions that use itUnderlying file system and functions that use itsystem:linuxAffects only LinuxAffects only Linux
Description
The docstring for tempname says:
If a
parentdirectory argument is given, the temporary path will be in that directory instead.
However, this is not always true. On Linux, if the TMPDIR environment variable is set, then the temporary file paths generated by tempname will always be in the TMPDIR directory, even if the parent argument is passed to the tempname function.
Is this a bug, or is this expected behavior?
Demonstration:
julia> delete!(ENV, "TMPDIR");
julia> d1 = mktempdir()
"/tmp/jl_oWiuuo"
julia> t1 = tempname(d1)
"/tmp/jl_oWiuuo/jl_AOblx7"
julia> dirname(t1)
"/tmp/jl_oWiuuo"
julia> dirname(t1) == d1
true
julia> ENV["TMPDIR"] = joinpath(mktempdir(), "my_custom_tmpdir")
"/tmp/jl_hR2Ra5/my_custom_tmpdir"
julia> mkpath(ENV["TMPDIR"])
"/tmp/jl_hR2Ra5/my_custom_tmpdir"
julia> d2 = mktempdir()
"/tmp/jl_hR2Ra5/my_custom_tmpdir/jl_tuYj5d"
julia> t2 = tempname(d2)
"/tmp/jl_hR2Ra5/my_custom_tmpdir/jl_qhfofs"
julia> dirname(t2)
"/tmp/jl_hR2Ra5/my_custom_tmpdir"
julia> dirname(t2) == d2
false
julia> delete!(ENV, "TMPDIR");
julia> d3 = mktempdir()
"/tmp/jl_9qlOId"
julia> t3 = tempname(d3)
"/tmp/jl_9qlOId/jl_ewuK8b"
julia> dirname(t3)
"/tmp/jl_9qlOId"
julia> dirname(t3) == d3
trueMetadata
Metadata
Assignees
Labels
filesystemUnderlying file system and functions that use itUnderlying file system and functions that use itsystem:linuxAffects only LinuxAffects only Linux