En los lenguajes de programación C y C ++ , unistd.h
es el nombre del archivo de encabezado que proporciona acceso a la API del sistema operativo POSIX . Está definido por el estándar POSIX.1, la base de la Especificación Única de Unix y, por lo tanto, debería estar disponible en cualquier sistema operativo y compilador compatible con POSIX . Por ejemplo, esto incluye Unix y Unix-como sistemas operativos, tales como variantes de GNU , distribuciones de Linux y BSD , y macOS , y compiladores tales como GCC y LLVM .
En sistemas similares a Unix, la interfaz definida por unistd.h
típicamente se compone en gran parte de la llamada al sistema envoltura funciones tales como fork
, pipe
y I / O primitivas ( read
, write
, close
, etc.).
Las capas de compatibilidad Unix como Cygwin y MinGW también proporcionan sus propias versiones de unistd.h. De hecho, esos sistemas lo proporcionan junto con las bibliotecas de traducción que implementan sus funciones en términos de funciones de Win32 . Por ejemplo, en Cygwin, se puede encontrar un archivo de encabezado /usr/include
que incluye un archivo con el mismo nombre en formato /usr/include/sys
. No todo está definido allí, pero algunas definiciones se hacen mediante referencias a los encabezados de la biblioteca estándar GNU C (como stddef.h ) que proporcionan el tipo size_t y muchos más. Por lo tanto, unistd.h es solo una capa adaptativa definida genéricamente que podría basarse en definiciones específicas del compilador y del sistema ya existentes. Esto tiene la ventaja general de no tener definido un conjunto posiblemente concurrente de archivos de encabezado, sino uno que se construya sobre la misma raíz que, por esta razón, generará muchas menos preocupaciones en casos de uso combinado.
enlaces externos
- Especificación única de UNIX , Edición 7 de The Open Group : tipos y constantes simbólicos estándar - Referencia de definiciones de base,