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ń.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow