問題タブ [posix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - POSIXでランダムダブルを生成する最良の方法は何ですか?
[0.0, 1.0) の範囲で一様分布を取得したい
可能であれば、実装で/dev/urandom からのランダム バイトを使用できるようにしてください。
あなたのソリューションがthread-safeであればそれもいいでしょう。不明な場合は、その旨をご指示ください。
他の回答を読んだ後に考えた解決策を見てください。
linux - ソケットでリッスン解除することは可能ですか?
listen(fd, backlog) を呼び出した後、ソケットでリッスンを解除することは可能ですか?
編集:自分自身を明確にしないという私の間違い。ソケットで一時的にリッスンを解除できるようにしたいと思います。close() を呼び出すと、ソケットが M2LS 状態のままになり、再度開くことができなくなります (さらに悪いことに、悪意のあるプログラムがそのソケットにバインドされる可能性があります)。
一時的にリッスンしないことは、アップストリームのロード バランサーに、このアプリがこれ以上リクエストを受け入れられないことを通知する方法です (最善の方法ではないかもしれません)。
windows - Windowsでアトミックファイルの名前変更(上書きあり)は可能ですか?
POSIXシステムでは、rename(2)は、宛先ファイルが存在する場合、およびアクセス許可が許可されている場合の上書きを含む、アトミックな名前変更操作を提供します。
Windowsで同じセマンティクスを取得する方法はありますか?VistaおよびServer2008でのMoveFileTransacted()については知っていますが、Win2k以降をサポートするにはこれが必要です。
ここでのキーワードはアトミックです...ソリューションは、操作を一貫性のない状態のままにするような方法で失敗してはなりません。
これはwin32では不可能だと多くの人が言うのを見てきましたが、本当にそうですか?
可能であれば、信頼できる引用を提供してください。
shell - Bourne Shell で文字列を比較するにはどうすればよいですか?
シェルで文字列を比較する必要があります:
しかし、明らかに「*」はシェルでは機能しません。それを行う方法はありますか?
windows - GCC-Windows が cygwin に依存するのはなぜですか?
私は C++ 開発者ではありませんが、常にコンパイラに興味があり、GCC の一部 (特に LLVM) をいじることに興味があります。
Windows では、GCC を正しく実行するには POSIX エミュレーション レイヤー (cygwin または MinGW) が必要です。
何故ですか?
私は、C++ で記述され、さまざまなプラットフォーム (Subversion、Firefox、Apache、MySQL) 用にクロスコンパイルされた他の多くのソフトウェアを使用していますが、いずれも cygwin や MinGW を必要としません。
C++ のベスト プラクティス プログラミングに関する私の理解では、プラットフォームに中立なコードを適度に記述し、コンパイル プロセス中にすべての違いに対処できるということです。
では、GCC との契約はどうなるでしょうか。Windows でネイティブに実行できないのはなぜですか?
編集:
さて、これまでの2つの回答は、基本的に「GCCはposixヘッダーを使用するため、posixレイヤーを使用します」と言っています。
しかし、それは実際には質問に答えません。
お気に入りの標準ライブラリ用の一連のヘッダーが既にあるとしましょう。なぜまだ posix ヘッダーが必要なのですか?
GCC は、実際にRUNするために cygwin/mingw を必要としますか?
それとも、ヘッダーとライブラリのエミュレーション レイヤーだけが必要ですか? もしそうなら、必要なリソースを含む「lib」ディレクトリを与えることができないのはなぜですか?
もう一度編集:
わかりました、私は質問を明確にするためにもう一度試みます...
また、D プログラミング言語でコードを書きます。公式のコンパイラは「dmd」という名前で、Windows と Linux の両方に公式のコンパイラ バイナリがあります。
Windows バージョンでは、POSIX エミュレーションは一切必要ありません。また、Linux バージョンでは、Win32 エミュレーションは一切必要ありません。コンパイラがその環境に関する仮定を持っている場合、コンパイラはそれらの仮定をかなりうまく隠します。
もちろん、標準ライブラリの場所と、静的または動的にリンクするライブラリの場所をコンパイラに指示する必要があります。
対照的に、GCC は posix 環境で動作しているふりをすることを主張し、エミュレーション レイヤーをセットアップすることによって、これらの仮定をユーモアを交えて表現するように ME に要求します。
しかし、正確には、GCC 内でその層に依存しているものは何でしょうか? stdlib ヘッダーを探しているだけで、「/usr/lib」内にそれらのヘッダーが見つかると想定していますか?
その場合、「C:/gcc/lib」を調べてそれらのヘッダー ファイルを見つけるように指示することはできませんか?
それとも、GCC 自体が POSIX ライブラリに依存してファイル システムにアクセスする (およびその他の低レベルの操作を行う) のでしょうか。そうであれば、お気に入りの Windows POSIX ライブラリに静的にリンクしないのはなぜだろうか。ユーザーが依存関係をアプリケーションに直接組み込むことができるのに、なぜユーザーが依存関係をセットアップする必要があるのでしょうか?
c++ - OSXにはmemalignがありません
私はCでプロジェクトに取り組んでおり、memalign()が必要です。実際には、posix_memalign()も同様に機能しますが、darwin/OSXには両方がありません。
靴べらの良い解決策は何ですか?memalign.cを取り除いてプロジェクトに入れるとしたら、posix-Cコードのライセンスがわかりません。プロジェクト全体にウイルスタイプのライセンスをLGPLで使用したくありません。
c++ - vswprintf がクラッシュする
10 月 2 日にリリースされた Symbian S60 第 5 版 SDK を使用して、次のコード スニペットをコンパイル/実行しています (sim 上で):
明らかな理由はありませんが ( vswprintfのマニュアル ページを 100 回読んだ後でも)、長い文字列の vswprintf 呼び出しでこのコードがクラッシュする理由を理解できます :-(まったく同じコードが Linux ボックスで正常に動作します. str には十分なメモリが割り当てられており、さらに vswprintf はとにかくバッファ オーバーランをチェックしています. 残念ながら ... S60 デバッガはこのクラッシュで壊れないので、詳細はわかりません :-(
誰にもアイデアはありますか?
Symbian の vswprintf ルーチンにバグがあると仮定すると、POSIX 準拠のコードを使用した代替関数として何が考えられるでしょうか? (これはクロスプラットフォームのライブラリであるはずです)
ありがとう。
c - sigaction と signal はどう違いますか?
ここにあるアプリに追加のシグナル ハンドラーを追加しようとしていたところ、作成者がsigaction()
他のシグナル ハンドラーをセットアップしていたことに気付きました。使うつもりでしたsignal()
。慣例に従うには使用する必要がありますsigaction()
が、最初から書いている場合はどれを選択すればよいですか?
python - 日時をPOSIX時間に変換する
Pythonで日時または日付オブジェクトをPOSIXタイムスタンプに変換するにはどうすればよいですか?タイムスタンプから日時オブジェクトを作成する方法はありますが、逆の方法で操作を行うための明白な方法は見つからないようです。
c - ファイル アクセスに mmap を使用する必要があるのはいつですか?
POSIX 環境では、ファイルにアクセスする方法が少なくとも 2 つあります。標準的なシステム コールopen()
、read()
、write()
、およびその仲間がありますがmmap()
、ファイルを仮想メモリにマップするために使用するオプションもあります。
どちらか一方を使用するのが望ましいのはいつですか? 2 つのインターフェイスを含める価値がある個々の利点は何ですか?