POSIX チュートリアル
POSIXを使い始める
サーチ…
バージョン
バージョン | 標準 | リリース年 |
---|---|---|
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(別名「 基本仕様、第7版 」) | 2008年12月1日 |
POSIX.1-2013 | IEEE Std 1003.1-2013 | 2013年4月19日 |
POSIX.1-2016 | IEEE Std 1003.1-2016 | 2016-09-30 |
POSIXとは何ですか?
POSIXは「 Portable Operating System Interface(ポータブルオペレーティングシステムインターフェイス) 」の略で、異なるコンピューティングプラットフォーム間の互換性を提供する一連の標準を定義しています。標準の現在のバージョンはIEEE 1003.1 2016であり、OpenGroup POSIX仕様からアクセスできます。以前のバージョンにはPOSIX 2004とPOSIX 1997が含まれています。 POSIX 2016版は本質的にPOSIX 2008と正誤表です(POSIX 2013リリースもあります)。
POSIXは、UNIXライクなオペレーティングシステムなどのためのさまざまなツールのインターフェイス、コマンド、およびAPIを定義しています。
以下は、POSIX標準化の範囲内にあるものとみなされます。
- システムインタフェース(関数、マクロ、および外部変数)
- コマンドインタープリタ、またはシェル( shユーティリティ)
- ユーティリティ( more 、 cat 、 lsなど )
POSIXスコープ外:
- DBMSインタフェース
- グラフィカルインタフェース
- バイナリコードの移植性
こんにちは世界
エラーチェックのない簡単なHello, World
プログラム:
#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;
}
エラーチェックの場合:
#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;
}
コンパイルと実行
上記のコード(いずれかのバージョン)がhello.c
ファイルに格納されている場合、 c99
またはmake
を使用してhello
プログラムにコードをコンパイルできます。例えば、厳密にPOSIXに準拠したモードでは、理論上コンパイルして、以下を使ってプログラムを実行するかもしれません。
$ make hello
c99 -o hello hello.c
$ ./hello
Hello, World
$
ほとんどの実際のmake
実装では、別のCコンパイラ(おそらくcc
、おそらくgcc
、 clang
、 xlc
など)を使用します。多くの場合、コンパイラにはより多くのオプションが使用されます。明らかに、単にmake
がコマンドラインで直接実行するコマンドを入力することができます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow