私はC +アルゴリズムを学んでいます(終わったばかりです)。初心者です。私は、POSIX Linux APIがMac上で使用されているかどうかを知りたかったのです。 Linuxには、pread pwrite readv writev nftw symlink pipe popen posix_self sigprocmask sigaction(システムコール)のような機能があります。 Macには同じAPIがありますか? OS-XはBSDカーネルをベースにしていると聞いています.OS-X上でLinux上で書かれたコードをPOSIX関数だけを使用すると使えばいいのですか? OS-X APIとLinux POSIX/SUSv3 APIの似たような点は?MacOS-XとLinux APIのプログラミング - POSIX互換?
答えて
The Wikipedia article on POSIXには、コンプライアンス専用のセクションがあります。短い答え:ええ、POSIXのすべての機能を持っていると思います。おそらくPOSIXでないかもしれない多くのBSD apisを持っているでしょう。
linuxとmac os xの両方がposixに準拠している場合、なぜバイナリと互換性がないのですか? LinuxのターミナルプログラムをMacで動かすべきではありませんか? – poitroae
いいえPOSIXは[API](http://en.wikipedia.org/wiki/API)ですが、両方のオペレーティングシステムで同じものを実行するには、同じ[ABI](http:// en。 wikipedia.org/wiki/Application_binary_interface)、MacとLinuxではそうではありません。 –
両方のプラットフォームで動作するコードを書くことができるかどうかを尋ねるなら、答えはyesです。それが簡単かどうかを尋ねているなら、答えはおそらくノーです。
POSIXはLinux標準ではありませんが、OSX、BSD、HPUX、Solaris、さらにはQNXなどのリアルタイムオペレーティングシステムでさえLinuxがこれに従います。
可能な限りPOSIX APIをプログラミングすると、コードを移植する方がずっと簡単になります。
彼らはを閉じるです。 Linuxでは見つからないBSDや、BSDで見つからないLinuxのものがあります。ほとんどの場合、両方のプラットフォームと互換性のあるサブセットには、ほとんど問題なく使用できます。移植性のないPOSIX APIには、多くの場合、_np
という指定子が付いています。 1つのプラットフォームでサポートされていないものもあります。より確立されたAPIには安全な中間地があります。もちろん、これは、対象のOSのバージョンによって異なります。より一般的でないAPIに迷惑をかけると、実装が多少異なる場合があります。私の最初のストップは、man
ページをチェックすることです。
は_BSD_SOURCEで動作します(機能テストマクロ)?あなたのコードをもっとBSD-ishにする定義を有効にするはずですか? –
長い間、OS Xは「BSD風」でした。 10.5 + Intel以来、それは正式にUNIXに準拠しています - http://en.wikipedia.org/wiki/UNIX_03。私が推奨するのは、ターゲットとするすべてのシステム(可能な場合)と互換性のあるAPIを使用することです。そのサブセットに使用するものを絞り込むだけです。 x-platプログラムは、1つのシステムに対してこれらのAPIを実装しなくてはならないときにはるかに複雑になります。 LinuxでビルドするときにソースでBSD拡張を見つけたら、両方で利用できるAPIを使うようにプログラムを変更するだけです。 OS Xはダーウィンであり、事態がさらに複雑になります。 – justin
- 1. POSIX互換シェルスクリプト:シバンで始める?
- 2. POSIXの互換性をテストするには?
- 3. Visual Studio C用のPOSIX互換のregexライブラリ
- 4. Python Keras - WindowsとLinuxの互換性
- 5. Mono互換CMS for Linux
- 6. AMI linuxはLinuxのフレーバーと互換性があります
- 7. DropBox API v2とのDropNet互換性
- 8. ノードLinux/Windowsの互換性の問題
- 9. 共有メモリlibとlinuxとwindowsとの互換性C++
- 10. iOS 6 APIと下位互換性
- 11. IBM BluemixとRedHat/SUSE Linuxとの互換性/回避策
- 12. BlackBerry API互換性テスト
- 13. ESP8266 Linux:プログラミングと点滅
- 14. posixベースの正規表現をサポートするプログラミング言語は?
- 15. POSIX C APIの乱数
- 16. Linuxシェル:VLCプログラミング
- 17. UNIXプログラミングlinux
- 18. Linux AWKプログラミング
- 19. Linux Cプログラミング
- 20. USBプログラミング:C/Linux
- 21. linux BluetoothプログラミングのC
- 22. LinuxでのC++プログラミング
- 23. POSIXファイル記述子とCファイルの相互作用
- 24. Windows OpenJDKがLinuxと互換性がありませんOpenJDK
- 25. Intel x86エミュレータアクセラレータはLinuxと互換性がありません
- 26. 異なるライブラリからのPosixに準拠したpthread_mutex_tは互いに互換性がありますか?
- 27. Linuxでの関数パラメータの意味Pthread Scheduling APIのプログラミング
- 28. API 15のActionBar互換性問題
- 29. 互換性のない型エラージオコーダGoogle API
- 30. Marklogic Rest-API lib&models xqueryの互換性
OSXはUnixの認定を受けています。 Linuxはそうではありません。 BSDのルーツはUnixにあります。 – Rob