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ócryptmot de pas i dades encryptionencryptencrypt 64-byte missatgesgethostidobtenir l'identificador únic de l'amfitrió actualgethostnameobtenir el nom d'amfitriógetoptanalitzar les opcions de la línia d'ordresswabintercanviar bytes adjacentssysconfobtenir la configuració en temps d'execucióSenyalsalarmprogramar un senyal d'alarmapauseesperar el senyalSistema d'arxiusaccess faccessat faccessat2comproveu els permisos de l'usuari per a un fitxer o si existeixchdir fchdircanviar el directori de treballchown fchown lchown fchownatchange owner and group of a fileclosetancar un descriptor de fitxerdup dup2duplicate a file descriptorfsync fdatasyncsincronitzar l'estat central d'un fitxer amb el dispositiu d'emmagatzematgefpathconf pathconfobtenir els valors de configuració dels fitxersftruncate truncatecrida a un fitxer a una longitud especificadagetcwd getwd get_current_dir_nameget current working directoryisattyprova si un descriptor de fitxer fa referència a un terminallink linkatcrear un nom nou per a un fitxerlockfaplicar, provar o eliminar un bloqueig POSIX en un fitxer obertlseekreposicionar el desplaçament del fitxer de lectura/escripturapipe pipe2crear canonadapread pwritellegir o escriure en un descriptor de fitxer a un desplaçament determinatreadllegir des d'un descriptor de fitxerreadlink readlinkatvalor de lectura d'un enllaç simbòlicrmdireliminar un directorisymlink symlinkatcrear un nom nou per a un fitxersync syncfscomprometre la memòria cau del sistema de fitxers al discttyname ttyname_rretorna el nom d'un terminalunlink unlinkatsuprimir un nom i possiblement el fitxer al qual fa referènciawriteescriure en un descriptor de fitxerProcés_exitfinalitzar el procés de trucadaexecl execlp execle execv execvp execvpeexecutar un fitxerfexecveexecutar el programa especificat mitjançant el descriptor de fitxerforkcrear un nou procéssetpgid getpgid setpgrp getpgrpestablir/obtenir el grup de processosgetpid getppidobtenir la identificació del procésgetsidobtenir l'identificador de sessiónicecanvi de prioritat del procéssetsidcrea una sessió i estableix l'ID del grup de processossleepdormir durant un nombre especificat de segonstcgetpgrp tcsetpgrpobtenir i establir el grup de processos en primer pla del terminalUsuari/Grupgetgid getegidobtenir la identitat del grupgetuid geteuidobtenir la identitat de l'usuarigetgroupsobtenir una llista d'identificacions de grup addicionalsgetlogin getlogin_robtenir nom d'usuariseteuid setegidestabliu un identificador d'usuari o grup efectiusetgidset group identitysetreuid setregidestabliu un identificador d'usuari o grup real i/o efectiusetuidestablir la identitat de l'usuari

Referències

Categoria:Llenguatge de programació C