POSIX Samouczek                
            Rozpoczęcie pracy z POSIX
        
        
            
    Szukaj…
Wersje
| Wersja | Standard | Rok wydania | 
|---|---|---|
| POSIX.1 | IEEE Std 1003.1-1988 | 01.01.1988 | 
| 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 | 01.01.2004 | 
| POSIX.1-2008 | IEEE Std 1003.1-2008 (aka „ Specyfikacje podstawowe, wydanie 7 ”) | 01.12.2008 | 
| POSIX.1-2013 | IEEE Std 1003.1-2013 | 19.04.2013 | 
| POSIX.1-2016 | IEEE Std 1003.1-2016 | 30.09.2016 | 
Co to jest POSIX?
POSIX oznacza „ przenośny interfejs systemu operacyjnego ” i określa zestaw standardów zapewniających kompatybilność między różnymi platformami obliczeniowymi. Obecna wersja standardu to IEEE 1003.1 2016 i jest dostępna w specyfikacji OpenGroup POSIX . Poprzednie wersje obejmują POSIX 2004 i POSIX 1997 . Edycja POSIX 2016 to zasadniczo POSIX 2008 plus errata (była też wersja POSIX 2013).
POSIX definiuje różne interfejsy narzędzi, polecenia i interfejsy API dla systemów operacyjnych typu UNIX i innych.
Następujące są uważane za objęte standaryzacją POSIX:
- Interfejs systemu (funkcje, makra i zmienne zewnętrzne)
- Interpreter poleceń lub Shell (narzędzie sh )
- Narzędzia (takie jak more , cat , ls )
Poza zakresem POSIX:
- Interfejsy DBMS
- Interfejsy graficzne
- Przenośność kodu binarnego
Witaj świecie
 Prosty program Hello, World bez sprawdzania błędów: 
#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; 
}
I ze sprawdzaniem błędów:
#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; 
}
Kompilowanie i uruchamianie
 Jeśli powyższy kod (dowolna wersja) jest przechowywany w pliku hello.c , możesz skompilować kod w programie hello za pomocą c99 lub make . Na przykład, w trybie ściśle zgodnym z POSIX, możesz teoretycznie skompilować i uruchomić program przy użyciu: 
$ make hello
c99 -o hello hello.c
$ ./hello
Hello, World
$
 Większość rzeczywistych implementacji make używa innego kompilatora C (być może cc , być może gcc , clang , xlc lub innej nazwy), a wiele z nich używa więcej opcji kompilatora. Oczywiście, możesz po prostu wpisać polecenie, które make wykonuje bezpośrednio w wierszu poleceń.