0

Windows から Linux 開発に移行し始めています。その過程で、使い慣れた Windows API ( など) をすべて「忘れ」、代わりに Linux 固有の API をたくさん学ぶ必要がありWaitForSingleObjectますCreateTimer
それで、私の質問は...私はすべきですか?つまり、 Boost
のようなクロスプラットフォーム ライブラリが Linux コミュニティで一般的に使用されている場合、Linux 固有の API について事前に学ぶ必要があるのでしょうか?

少なくとも API に精通していることが良い考えであることは十分承知していますが、プロの業界で最も一般的なのは何ですか? Linux に重点を置いたソフトウェア企業のほとんどは、クロスプラットフォーム ライブラリまたは OS 固有の API を使用していますか?

4

2 に答える 2

3

純粋なCプログラマーとして、私は長年成功しているPOSIX標準に依存しています。これは、私にとって、UNIXベースのシステムでこれまで使用した中で最高のポータブルAPIです。@Shiがコメントで指摘しているように、Boostは非常に重いため、組み込みコンピューター用に開発しているのか、デスクトップ/サーバーコンピューター用に開発しているのかが重要です。私は組み込みシステムの開発者でもあり、POSIX標準はuCLinux(組み込みシステム用の小さなLinuxポート)でも非常に移植性があります。

POSIX標準の強みは、その低レベルの実装にあると思います。これは、長年にわたって変更される可能性が低い基本的なコンピューターの概念(デバイスI / O、メモリ管理、IPCなど)を扱います。私たちは、コンピューターが実際に機能する方法ではなく、コンピューターとの対話方法の変化を確認することに慣れています。POSIX標準は、コンピューターの機能を処理する上で成熟しているため、強力です。確かに、私はfork()、pipe()、read()、write()などの魔法の関数が大好きです:-)

于 2012-08-19T14:22:50.450 に答える
3

それは、使用する/必要とする複雑なものによって異なります。たとえば、Linux にはSEM_UNDOSystem V セマフォのオプションがありますが、ブーストが使用されている場合は利用できません。一般に、ブーストの移植性は無料では提供されません。さまざまな O/S の可能性の共通のサブセットのみを使用できます。これで十分な場合は、ブーストを使用し、(場合によっては)あいまいな低レベル API を処理しないでください。これにより、プログラムの移植性が (ある程度) 向上するだけでなく、エラーが発生しにくくなります。

于 2012-08-19T14:19:56.310 に答える