現在、C/C++ で小さなサーバーのプログラミングを計画しています。そのソフトウェアの宛先はある種のLinuxサーバーになるので、Linuxでサーバーをプログラムするのが最善のアイデアだと思いました。問題は、私は MacBook (Air) を所有しており、Linux VM をセットアップしましたが、IDE (Qt クリエーター) が私を驚かせていることです。そのため、Xcode 内でサーバーを開発することを考え、それをコンパイルし終えたら、 VM. では、pthread と socket.h に関しては、移植性のグレードがどれくらい高いのだろうか? それらが特定のグレードに移植可能である場合、Xcode で開発することをお勧めしますか? (サーバーのクライアントはiOSアプリになるため、私はXcodeに精通しています。英語が下手で申し訳ありません(私はドイツ出身です)、そして(おそらく)コメントに感謝します:)
2 に答える
threading libraryとsocket libraryboost
の両方のプラットフォーム固有の詳細を抽象化するようなサードパーティのライブラリを使用できます。Linux および Mac OS X オペレーティング システムは両方ともブーストでサポートされています。
私の答えはc++
具体的です。質問にc
もタグを付けているようです。
Boost を使用すると生活が楽になるかもしれませんが、質問に答えるに<pthread.h>
は<sys/socket.h>
、標準の POSIX ヘッダーであり、Mac OS X や GNU/Linux などの POSIX システム間で移植可能です。GNU ヘッダーには、非標準の拡張機能または新しい POSIX の一部であるため、Mac OS X ではサポートされていないものが含まれている可能性がありますが、Mac OS X で利用可能なほぼすべてのものは<pthread.h>
GNU <sys/socket.h>
/Linux でも利用でき、動作します同じ。確実にするには、関数のマニュアルページを読むか、 Single UNIX Specificationをオンラインで確認して、プラットフォーム固有の機能ではなく、移植可能な POSIX 機能のみを使用していることを確認してください(そのリンクは、Mac OS Xをサポートしており、GNU/Linux は最新のPOSIX 2008仕様にほとんど準拠しています。)
Mac OS X は基本 POSIX 仕様をサポートしていますが、すべてのオプション部分をサポートしているわけではないことに注意してください。たとえば、POSIX 2001 の「タイマー」オプションはサポートしていません (これは基本仕様の一部であり、POSIX-2008 ではオプションではありません)。