demo_system_chmod.f90 Source File


Contents

Source Code


Source Code

     program demo_system_chmod
     use M_system, only : system_chmod
     use M_system, only : system_stat
     use M_system, only : R_GRP,R_OTH,R_USR, RWX_G, RWX_U, W_OTH, X_GRP
     !use M_system, only : RWX_O, W_GRP,W_USR,X_OTH,X_USR
     !use M_system, only : DEFFILEMODE, ACCESSPERMS
     use,intrinsic     :: iso_fortran_env, only : int64
     implicit none
     integer         :: ierr
     integer         :: status
     integer(kind=int64) :: buffer(13)
        !Setting Read Permissions for User, Group, and Others
        ! The following example sets read permissions for the owner, group,
        ! and others.
        open(file='_test1',unit=10)
        write(10,*)'TEST FILE 1'
        close(unit=10)
        ierr=system_chmod('_test1', IANY([R_USR,R_GRP,R_OTH]))

        !Setting Read, Write, and Execute Permissions for the Owner Only
        ! The following example sets read, write, and execute permissions
        ! for the owner, and no permissions for group and others.
        open(file='_test2',unit=10)
        write(10,*)'TEST FILE 2'
        close(unit=10)
        ierr=system_chmod('_test2', RWX_U)

        !Setting Different Permissions for Owner, Group, and Other
        ! The following example sets owner permissions for CHANGEFILE to
        ! read, write, and execute, group permissions to read and
        ! execute, and other permissions to read.
        open(file='_test3',unit=10)
        write(10,*)'TEST FILE 3'
        close(unit=10)
        ierr=system_chmod('_test3', IANY([RWX_U,R_GRP,X_GRP,R_OTH]));

        !Setting and Checking File Permissions
        ! The following example sets the file permission bits for a file
        ! named /home/cnd/mod1, then calls the stat() function to
        ! verify the permissions.

        ierr=system_chmod("home/cnd/mod1", IANY([RWX_U,RWX_G,R_OTH,W_OTH]))
        call system_stat("home/cnd/mod1", buffer,status)

        ! In order to ensure that the S_ISUID and S_ISGID bits are set,
        ! an application requiring this should use stat() after a
        ! successful chmod() to verify this.

        ! Any files currently open could possibly become invalid if the
        ! mode of the file is changed to a value which would deny access
        ! to that process.

     end program demo_system_chmod