Sök…


versioner

Version Standard Utgivningsår
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 " Basspecifikationer, nummer 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

Vad är POSIX?

POSIX står för " Portable Operating System Interface " och definierar en uppsättning standarder för att ge kompatibilitet mellan olika datorplattformar. Den nuvarande versionen av standarden är IEEE 1003.1 2016 och kan nås från OpenGroup POSIX-specifikationen . Tidigare versioner inkluderar POSIX 2004 och POSIX 1997 . POSIX 2016-utgåvan är i huvudsak POSIX 2008 plus errata (det fanns också en POSIX 2013-utgåva).

POSIX definierar olika verktygsgränssnitt, kommandon och API: er för UNIX-liknande operativsystem och andra.

Följande anses vara inom ramen för POSIX-standardisering:

  • Systemgränssnitt (funktioner, makron och externa variabler)
  • Kommandotolk eller Shell ( sh- verktyget)
  • Verktyg (som mer , katt , ls )

Utanför POSIX omfattning:

  • DBMS-gränssnitt
  • Grafiska gränssnitt
  • Binär kodportabilitet

Hej världen

Ett enkelt Hello, World program utan felkontroll:

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

Och med felkontroll:

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

Kompilering och löpning

Om koden som visas ovan (antingen version) lagras i filen hello.c , då kan du kompilera koden till ett program hello med antingen c99 eller make . Till exempel i ett strikt POSIX-kompatibelt läge kan du i teorin kompilera och köra programmet med:

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

Mest aktuella make implementeringar kommer att använda en annan C-kompilator (kanske cc , kanske gcc , clang , xlc eller något annat namn), och många kommer att använda fler alternativ till kompilatorn. Det är klart att du helt enkelt kan skriva in kommandot som make exekveringar direkt på kommandoraden.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow