@@ -174,7 +174,7 @@ The result is a real value representing the elapsed time in seconds, measured fr
174
174
175
175
### Syntax
176
176
177
- ` delta_t = ` [[ stdlib_system(module): elapsed (subroutine )]] ` (process) `
177
+ ` delta_t = ` [[ stdlib_system(module): elapsed (interface )]] ` (process) `
178
178
179
179
### Arguments
180
180
@@ -212,7 +212,7 @@ in case of process hang or delay.
212
212
213
213
### Syntax
214
214
215
- ` call ` [[ stdlib_system(module): wait (subroutine )]] ` (process [, max_wait_time]) `
215
+ ` call ` [[ stdlib_system(module): wait (interface )]] ` (process [, max_wait_time]) `
216
216
217
217
### Arguments
218
218
@@ -243,7 +243,7 @@ This is especially useful for monitoring asynchronous processes and retrieving t
243
243
244
244
### Syntax
245
245
246
- ` call ` [[ stdlib_system(module): update (subroutine )]] ` (process) `
246
+ ` call ` [[ stdlib_system(module): update (interface )]] ` (process) `
247
247
248
248
### Arguments
249
249
@@ -269,7 +269,7 @@ This interface is useful when a process needs to be forcefully stopped, for exam
269
269
270
270
### Syntax
271
271
272
- ` call ` [[ stdlib_system(module): kill (subroutine )]] ` (process, success) `
272
+ ` call ` [[ stdlib_system(module): kill (interface )]] ` (process, success) `
273
273
274
274
### Arguments
275
275
@@ -298,7 +298,7 @@ It ensures that the requested sleep duration is honored on both Windows and Unix
298
298
299
299
### Syntax
300
300
301
- ` call ` [[ stdlib_system(module): sleep (subroutine )]] ` (millisec) `
301
+ ` call ` [[ stdlib_system(module): sleep (interface )]] ` (millisec) `
302
302
303
303
### Arguments
304
304
@@ -324,7 +324,7 @@ This function is highly efficient and works during the compilation phase, avoidi
324
324
325
325
### Syntax
326
326
327
- ` result = ` [[ stdlib_system(module): is_windows (function )]] ` () `
327
+ ` result = ` [[ stdlib_system(module): is_windows (interface )]] ` () `
328
328
329
329
### Return Value
330
330
@@ -359,7 +359,7 @@ If the OS cannot be identified, the function returns `OS_UNKNOWN`.
359
359
360
360
### Syntax
361
361
362
- ` os = [[stdlib_system(module):get_runtime_os(function)]]() `
362
+ ` os = ` [[ stdlib_system(module): get_runtime_os (function)]] ` () `
363
363
364
364
### Class
365
365
@@ -396,7 +396,7 @@ This caching mechanism ensures negligible overhead for repeated calls, unlike `g
396
396
397
397
### Syntax
398
398
399
- ` os = [[stdlib_system(module):OS_TYPE(function)]]() `
399
+ ` os = ` [[ stdlib_system(module): OS_TYPE (function)]] ` () `
400
400
401
401
### Class
402
402
@@ -431,7 +431,7 @@ It is designed to work across multiple platforms. On Windows, paths with both fo
431
431
432
432
### Syntax
433
433
434
- ` result = [[stdlib_system(module):is_directory(function)]] (path) `
434
+ ` result = ` [[ stdlib_system(module): is_directory (function)]] ` (path) `
435
435
436
436
### Class
437
437
@@ -471,7 +471,7 @@ It reads as an empty file. The null device's path varies by operating system:
471
471
472
472
### Syntax
473
473
474
- ` path = [[stdlib_system(module):null_device(function)]]() `
474
+ ` path = ` [[ stdlib_system(module): null_device (function)]] ` () `
475
475
476
476
### Class
477
477
@@ -506,7 +506,7 @@ The function provides an optional error-handling mechanism via the `state_type`
506
506
507
507
### Syntax
508
508
509
- ` call [[stdlib_system(module):delete_file(subroutine)]] (path [, err]) `
509
+ ` call ` [[ stdlib_system(module): delete_file (subroutine)]] ` (path [, err]) `
510
510
511
511
### Class
512
512
Subroutine
@@ -532,3 +532,175 @@ The file is removed from the filesystem if the operation is successful. If the o
532
532
``` fortran
533
533
{!example/system/example_delete_file.f90!}
534
534
```
535
+
536
+ ## ` join_path ` - Joins the provided paths according to the OS
537
+
538
+ ### Status
539
+
540
+ Experimental
541
+
542
+ ### Description
543
+
544
+ This interface joins the paths provided to it according to the platform specific path-separator.
545
+ i.e ` \ ` for windows and ` / ` for others
546
+
547
+ ### Syntax
548
+
549
+ ` res = ` [[ stdlib_system(module): join_path (interface)]] ` (p1, p2) `
550
+
551
+ ` res = ` [[ stdlib_system(module): join_path (interface)]] ` (p) `
552
+
553
+ ### Class
554
+ Pure function
555
+
556
+ ### Arguments
557
+
558
+ ` p1, p2 ` : Shall be a character string or ` type(string_type) ` . It is an ` intent(in) ` argument.
559
+ or
560
+ ` p ` : Shall be a list of character strings or list of ` type(string_type) ` . It is an ` intent(in) ` argument.
561
+
562
+ ### Return values
563
+
564
+ The resultant path, either a character string or ` type(string_type) ` .
565
+
566
+ ## ` operator(/) `
567
+
568
+ Alternative syntax to` join_path ` using an overloaded operator. Join two paths according to the platform specific path-separator.
569
+
570
+ ### Status
571
+
572
+ Experimental
573
+
574
+ ### Syntax
575
+
576
+ ` p = lval / rval `
577
+
578
+ ### Class
579
+
580
+ Pure function.
581
+
582
+ ### Arguments
583
+
584
+ ` lval ` : A character string or ` type(string_type) ` . It is an ` intent(in) ` argument.
585
+
586
+ ` rval ` : A character string or ` type(string_type) ` . It is an ` intent(in) ` argument.
587
+
588
+ ### Result value
589
+
590
+ The result is an ` allocatable ` character string or ` type(string_type) `
591
+
592
+ #### Example
593
+
594
+ ``` fortran
595
+ {!example/system/example_path_join.f90!}
596
+ ```
597
+
598
+ ## ` split_path ` - splits a path immediately following the last separator
599
+
600
+ ### Status
601
+
602
+ Experimental
603
+
604
+ ### Description
605
+
606
+ This subroutine splits a path immediately following the last separator after removing the trailing separators
607
+ splitting it into most of the times a directory and a file name.
608
+
609
+ ### Syntax
610
+
611
+ ` call ` [[ stdlib_system(module): split_path (interface)]] ` (p, head, tail) `
612
+
613
+ ### Class
614
+ Subroutine
615
+
616
+ ### Arguments
617
+
618
+ ` p ` : A character string or ` type(string_type) ` containing the path to be split. It is an ` intent(in) ` argument.
619
+ ` head ` : The first part of the path. Either a character string or ` type(string_type) ` . It is an ` intent(out) ` argument.
620
+ ` tail ` : The rest part of the path. Either a character string or ` type(string_type) ` . It is an ` intent(out) ` argument.
621
+
622
+ ### Behavior
623
+
624
+ - If ` p ` is empty, ` head ` is set to ` . ` and ` tail ` is left empty.
625
+ - If ` p ` consists entirely of path-separators, ` head ` is set to the path-separator and ` tail ` is left empty.
626
+ - ` head ` ends with a path-separator if and only if ` p ` appears to be a root directory or child of one.
627
+
628
+ ### Return values
629
+
630
+ The splitted path. ` head ` and ` tail ` .
631
+
632
+ ### Example
633
+
634
+ ``` fortran
635
+ {!example/system/example_path_split_path.f90!}
636
+ ```
637
+
638
+ ## ` base_name ` - The last part of a path
639
+
640
+ ### Status
641
+
642
+ Experimental
643
+
644
+ ### Description
645
+
646
+ This function returns the last part of a path after removing trailing path separators.
647
+
648
+ ### Syntax
649
+
650
+ ` res = ` [[ stdlib_system(module): base_name (interface)]] ` (p) `
651
+
652
+ ### Class
653
+ Function
654
+
655
+ ### Arguments
656
+
657
+ ` p ` : the path, a character string or ` type(string_type) ` . It is an ` intent(in) ` argument.
658
+
659
+ ### Behavior
660
+
661
+ - The ` tail ` of ` [[stdlib_system(module):split_path(interface)]] ` is exactly what is returned. Same Behavior.
662
+
663
+ ### Return values
664
+
665
+ A character string or ` type(string_type) ` .
666
+
667
+ ### Example
668
+
669
+ ``` fortran
670
+ {!example/system/example_path_base_name.f90!}
671
+ ```
672
+
673
+ ## ` dir_name ` - Everything except the last part of the path
674
+
675
+ ### Status
676
+
677
+ Experimental
678
+
679
+ ### Description
680
+
681
+ This function returns everything except the last part of a path.
682
+
683
+ ### Syntax
684
+
685
+ ` res = ` [[ stdlib_system(module): dir_name (interface)]] ` (p) `
686
+
687
+ ### Class
688
+ Function
689
+
690
+ ### Arguments
691
+
692
+ ` p ` : the path, a character string or ` type(string_type) ` . It is an ` intent(in) ` argument.
693
+
694
+ ### Behavior
695
+
696
+ - The ` head ` of ` [[stdlib_system(module):split_path(interface)]] ` is exactly what is returned. Same Behavior.
697
+
698
+ ### Return values
699
+
700
+ A character string or ` type(string_type) ` .
701
+
702
+ ### Example
703
+
704
+ ``` fortran
705
+ {!example/system/example_path_dir_name.f90!}
706
+ ```
0 commit comments