ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation. |
This module contains classes and procedures for manipulating system file/folder paths.
More...
Data Types | |
interface | getBaseName |
Generate and return the basename part of the input path (i.e., all characters that appear after the last directory separator in the path ).More... | |
interface | getDirCurrent |
Generate and return the Current Working Directory (CWD) of the runtime shell. More... | |
interface | getDirHome |
Generate and return the Home Directory of the current user in the current runtime shell. More... | |
interface | getDirName |
Generate and return the dirname (directory name) part of the input path .More... | |
interface | getDirSep |
Generate and return the directory separator symbol based on the runtime system shell. More... | |
interface | getDirSeps |
Generate and return all the directory separator symbols supported by the current runtime operating system based on the runtime system shell. More... | |
interface | getExtName |
Generate and return the file extension part of the input path (including the leading dot in the file extension).More... | |
interface | getFileName |
Generate and return the filename part of the input path .More... | |
interface | getIndexBaseName |
Generate and return the index of the first character of the basename part of the input path .More... | |
interface | getIndexDirName |
Generate and return the index of the last character of the dirname (directory part) of the input path .More... | |
interface | getIndexExtName |
Generate and return the index of the first character of the file extension of the input path (if any extension exists).More... | |
interface | getPathAbs |
Generate and return the absolute path corresponding to the input (potentially relative) path. More... | |
interface | getPathExpandedUser |
Generate and return the input path wherein the initial tilde character (~ ) is expanded to the home directory of current user.More... | |
interface | getPathHostNameIndex |
Generate and return the index of the last character of the hostname part of the input UNC path. More... | |
interface | getPathJoined |
Generate and return the path that results from joining the two input path parts, separated by the specified directory separator or the preferred directory separator of the runtime shell.More... | |
interface | getPathMatch |
Generate and return a list of directory paths matching a requested system application. More... | |
interface | getPathNew |
Generate and return a unique (directory or file) path name in the specified directory or the default current working directory. More... | |
interface | getPathPosix |
Generate and return a POSIX-standard (Unix-like) path from the input Windows-style path. More... | |
interface | getPathPosixEscaped |
Generate and return a POSIX standard (Unix-like) version of the input POSIX-style-separated path where all the relevant POSIX reserved characters are properly escaped via (\ ).More... | |
interface | getPathSep |
Generate and return the path separator character used by the runtime processor shell for separating paths from each other in the PATH environmental variable.More... | |
interface | getPathTemp |
Generate and return a unique (directory or file) path name in the temporary directory of the system or if there is none, in the current working directory of the program, optionally with the user-specified file name segments. More... | |
interface | getPathVerbatim |
Generate and return a path quoted with single or double quotation marks whose metacharacters are also properly escaped depending on the runtime system shell. More... | |
interface | getPathVerbatimCMD |
Generate and return a path quoted with double quotation marks where all instances of double quotes \(\ms{"}\) within the path are removed. More... | |
interface | getPathVerbatimFish |
Generate and return a path quoted with single quotation marks where all instances of backslashes within the path are replaced with double backslash and all single quotes \(\ms{'}\) are replaced with \(\ms{\'}\). More... | |
interface | getPathVerbatimPosix |
Generate and return a path quoted with single quotation marks where all instances of single quotes \(\ms{'}\) within the path are replaced with \(\ms{'\''}\). More... | |
interface | getPathVerbatimPowerShell |
Generate and return a path quoted with single quotation marks where all instances of single quotes \(\ms{'}\) within the path are replaced with \(\ms{''}\). More... | |
interface | getPathWindows |
Generate and return a normalized Windows-style path from the input POSIX-style or Windows-style path, such that it conforms to the path conventions of the Windows Command Prompt (CMD). More... | |
interface | glob |
Generate and return the result of globing the specified input pattern .More... | |
interface | hasDriveLetter |
Generate and return .true. is the input Windows-style path begins with a drive-letter pattern like C: .More... | |
interface | isDir |
Generate and return .true. is the input path is an extant system directory, otherwise return .false. .More... | |
interface | isExtant |
Generate and return .true. if the input path (whether a file or a directory) exists and .false. otherwise.More... | |
interface | isFailedChangeDir |
Generate and return .true. if the attempt to set the current working directory to the input dir fails, otherwise return .false. upon success.More... | |
interface | isFailedCopy |
Generate and return .true. if the requested copy action failed, otherwise return .false. indicating success.More... | |
interface | isFailedGlob |
Generate and return .true. if the attempt to globing the specified input pattern fails, otherwise, return .false. .More... | |
interface | isFailedList |
Generate and return .true. if the attempt to fetch the directory listing of the specified input path fails, otherwise, return .false. .More... | |
interface | isFailedMakeDir |
Generate and return .true. if the attempt to create the requested directory path fails, otherwise return .false. .More... | |
interface | isFailedMakeDirTemp |
Generate and return .true. if the attempt to create a temporary directory fails.Otherwise return .false. and set the output path to the newly created temporary directory.More... | |
interface | isFailedMove |
Generate and return .true. if the requested move action failed, otherwise return .false. indicating success.More... | |
interface | isFailedRemove |
Generate and return .true. if the requested path removal action from the file system failed, otherwise return .false. indicating success.More... | |
interface | isFile |
Generate and return .true. is the input path is a file (not a directory), otherwise return .false. .More... | |
interface | isPathAbsPosix |
Generate and return .true. is the input path is an absolute POSIX path (whether existing or virtual), otherwise return .false. .More... | |
interface | isPathAbsWindows |
Generate and return .true. is the input path is an absolute Windows path (whether existing or virtual), otherwise return .false. .More... | |
interface | ls |
Generate and return a list of all paths within the specified input path .More... | |
interface | setPathMatch |
Return a list of directory paths matching a requested system application. More... | |
interface | setPathPosix |
Return a POSIX-standard (Unix-like) path from the input (Windows-style) path. More... | |
interface | setPathPosixEscaped |
Return a POSIX standard (Unix-like) version of the input POSIX-style-separated path where all the relevant POSIX reserved characters are properly escaped via (\ ).More... | |
interface | setPathWindows |
Normalize the input POSIX-style or Windows-style path to a Windows-style path, such that it conforms to the path conventions of the Windows Command Prompt (CMD). More... | |
type | verbatim_type |
This is the derived type with no components, whose instantiated objects are used to signify the verbatim interpretation of paths when passed to various procedures within the ParaMonte library. More... | |
Variables | |
character(*, SK), parameter | MODULE_NAME = SK_"@pm_sysPath" |
integer(IK), parameter | MAX_LEN_FILE_NAME = MAX_NAME |
The scalar integer constant of default kind IK, representing the maximum system-allowed path length (260 on Windows, 255 on Unix).More... | |
integer(IK), parameter | MAX_LEN_FILE_PATH = MAX_PATH |
The scalar integer constant of default kind IK, representing the maximum system-allowed path length (260 on Windows, 4096 on Unix).Note that the maximum file length path supported by the Intel compilers is also 4096 .More... | |
character(*, SK), parameter | DIR_SEP_WINDOWS_ALL = SK_"\/" |
The scalar character constant of default kind SK, containing the directory separator characters recognized by the Windows operating systems.More... | |
character(*, SK), parameter | DIR_SEP_POSIX_ALL = SK_"/" |
The scalar character constant of default kind SK, containing the directory separator characters recognized by the POSIX-compliant systems.More... | |
character(*, SK), parameter | DIR_SEP_WINDOWS = SK_"\" |
The scalar character constant of default kind SK, containing the preferred directory separator character on Windows operating systems.More... | |
character(*, SK), parameter | DIR_SEP_POSIX = SK_"/" |
The scalar character constant of default kind SK, containing the preferred directory separator character on POSIX-compliant systems.More... | |
character(*, SK), parameter | DIR_SEP_ALL = SK_"/\" |
The scalar character constant of default kind SK, containing the directory separator characters recognized by all platforms supported in this library (POSIX and Windows).More... | |
character(*, SK), parameter | PATH_SEP_WINDOWS = SK_";" |
The scalar character constant of default kind SK, containing the preferred directory separator character on Windows operating systems.More... | |
character(*, SK), parameter | PATH_SEP_POSIX = SK_":" |
The scalar character constant of default kind SK, containing the preferred directory separator character on POSIX-compliant systems.More... | |
character(*, SK), parameter | PATH_SEP_ALL = SK_":;" |
The scalar character constant of default kind SK, containing the directory separator characters recognized by all platforms supported in this library (POSIX and Windows).More... | |
type(verbatim_type), parameter | verbatim = verbatim_type() |
The scalar constant of type verbatim_type that can be used to signify the verbatim interpretation of paths when passed to various procedures within the ParaMonte library. More... | |
character(*, SK), parameter | WIN32_NAMESPACE_FILE = SK_"\\?\" |
The scalar character constant of default kind SK, containing the prefix operating systems path-separator symbol ("\" in Windows, "/" in Unix).More... | |
character(*, SK), parameter | WIN32_NAMESPACE_DEVICE = SK_"\\.\" |
The scalar character constant of default kind SK, containing the operating systems path-separator symbol ("\" in Windows, "/" in Unix).More... | |
character(*, SK), parameter | ASCII_CONTROL_STR = achar( 1, SK) // achar( 2, SK) // achar( 3, SK) // achar( 4, SK) // achar( 5, SK) // achar( 6, SK) // achar( 7, SK) // achar( 8, SK) // achar( 9, SK) // achar(10, SK) // achar(11, SK) // achar(12, SK) // achar(13, SK) // achar(14, SK) // achar(15, SK) // achar(16, SK) // achar(17, SK) // achar(18, SK) // achar(19, SK) // achar(21, SK) // achar(22, SK) // achar(23, SK) // achar(24, SK) // achar(25, SK) // achar(26, SK) // achar(27, SK) // achar(28, SK) // achar(29, SK) // achar(30, SK) // achar(31, SK) // achar(127, SK) |
The scalar character of default kind SK containing the ASCII control characters that need special care in paths.More... | |
character(*, SK), parameter | WINDOWS_RESERVED_STR = SK_'\/<>:"|?*'//ASCII_CONTROL_STR |
The scalar character constant of default kind SK, containing the Windows reserved characters not allowed in filenames.Note that the ASCII control characters (0-31) are also forbidden in Windows paths. More... | |
character(1, SK), dimension(*), parameter | WINDOWS_RESERVED_CHR = [( WINDOWS_RESERVED_STR(i:i), i = 1_IK, len(WINDOWS_RESERVED_STR,IK) )] |
The vector character constant of default kind SK of len = 1 containing the individual characters in WINDOWS_RESERVED_STR.More... | |
character(*, SK), parameter | WINDOWS_CMD_METACHAR_STR = SK_'()%!^"<>&|' |
The scalar character constant of default kind SK, containing the Windows CMD shell metacharacters.More... | |
character(1, SK), dimension(*), parameter | WINDOWS_CMD_METACHAR_CHR = [( WINDOWS_CMD_METACHAR_STR(i:i), i = 1_IK, len(WINDOWS_CMD_METACHAR_STR,IK) )] |
The vector character constant of default kind SK of len = 1 containing the individual characters in WINDOWS_CMD_METACHAR_STR.More... | |
character(4, SK), dimension(*), parameter | WINDOWS_RESERVED_DEVICE_NAME =[ SK_"CON " , SK_"PRN " , SK_"AUX " , SK_"NUL " , SK_"COM1" , SK_"COM2" , SK_"COM3" , SK_"COM4" , SK_"COM5" , SK_"COM6" , SK_"COM7" , SK_"COM8" , SK_"COM9" , SK_"LPT1" , SK_"LPT2" , SK_"LPT3" , SK_"LPT4" , SK_"LPT5" , SK_"LPT6" , SK_"LPT7" , SK_"LPT8" , SK_"LPT9" , SK_"con " , SK_"prn " , SK_"aux " , SK_"nul " , SK_"com1" , SK_"com2" , SK_"com3" , SK_"com4" , SK_"com5" , SK_"com6" , SK_"com7" , SK_"com8" , SK_"com9" , SK_"lpt1" , SK_"lpt2" , SK_"lpt3" , SK_"lpt4" , SK_"lpt5" , SK_"lpt6" , SK_"lpt7" , SK_"lpt8" , SK_"lpt9" ] |
The vector character constant of default kind SK, containing the Windows reserved (forbidden) file names.No file or directory name can contain these names alone, possibly mixed with leading or trailing blanks. More... | |
character(*, SK), parameter | POSIX_RESERVED_STR = SK_" " // SK_"!" // SK_'"' // SK_"#" // SK_"$" // SK_"&" // SK_"'" // SK_"(" // SK_")" // SK_"*" // SK_"," // SK_";" // SK_"<" // SK_"=" // SK_">" // SK_"?" // SK_"[" // SK_"\" // SK_"]" // SK_"^" // SK_"`" // SK_"{" // SK_"|" // SK_"}" // SK_"~" // ASCII_CONTROL_STR |
The scalar character constant of default kind SK, containing the ASCII characters that require escaping via <ESC> character (if not double-quoted) within the Unix Shell environment.More... | |
character(1, SK), dimension(*), parameter | POSIX_RESERVED_CHR = [( POSIX_RESERVED_STR(i:i), i = 1_IK, len(POSIX_RESERVED_STR,IK) )] |
The vector character constant of default kind SK of len = 1 containing the individual characters in POSIX_RESERVED_STR.More... | |
character(*, SK), parameter | POSIX_RESERVED_DQUOTE_STR = SK_"`$\"""//achar(10, SK) |
The scalar character constant of default kind SK, containing the ASCII characters that require escaping via ESC (Escape) character within the Unix Shell environment even when the string double-quoted. Note that the history expansion character (! ) is not included since it is meaningless in the POSIX standard.See the GNU Bash manual for more information. More... | |
character(1, SK), dimension(*), parameter | POSIX_RESERVED_DQUOTE_CHR = [( POSIX_RESERVED_DQUOTE_STR(i:i), i = 1_IK, len(POSIX_RESERVED_DQUOTE_STR,IK) )] |
The vector character constant of default kind SK of len = 1 containing the individual characters in POSIX_RESERVED_DQUOTE_STR.More... | |
This module contains classes and procedures for manipulating system file/folder paths.
This module contains constants, routines, and functionalities for performing actions that are mostly if not entirely independent of the underlying processor runtime shell environment.
The following is a collection of tips and definitions regarding paths in Windows and Unix-like systems.
/
),\
), or:
) character, though some operating systems may use a different separator./
) as its directory separator and used the dash character -
as a command line switch prefix./
as a switch prefix.dir /w
runs the dir command with the wide list format option./
was kept as the switch prefix character for backwards compatibility.\
) as a directory separator, which looks similar to the slash character. On a Unix-like OS and most POSIX-compliant OS, ⛓
/
./
..
...
.~
.Examples:
On Windows, ⛓
A standard DOS or Windows Command Prompt (CMD) path can consist of three components:
If all three components are present, the path is absolute.
If no volume or drive letter is specified and the directory name begins with the directory separator character, the path is relative from the root of the current drive.
Otherwise, the path is relative to the current directory.
Although UNC paths (beginning with two directory separators as described below) are not recognized by the standard DOS or CMD, they are also considered as absolute paths.
The following table shows some possible directory and file paths.
Path | Description |
---|---|
\(\ms{C:\Documents\Newsletters\Summer2018.pdf}\) | An absolute file path from the root of drive C: . |
\(\ms{\Program Files\Custom Utilities\StringFinder.exe}\) | An absolute path from the root of the current drive. |
\(\ms{2018\January.xlsx}\) | A relative path to a file in a subdirectory of the current directory. |
\(\ms{..\Publications\TravelBrochure.pdf}\) | A relative path to a file in a directory starting from the current directory. |
\(\ms{C:\Projects\apilibrary\apilibrary.sln}\) | An absolute path to a file from the root of drive C: . |
\(\ms{C:Projects\apilibrary\apilibrary.sln}\) | A relative path from the current directory of the C: drive. |
\\?\C:\Test\Foo.txt
\\?\
prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.\\?\
prefix also allows the use of ..
and .
in the path names, which can be useful if you are attempting to perform operations on a file with these otherwise reserved relative path specifiers as part of the fully qualified path.\\.\C:\Test\Foo.txt
\\.\
prefix will access the Win32 device namespace instead of the Win32 file namespace.\\.\
or \\?\
), which identifies the path as a DOS device path.A standard Universal naming convention (UNC) path which are used to access network resources, have the following format:
\\
. The server name can be a NetBIOS machine name or an IP/FQDN address (IPv4 as well as v6 are supported).\
. Together, the server and share name make up the volume.The following are some examples of UNC paths.
Path | Description |
---|---|
\[\ms{\\\\system07\\C\$\\}\] | The root directory of the C: drive on \(\ms{system07}\). |
\(\ms{\\\\Server2\Share\Test\Foo.txt}\) | The Foo.txt file in the Test directory of the \(\ms{\\\\Server2\Share}\) volume. |
UNC paths must always be fully qualified (absolute). They can include relative directory segments (. and ..), but these must be part of a fully qualified path. Relative paths can be used only by mapping a UNC path to a drive letter.
\ (relative to current working directory root) <drive_letter>: \\<server>\<sharename> \\?\<drive_spec>: \\?\<server>\<sharename> \\?\UNC\<server>\<sharename> \\.\<physical_device>where
<something>
is just a placeholder for something
(The less-than and greater-than symbols have to be dropped).\
.\
or /
...
.%userprofile%
.%userprofile%
expands to %SystemDrive%\Users\{username}
and is equivalent to the $HOME
environment variable in Unix/Linux.%homedrive%%homepath%
also frequently (but not always) refers to home directory on Windows.%homedrive%
environment variable typically expands to the network root profile directory.%systemdrive%
(typically c:
) is the partition with the directory %systemroot%
(typically C:\WINDOWS
).%OS%
environment variable expands to operating system name on the user workstation.Identifies the path.
The first step in path normalization is identifying the type of path. Paths fall into one of a few categories:
CON
, LPT1
).\
).The type of the path determines whether or not a current directory is applied in some way. It also determines what the "root" of the path is.
If the path is a legacy DOS device such as CON
, COM1
, or LPT1
, it is converted into a device path by prepending \(\ms{\\\\.\\}\) and returned.
A path that begins with a legacy device name is always interpreted as a legacy device.
For example, the DOS device path for \(\ms{CON.TXT}\) is \(\ms{\\\\.\\CON}\), and the DOS device path for \(\ms{COM1.TXT\\file1.txt}\) is \(\ms{\\\\.\\COM1}\).
/
) are converted into the standard Windows separator, the backslash (\
)..
for the current directory and ..
for the parent directory)..
or ..
) are evaluated:Skipping the Windows path normalization.
Normally, any path passed to a Windows API is (effectively) passed to the GetFullPathName of Windows API function and normalized.
There is one important exception: a device path that begins with a question mark instead of a period.
Unless the path starts exactly with \(\ms{\\\\?\\}\) (note the use of the canonical backslash), it is normalized.
Why would one want to skip normalization? There are three major reasons:
Skipping normalization and max path checks is the only difference between the two device path syntaxes ( \(\ms{\\\\?}\) and \(\ms{\\\\.}\)).
They are otherwise identical. Skipping Windows path normalization can be dangerous, since one can easily create paths that are difficult for other applications to deal with.
"test.txt"
, the \(\ms{.NET}\) file system APIs ignore case in the comparison."Test.txt"
, "TEST.TXT"
, "test.TXT"
, and any other combination of uppercase and lowercase letters will match "test.txt"
.For more information, see the Microsoft documentation for path conventions.
gfortran
and used within Cygwin
, other Unix shell emulators, then only the Unix style path-separator is recognized.chmod
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
character(*, SK), parameter pm_sysPath::ASCII_CONTROL_STR = achar( 1, SK) // achar( 2, SK) // achar( 3, SK) // achar( 4, SK) // achar( 5, SK) // achar( 6, SK) // achar( 7, SK) // achar( 8, SK) // achar( 9, SK) // achar(10, SK) // achar(11, SK) // achar(12, SK) // achar(13, SK) // achar(14, SK) // achar(15, SK) // achar(16, SK) // achar(17, SK) // achar(18, SK) // achar(19, SK) // achar(21, SK) // achar(22, SK) // achar(23, SK) // achar(24, SK) // achar(25, SK) // achar(26, SK) // achar(27, SK) // achar(28, SK) // achar(29, SK) // achar(30, SK) // achar(31, SK) // achar(127, SK) |
The scalar character
of default kind SK containing the ASCII control characters that need special care in paths.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 448 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::DIR_SEP_ALL = SK_"/\" |
The scalar character
constant of default kind SK, containing the directory separator characters recognized by all platforms supported in this library (POSIX and Windows).
Definition at line 315 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::DIR_SEP_POSIX = SK_"/" |
The scalar character
constant of default kind SK, containing the preferred directory separator character on POSIX-compliant systems.
Definition at line 311 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::DIR_SEP_POSIX_ALL = SK_"/" |
The scalar character
constant of default kind SK, containing the directory separator characters recognized by the POSIX-compliant systems.
Definition at line 303 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::DIR_SEP_WINDOWS = SK_"\" |
The scalar character
constant of default kind SK, containing the preferred directory separator character on Windows operating systems.
Definition at line 307 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::DIR_SEP_WINDOWS_ALL = SK_"\/" |
The scalar character
constant of default kind SK, containing the directory separator characters recognized by the Windows operating systems.
Definition at line 299 of file pm_sysPath.F90.
integer(IK), parameter pm_sysPath::MAX_LEN_FILE_NAME = MAX_NAME |
The scalar integer
constant of default kind IK, representing the maximum system-allowed path length (260
on Windows, 255
on Unix).
Definition at line 289 of file pm_sysPath.F90.
integer(IK), parameter pm_sysPath::MAX_LEN_FILE_PATH = MAX_PATH |
The scalar integer
constant of default kind IK, representing the maximum system-allowed path length (260
on Windows, 4096
on Unix).
Note that the maximum file length path supported by the Intel compilers is also 4096
.
Definition at line 294 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::MODULE_NAME = SK_"@pm_sysPath" |
Definition at line 281 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::PATH_SEP_ALL = SK_":;" |
The scalar character
constant of default kind SK, containing the directory separator characters recognized by all platforms supported in this library (POSIX and Windows).
Definition at line 328 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::PATH_SEP_POSIX = SK_":" |
The scalar character
constant of default kind SK, containing the preferred directory separator character on POSIX-compliant systems.
Definition at line 324 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::PATH_SEP_WINDOWS = SK_";" |
The scalar character
constant of default kind SK, containing the preferred directory separator character on Windows operating systems.
Definition at line 320 of file pm_sysPath.F90.
character(1, SK), dimension(*), parameter pm_sysPath::POSIX_RESERVED_CHR = [( POSIX_RESERVED_STR(i:i), i = 1_IK, len(POSIX_RESERVED_STR,IK) )] |
The vector character
constant of default kind SK of len = 1
containing the individual characters in POSIX_RESERVED_STR.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 676 of file pm_sysPath.F90.
character(1, SK), dimension(*), parameter pm_sysPath::POSIX_RESERVED_DQUOTE_CHR = [( POSIX_RESERVED_DQUOTE_STR(i:i), i = 1_IK, len(POSIX_RESERVED_DQUOTE_STR,IK) )] |
The vector character
constant of default kind SK of len = 1
containing the individual characters in POSIX_RESERVED_DQUOTE_STR.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 706 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::POSIX_RESERVED_DQUOTE_STR = SK_"`$\"""//achar(10, SK) |
The scalar character
constant of default kind SK, containing the ASCII characters that require escaping via ESC
(Escape) character within the Unix Shell environment even when the string double-quoted. Note that the history expansion character (!
) is not included since it is meaningless in the POSIX standard.
See the GNU Bash manual for more information.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 694 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::POSIX_RESERVED_STR = SK_" " // SK_"!" // SK_'"' // SK_"#" // SK_"$" // SK_"&" // SK_"'" // SK_"(" // SK_")" // SK_"*" // SK_"," // SK_";" // SK_"<" // SK_"=" // SK_">" // SK_"?" // SK_"[" // SK_"\" // SK_"]" // SK_"^" // SK_"`" // SK_"{" // SK_"|" // SK_"}" // SK_"~" // ASCII_CONTROL_STR |
The scalar character
constant of default kind SK, containing the ASCII characters that require escaping via <ESC>
character (if not double-quoted) within the Unix Shell environment.
The ASCII characters needing escape in POSIX-compliant shells can be obtained via the following Bash script,
which should render a table with the first field being hexa-value of byte, the second containing E
if character need to be escaped and third field showing escaped presentation of character.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 636 of file pm_sysPath.F90.
type(verbatim_type), parameter pm_sysPath::verbatim = verbatim_type() |
The scalar constant of type verbatim_type that can be used to signify the verbatim interpretation of paths when passed to various procedures within the ParaMonte library.
For example usage, see the generic interfaces that take objects of this type as input arguments.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 367 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::WIN32_NAMESPACE_DEVICE = SK_"\\.\" |
The scalar character
constant of default kind SK, containing the operating systems path-separator symbol ("\"
in Windows, "/"
in Unix).
Prefixing Windows paths with this namespace allows Windows APIs to disable all string parsing and to send the string that follows it straight to the file system. For example, if the file system supports large paths and file names, you can exceed the MAX_PATH
limits that are otherwise enforced by the Windows APIs. For more information about the normal maximum path limitation, see the Windows API documentation.
\\
at the beginning of the namespace indicates that the path should be passed to the system with minimal modification, which means that the path cannot contain forward slashes to represent directory separators, or a period .
to represent the current directory, or double dots ..
to represent the parent directory..
or ..
in path names, as well as relaxing the 260 character path name limit of Windows OS, if the underlying file system supports long paths and file names.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 430 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::WIN32_NAMESPACE_FILE = SK_"\\?\" |
The scalar character
constant of default kind SK, containing the prefix operating systems path-separator symbol ("\"
in Windows, "/"
in Unix).
Prefixing Windows paths with this namespace allows Windows APIs to disable all string parsing and to send the string that follows it straight to the file system. For example, if the file system supports large paths and file names, you can exceed the MAX_PATH
limits that are otherwise enforced by the Windows APIs. For more information about the normal maximum path limitation, see the Windows API documentation.
\\
at the beginning of the namespace indicates that the path should be passed to the system with minimal modification, which means that the path cannot contain forward slashes to represent directory separators, or a period .
to represent the current directory, or double dots ..
to represent the parent directory.\\
at the beginning of a path implies a path that follows the Universal Naming Convention (UNC).\\wsl$\
..
or ..
in path names (without any special meaning), as well as relaxing the 260 character path name limit of Windows OS, if the underlying file system supports long paths and file names.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 402 of file pm_sysPath.F90.
character(1, SK), dimension(*), parameter pm_sysPath::WINDOWS_CMD_METACHAR_CHR = [( WINDOWS_CMD_METACHAR_STR(i:i), i = 1_IK, len(WINDOWS_CMD_METACHAR_STR,IK) )] |
The vector character
constant of default kind SK of len = 1
containing the individual characters in WINDOWS_CMD_METACHAR_STR.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 542 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::WINDOWS_CMD_METACHAR_STR = SK_'()%!^"<>&|' |
The scalar character
constant of default kind SK, containing the Windows CMD shell metacharacters.
Metacharacters are characters that have special meaning for Windows CMD.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 529 of file pm_sysPath.F90.
character(1, SK), dimension(*), parameter pm_sysPath::WINDOWS_RESERVED_CHR = [( WINDOWS_RESERVED_STR(i:i), i = 1_IK, len(WINDOWS_RESERVED_STR,IK) )] |
The vector character
constant of default kind SK of len = 1
containing the individual characters in WINDOWS_RESERVED_STR.
\
.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 512 of file pm_sysPath.F90.
character(4, SK), dimension(*), parameter pm_sysPath::WINDOWS_RESERVED_DEVICE_NAME =[ SK_"CON " , SK_"PRN " , SK_"AUX " , SK_"NUL " , SK_"COM1" , SK_"COM2" , SK_"COM3" , SK_"COM4" , SK_"COM5" , SK_"COM6" , SK_"COM7" , SK_"COM8" , SK_"COM9" , SK_"LPT1" , SK_"LPT2" , SK_"LPT3" , SK_"LPT4" , SK_"LPT5" , SK_"LPT6" , SK_"LPT7" , SK_"LPT8" , SK_"LPT9" , SK_"con " , SK_"prn " , SK_"aux " , SK_"nul " , SK_"com1" , SK_"com2" , SK_"com3" , SK_"com4" , SK_"com5" , SK_"com6" , SK_"com7" , SK_"com8" , SK_"com9" , SK_"lpt1" , SK_"lpt2" , SK_"lpt3" , SK_"lpt4" , SK_"lpt5" , SK_"lpt6" , SK_"lpt7" , SK_"lpt8" , SK_"lpt9" ] |
The vector character
constant of default kind SK, containing the Windows reserved (forbidden) file names.
No file or directory name can contain these names alone, possibly mixed with leading or trailing blanks.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 557 of file pm_sysPath.F90.
character(*, SK), parameter pm_sysPath::WINDOWS_RESERVED_STR = SK_'\/<>:"|?*'//ASCII_CONTROL_STR |
The scalar character
constant of default kind SK, containing the Windows reserved characters not allowed in filenames.
Note that the ASCII control characters (0-31) are also forbidden in Windows paths.
\
.
Final Remarks ⛓
If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.
This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.
Definition at line 496 of file pm_sysPath.F90.