POSIX Handledning
Komma igång med POSIX
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.