POSIX Tutorial                
            Iniziare con POSIX
        
        
            
    Ricerca…
Versioni
| Versione | Standard | Anno di pubblicazione | 
|---|---|---|
| POSIX.1 | IEEE Std 1003.1-1988 | 1988/01/01 | 
| POSIX.1b | IEEE Std 1003.1b-1993 | 1993/01/01 | 
| POSIX.1c | IEEE Std 1003.1c-1995 | 1995-01-01 | 
| POSIX.2 | IEEE Std 1003.2-1992 | 1992/01/01 | 
| POSIX.1-2001 | IEEE Std 1003.1-2001 | 2001/12/06 | 
| POSIX.1-2004 | IEEE Std 1003.1-2004 | 2004-01-01 | 
| POSIX.1-2008 | IEEE Std 1003.1-2008 (alias " Base Specifications, Issue 7 ") | 2008-12-01 | 
| POSIX.1-2013 | IEEE Std 1003.1-2013 | 2013/04/19 | 
| POSIX.1-2016 | IEEE Std 1003.1-2016 | 2016/09/30 | 
Cos'è POSIX?
POSIX è l'acronimo di " Portable Operating System Interface " e definisce una serie di standard per garantire la compatibilità tra diverse piattaforme di elaborazione. La versione attuale dello standard è IEEE 1003.1 2016 e si può accedere dalla specifica POSIX di OpenGroup. Le versioni precedenti includono POSIX 2004 e POSIX 1997 . L'edizione POSIX 2016 è essenzialmente POSIX 2008 più errata (c'era anche una versione POSIX 2013).
POSIX definisce vari strumenti interfacce, comandi e API per sistemi operativi simili a UNIX e altri.
Quanto segue sono considerati nell'ambito della standardizzazione POSIX:
- Interfaccia di sistema (funzioni, macro e variabili esterne)
- Interprete dei comandi o Shell (l'utilità sh )
- Utilità (come più , cat , ls )
Fuori dall'ambito POSIX:
- Interfacce DBMS
- Interfacce grafiche
- Portabilità del codice binario
Ciao mondo
 Un semplice programma Hello, World senza controllo degli errori: 
#include <unistd.h> /* For write() and STDOUT_FILENO */
#include <stdlib.h> /* For EXIT_SUCCESS and EXIT_FAILURE */
int main(void) {
        char hello[] = "Hello, World\n";
        
        /* Attempt to write `hello` to standard output file */
        write(STDOUT_FILENO, hello, sizeof(hello) - 1);
        return EXIT_SUCCESS; 
}
E con il controllo degli errori:
#include <unistd.h> /* For write() and STDOUT_FILENO */
#include <stdlib.h> /* For EXIT_SUCCESS and EXIT_FAILURE */
int main(void) {
        char hello[] = "Hello, World\n";
        ssize_t ret = 0;
        
        /* Attempt to write `hello` to standard output file */
        ret = write(STDOUT_FILENO, hello, sizeof(hello) - 1);
        if (ret == -1) {
                /* write() failed. */
                return EXIT_FAILURE;
        } else if (ret != sizeof(hello) - 1) {
                /* Not all bytes of `hello` were written. */
                return EXIT_FAILURE;
        }
        return EXIT_SUCCESS; 
}
Compilare e correre
 Se il codice mostrato sopra (o la versione) è memorizzato nel file hello.c , allora puoi compilare il codice in un programma hello usando c99 o make . Ad esempio, in modalità strettamente conforme a POSIX, è possibile in teoria compilare ed eseguire il programma utilizzando: 
$ make hello
c99 -o hello hello.c
$ ./hello
Hello, World
$
 Le implementazioni make più effettive useranno un compilatore C diverso (forse cc , forse gcc , clang , xlc o qualche altro nome), e molti useranno più opzioni per il compilatore. Chiaramente, si può semplicemente digitare il comando che make esegue direttamente sulla riga di comando.