.. index:: single: os
.. _os/0:

.. rst-class:: right

**object**

``os``
======

Portable operating-system access predicates.

| **Availability:** 
|    ``logtalk_load(os(loader))``

| **Author:** Paulo Moura
| **Version:** 1:102:0
| **Date:** 2025-11-15

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Implements:**
|    ``public`` :ref:`osp <osp/0>`
| **Uses:**
|    :ref:`list <list/0>`
| **Aliases:**
|    ``osp`` ``absolute_file_name/2`` as ``expand_path/2``

| **Remarks:**

   - File path expansion: To ensure portability, all file paths are expanded before being handed to the backend Prolog system.
   - Exception terms: Currently, there is no standardization of the exception terms thrown by the different backend Prolog systems.
   - B-Prolog portability: The ``wall_time/1`` predicate is not supported.
   - CxProlog portability: The ``date_time/7`` predicate returns zeros for all arguments.
   - JIProlog portability: The ``file_permission/2`` and ``command_line_arguments/1`` predicates are not supported.
   - Quintus Prolog: The ``pid/1`` and ``shell/2`` predicates are not supported.
   - XSB portability: The ``command_line_arguments/1`` predicate is not supported.

| **Inherited public predicates:**
|     :ref:`osp/0::absolute_file_name/2`  :ref:`osp/0::change_directory/1`  :ref:`osp/0::command_line_arguments/1`  :ref:`osp/0::copy_file/2`  :ref:`osp/0::cpu_time/1`  :ref:`osp/0::date_time/7`  :ref:`osp/0::decompose_file_name/3`  :ref:`osp/0::decompose_file_name/4`  :ref:`osp/0::delete_directory/1`  :ref:`osp/0::delete_directory_and_contents/1`  :ref:`osp/0::delete_directory_contents/1`  :ref:`osp/0::delete_file/1`  :ref:`osp/0::directory_exists/1`  :ref:`osp/0::directory_files/2`  :ref:`osp/0::directory_files/3`  :ref:`osp/0::ensure_directory/1`  :ref:`osp/0::ensure_file/1`  :ref:`osp/0::environment_variable/2`  :ref:`osp/0::file_exists/1`  :ref:`osp/0::file_modification_time/2`  :ref:`osp/0::file_permission/2`  :ref:`osp/0::file_size/2`  :ref:`osp/0::full_device_path/1`  :ref:`osp/0::internal_os_path/2`  :ref:`osp/0::is_absolute_file_name/1`  :ref:`osp/0::make_directory/1`  :ref:`osp/0::make_directory_path/1`  :ref:`osp/0::null_device_path/1`  :ref:`osp/0::operating_system_machine/1`  :ref:`osp/0::operating_system_name/1`  :ref:`osp/0::operating_system_release/1`  :ref:`osp/0::operating_system_type/1`  :ref:`osp/0::path_concat/3`  :ref:`osp/0::pid/1`  :ref:`osp/0::read_only_device_path/1`  :ref:`osp/0::rename_file/2`  :ref:`osp/0::shell/1`  :ref:`osp/0::shell/2`  :ref:`osp/0::sleep/1`  :ref:`osp/0::temporary_directory/1`  :ref:`osp/0::time_stamp/1`  :ref:`osp/0::wall_time/1`  :ref:`osp/0::working_directory/1`  

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

(no local declarations; see entity ancestors if any)

Protected predicates
--------------------

(no local declarations; see entity ancestors if any)

Private predicates
------------------

(no local declarations; see entity ancestors if any)

Operators
---------

(none)

.. seealso::

   :ref:`os_types <os_types/0>`

