Suche…


Versionen

Ausführung Standard Erscheinungsjahr
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 (auch bekannt als " Basisspezifikationen, Ausgabe 7 ") 2008-12-01
POSIX.1-2013 IEEE-Standard 1003.1-2013 2013-04-19
POSIX.1-2016 IEEE Std 1003.1-2016 2016-09-30

Was ist POSIX?

POSIX steht für " Portable Operating System Interface " und definiert eine Reihe von Standards, um die Kompatibilität zwischen verschiedenen Computerplattformen zu gewährleisten. Die aktuelle Version des Standards ist IEEE 1003.1 2016 und kann von der OpenGroup POSIX-Spezifikation aus aufgerufen werden. Frühere Versionen enthalten POSIX 2004 und POSIX 1997 . Die Ausgabe von POSIX 2016 umfasst im Wesentlichen POSIX 2008 plus errata (es gab auch eine Veröffentlichung von POSIX 2013).

POSIX definiert verschiedene Werkzeugschnittstellen, Befehle und APIs für UNIX-ähnliche Betriebssysteme und andere.

Folgendes wird als im Rahmen der POSIX-Standardisierung betrachtet:

  • Systemschnittstelle (Funktionen, Makros und externe Variablen)
  • Befehlsinterpreter oder Shell (das Dienstprogramm sh )
  • Dienstprogramme (wie more , cat , ls )

Außerhalb des POSIX-Bereichs:

  • DBMS-Schnittstellen
  • Grafische Schnittstellen
  • Binärcode-Portabilität

Hallo Welt

Ein einfaches Hello, World Programm ohne Fehlerprüfung:

#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; 
}

Und mit Fehlerprüfung:

#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; 
}

Kompilieren und Laufen

Wenn der Code oben (entweder Version) gezeigt wird in der Datei gespeichert hello.c , dann können Sie den Code in ein Programm kompilieren hello entweder mit c99 oder make . In einem streng POSIX-kompatiblen Modus können Sie das Programm theoretisch wie folgt kompilieren und ausführen:

$ make hello
c99 -o hello hello.c
$ ./hello
Hello, World
$

Die meisten tatsächlichen make Implementierungen verwenden einen anderen C-Compiler (vielleicht cc , vielleicht gcc , clang , xlc oder einen anderen Namen), und viele verwenden mehr Optionen für den Compiler. Natürlich können Sie einfach den Befehl eingeben, der von make direkt in der Befehlszeile ausgeführt wird.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow