.. index:: os_types
.. _os_types/0:

.. rst-class:: right

**category**

``os_types``
============

A set of operating-system related types.

| **Author:** Paulo Moura
| **Version:** 1:4:0
| **Date:** 2021-02-12

| **Compilation flags:**
|    ``static``


| **Provides:**
|    :ref:`type::type/1 <type/0::type/1>`
|    :ref:`type::check/2 <type/0::check/2>`
| **Uses:**
|    :ref:`list <list/0>`
|    :ref:`os <os/0>`

| **Remarks:**

   - Provided types: This category adds ``file``, ``file(Extensions)``, ``file(Extensions,Permissions)``, ``directory``, ``directory(Permissions)``, and ``environment_variable`` types for type-checking when using the ``type`` library object.
   - Type ``file``: For checking if a term is an atom and an existing file.
   - Type ``file(Extensions)``: For checking if a term is an atom and an existing file with one of the listed extensions (specified as ``'.ext'``).
   - Type ``file(Extensions,Permissions)``: For checking if a term is an atom and an existing file with one of the listed extensions (specified as ``'.ext'``) and listed permissions ({``read``, ``write``, ``execute``}).
   - Type ``directory``: For checking if a term is an atom and an existing directory.
   - Type ``directory(Permissions)``: For checking if a term is an atom and an existing directory with the listed permissions ({``read``, ``write``, ``execute``}).
   - Type ``environment_variable``: For checking if a term is an atom and an existing environment variable.

| **Inherited public predicates:**
|    (none)

.. 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:`osp <osp/0>`, :ref:`os <os/0>`, :ref:`type <type/0>`

