Zoeken…


versies

Versie Standaard Jaar van uitgave
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 (ook bekend als " Basisspecificaties, uitgave 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

Wat is POSIX?

POSIX staat voor " Portable Operating System Interface " en definieert een reeks normen voor compatibiliteit tussen verschillende computerplatforms. De huidige versie van de standaard is IEEE 1003.1 2016 en is toegankelijk via de POSIX-specificatie van OpenGroup. Eerdere versies omvatten POSIX 2004 en POSIX 1997 . De POSIX 2016-editie is in wezen POSIX 2008 plus errata (er was ook een POSIX 2013-release).

POSIX definieert verschillende gereedschapsinterfaces, opdrachten en API's voor UNIX-achtige besturingssystemen en andere.

Het volgende wordt geacht binnen het bereik van POSIX-standaardisatie te vallen:

  • Systeeminterface (functies, macro's en externe variabelen)
  • Command interpreter of Shell (het hulpprogramma sh )
  • Hulpprogramma's (zoals meer , cat , ls )

Buiten het bereik van POSIX:

  • DBMS-interfaces
  • Grafische interfaces
  • Binaire codeportabiliteit

Hallo Wereld

Een eenvoudig Hello, World programma zonder foutcontrole:

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

En met foutcontrole:

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

Compileren en uitvoeren

Als de hierboven getoonde code (beide versies) is opgeslagen in het bestand hello.c , dan kunt u de code compileren in een programma hello met behulp van c99 of make . In een strikt POSIX-compatibele modus kunt u het programma in theorie bijvoorbeeld compileren en uitvoeren met:

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

De meeste werkelijke make -implementaties zal een andere C-compiler (misschien gebruiken cc , misschien gcc , clang , xlc of een andere naam), en velen zullen meer opties gebruiken om de compiler. Het is duidelijk, kan je typt de opdracht die make uitvoert rechtstreeks op de opdrachtregel.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow