Create a unique temporary file path without creating a directory
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | prefix | |||
character(len=*), | intent(in), | optional | :: | extension |
function create_temp_file(prefix, extension) result(temp_file) character(len=*), intent(in) :: prefix character(len=*), intent(in), optional :: extension character(len=:), allocatable :: temp_file character(len=32) :: random_suffix character(len=256) :: base_temp_dir character(len=:), allocatable :: ext ! Get system temp directory base_temp_dir = get_env('TMPDIR', '') if (len_trim(base_temp_dir) == 0) then base_temp_dir = get_env('TMP', '') if (len_trim(base_temp_dir) == 0) then base_temp_dir = get_env('TEMP', '') if (len_trim(base_temp_dir) == 0) then base_temp_dir = get_system_temp_dir() end if end if end if ! Generate random suffix call generate_random_suffix(random_suffix) ! Handle extension if (present(extension)) then if (len_trim(extension) > 0) then if (extension(1:1) == '.') then ext = trim(extension) else ext = '.'//trim(extension) end if else ext = '' end if else ext = '' end if ! Create unique temp file path directly in temp directory temp_file = join_path(trim(base_temp_dir), & trim(prefix)//'_'//trim(random_suffix)//ext) end function create_temp_file