demo_system_realpath Program

Uses

Contents

Source Code


Variables

Type Attributes Name Initial
integer :: filename_length
integer :: i
character(len=:), allocatable :: pathi
character(len=:), allocatable :: patho

Source Code

     program demo_system_realpath
     use M_system, only : system_realpath, system_perror
     implicit none
     ! resolve each pathname given on command line
     character(len=:),allocatable :: pathi,patho
     integer                      :: i
     integer                      :: filename_length
        do i = 1, command_argument_count()
           ! get pathname from command line arguments
           call get_command_argument (i , length=filename_length)
           if(allocated(pathi))deallocate(pathi)
           allocate(character(len=filename_length) :: pathi)
           call get_command_argument (i , value=pathi)
           !
           ! resolve each pathname
           patho=system_realpath(pathi)
           if(patho.ne.char(0))then
              write(*,*)trim(pathi),'=>',trim(patho)
           else
              call system_perror(&
              & '*system_realpath* error for pathname '//trim(pathi)//':')
              write(*,*)trim(pathi),'=>',trim(patho)
           endif
           deallocate(pathi)
        enddo
        ! if there were no pathnames given resolve the pathname "."
        if(i.eq.1)then
           patho=system_realpath('.')
           write(*,*)'.=>',trim(patho)
        endif
     end program demo_system_realpath