# Unistd.h

En els llenguatges de programació C i C++, unistd.h és el nom del fitxer de capçalera que proporciona accés a l'API del sistema operatiu POSIX. Està definit per l'estàndard POSIX.1, la base de l'Especificació Única Unix i, per tant, hauria d'estar disponible en qualsevol sistema operatiu i compilador compatible amb POSIX. Per exemple, això inclou sistemes operatius Unix i similars a Unix, com ara variants de GNU, distribucions de Linux i BSD, i macOS, i compiladors com GCC i LLVM.
En sistemes semblants a Unix, la interfície definida per unistd.h normalment es compon principalment de funcions d'embolcall de trucades de sistema com ara primitives fork, pipe i I/O (read, write, close, etc.).
Les capes de compatibilitat Unix com Cygwin i MinGW també proporcionen les seves pròpies versions d'unistd.h. De fet, aquests sistemes el proporcionen juntament amb les biblioteques de traducció que implementen les seves funcions en termes de funcions win32. Per exemple, a Cygwin, es pot trobar un fitxer de capçalera a /usr/include que subinclou un fitxer del mateix nom a /usr/include/sys. No hi ha tot definit, però algunes definicions es fan mitjançant referències a les capçaleres de la biblioteca estàndard GNU C (com stddef.h) que proporcionen el tipus size_t i molts més. Per tant, unistd.h és només una capa adaptativa definida genèricament que es podria basar en definicions específiques del compilador i del sistema ja existents. Això té l'avantatge general de no tenir un conjunt possiblement simultània de fitxers de capçalera definit, sinó un que es construeix sobre la mateixa arrel que, per aquest motiu, generarà moltes menys preocupacions en casos d'ús combinats.

## Visió general de les funcions

| | Funció | Descripció |
| | crypt | mot de pas i dades encryption |
| | encrypt | encrypt 64-byte missatges |
| | gethostid | obtenir l'identificador únic de l'amfitrió actual |
| | gethostname | obtenir el nom d'amfitrió |
| | getopt | analitzar les opcions de la línia d'ordres |
| | swab | intercanviar bytes adjacents |
| | sysconf | obtenir la configuració en temps d'execució |
| Senyals | alarm | programar un senyal d'alarma |
| Senyals | pause | esperar el senyal |
| Sistema d'arxius | access faccessat faccessat2 | comproveu els permisos de l'usuari per a un fitxer o si existeix |
| Sistema d'arxius | chdir fchdir | canviar el directori de treball |
| Sistema d'arxius | chown fchown lchown fchownat | change owner and group of a file |
| Sistema d'arxius | close | tancar un descriptor de fitxer |
| Sistema d'arxius | dup dup2 | duplicate a file descriptor |
| Sistema d'arxius | fsync fdatasync | sincronitzar l'estat central d'un fitxer amb el dispositiu d'emmagatzematge |
| Sistema d'arxius | fpathconf pathconf | obtenir els valors de configuració dels fitxers |
| Sistema d'arxius | ftruncate truncate | crida a un fitxer a una longitud especificada |
| Sistema d'arxius | getcwd getwd get_current_dir_name | get current working directory |
| Sistema d'arxius | isatty | prova si un descriptor de fitxer fa referència a un terminal |
| Sistema d'arxius | link linkat | crear un nom nou per a un fitxer |
| Sistema d'arxius | lockf | aplicar, provar o eliminar un bloqueig POSIX en un fitxer obert |
| Sistema d'arxius | lseek | reposicionar el desplaçament del fitxer de lectura/escriptura |
| Sistema d'arxius | pipe pipe2 | crear canonada |
| Sistema d'arxius | pread pwrite | llegir o escriure en un descriptor de fitxer a un desplaçament determinat |
| Sistema d'arxius | read | llegir des d'un descriptor de fitxer |
| Sistema d'arxius | readlink readlinkat | valor de lectura d'un enllaç simbòlic |
| Sistema d'arxius | rmdir | eliminar un directori |
| Sistema d'arxius | symlink symlinkat | crear un nom nou per a un fitxer |
| Sistema d'arxius | sync syncfs | comprometre la memòria cau del sistema de fitxers al disc |
| Sistema d'arxius | ttyname ttyname_r | retorna el nom d'un terminal |
| Sistema d'arxius | unlink unlinkat | suprimir un nom i possiblement el fitxer al qual fa referència |
| Sistema d'arxius | write | escriure en un descriptor de fitxer |
| Procés | _exit | finalitzar el procés de trucada |
| Procés | execl execlp execle execv execvp execvpe | executar un fitxer |
| Procés | fexecve | executar el programa especificat mitjançant el descriptor de fitxer |
| Procés | fork | crear un nou procés |
| Procés | setpgid getpgid setpgrp getpgrp | establir/obtenir el grup de processos |
| Procés | getpid getppid | obtenir la identificació del procés |
| Procés | getsid | obtenir l'identificador de sessió |
| Procés | nice | canvi de prioritat del procés |
| Procés | setsid | crea una sessió i estableix l'ID del grup de processos |
| Procés | sleep | dormir durant un nombre especificat de segons |
| Procés | tcgetpgrp tcsetpgrp | obtenir i establir el grup de processos en primer pla del terminal |
| Usuari/Grup | getgid getegid | obtenir la identitat del grup |
| Usuari/Grup | getuid geteuid | obtenir la identitat de l'usuari |
| Usuari/Grup | getgroups | obtenir una llista d'identificacions de grup addicionals |
| Usuari/Grup | getlogin getlogin_r | obtenir nom d'usuari |
| Usuari/Grup | seteuid setegid | establiu un identificador d'usuari o grup efectiu |
| Usuari/Grup | setgid | set group identity |
| Usuari/Grup | setreuid setregid | establiu un identificador d'usuari o grup real i/o efectiu |
| Usuari/Grup | setuid | establir la identitat de l'usuari |

## Referències

* ↑ «unistd.h(0p) — Linux manual page» (en anglès). [Consulta: 25 novembre 2023].
* ↑ «unistd.h - standard symbolic constants and types» (en anglès). [Consulta: 25 desembre 2023].
* ↑ «C Standard Library header files - cppreference.com» (en anglès). [Consulta: 25 desembre 2023].
* ↑ «unistd.h (GNU Gnulib)» (en anglès). [Consulta: 25 desembre 2023].