問題タブ [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 - pthread コールバックがユーザー入力を中断する
独自の stop_watch モジュールを作成しました。これにより、スレッドが作成され、数秒間スリープ状態になります。秒が経過すると、main.c でコールバック関数が呼び出され、ユーザーに時間が経過したことが通知されます。
これは、ユーザーが数字を入力するのに 3 秒しか与えられず、5 桁を入力する必要があるようにするためです。期限が切れた場合、プログラムは停止する必要があります。
2つの問題。1) 所要時間内に数字を入力した場合。スレッドをキャンセルするにはどうすればよいですか。thread_kill または thread_cancel を使用することを考えていましたか? 2) do_while ループで終了するにはどうすればよいですか? ユーザーが入力するのを待っている間、scanfはブロックします。
ご提案いただきありがとうございます。
以下の私のコード:
ちなみに、この質問はC99 gccに関するものです。
java - UNIXの/etc/ groupファイルを読み取るためのJavaパッケージはありますか?
私はインターネットを精査して、UNIXの/ etc/groupファイルを解析できるJavaパッケージ/クラスを探しています。これを最初から書くのはそれほど難しいことではありませんが、すでにそこに何かが見つからないことに私は非常に驚いています。POSIX passwdクラス(http://www.bmsi.com/java/posix/docs/posix.Passwd.htmlを参照)がありますが、/ etc/groupに同様のクラスが見つかりません。そのようなものは存在しますか?
macos - Mac OS X の POSIX セマフォ: sem_timedwait の代替
セマフォを使用するプロジェクトを (Linux から) Mac OS X に移植しようとしていますが、一部の posix セマフォは Mac OS X に実装されていません。
このポートで打ったのはsem_timedwait()
セマフォについてはよくわかりませんが、マニュアルページからはsem_wait()
近いようsem_timedwait
で、実装されています
マニュアルページから
sem_timedwait()
sem
関数は、関数内の as によって参照されるセマフォをロックしsem_wait()
ます。ただし、別のプロセスまたはスレッドが関数 を実行してセマフォ
をロック解除するのを待たずにセマフォをロックできない場合 、この待機は 、指定されたタイムアウトが期限切れになると終了します。sem_post()
セムフォがどのように機能するかについての私の限られた理解から、sem_timedwait()
より安全であることがわかりますが、それでも sem_wait() を使用できるはずです
これは正しいです?そうでない場合、他にどのような選択肢がありますか...
ありがとう
c - POSIXでファイル変更日をプログラムで書き込むにはどうすればよいですか?
アクセス日付を変更するために、C コードからファイルにアクセスしたいと考えています。これはうまくいかないようです:
ご協力ありがとう御座います。
filesystems - POSIX システムで複数のファイルを変更する安全で効率的な方法は?
「一時ファイルの作成、一時ファイルの書き込み、一時ファイルの名前をターゲットファイルに変更する」プロセスを使用すると、クラッシュ時にファイルがゼロになる原因となる EXT4 の「バグ」に関する議論に従っています。POSIX は、fsync() が呼び出されない限り、データがハードディスクにフラッシュされたことを確認できないと述べています。
明らかにやっている:
2) または fsync() 中にコンピューターがクラッシュし、部分的に書き込まれたファイルになってしまうため、fsync() を使用しても適切ではありません。
通常、これはかなり安全であると考えられてきました。
残念ながらそうではありません。EXT4 で安全にするには、次のことを行う必要があります。
これは安全であり、クラッシュ時には、新しいファイルの内容か、古いゼロ化されていない内容または部分的な内容のいずれかが必要です。しかし、アプリケーションが大量のファイルを使用する場合、書き込みのたびに fsync() が遅くなります。
私の質問は、変更がディスクに保存されたことを確認するために fsync() が必要なシステムで複数のファイルを効率的に変更する方法ですか? つまり、何千ものファイルのように、多くのファイルを変更するということです。2 つのファイルを変更し、それぞれの後に fsync() を実行することはそれほど悪くはありませんが、複数のファイルを変更する場合、fsync() は速度を低下させます。
編集: fsync() クローズ一時ファイルを正しい順序に変更し、多数の多数のファイルを書き込むことに重点を置きました。
linux - すべてのインターフェイスでの UDP ブロードキャスト
有線および無線インターフェイス (192.168.1.x および 192.168.2.x サブネットなど) を備えた Linux システムで、利用可能なすべてのインターフェイス (つまり、有線および無線インターフェイスの両方) を介して送信される UDP ブロードキャストを送信したいと考えています。 )。
現在、私は INADDR_BROADCAST に sendto() を送信していますが、ブロードキャストのみがインターフェイスの 1 つを介して送信されているようです (常に同じブロードキャストと後続のブロードキャストが他のインターフェイスを使用するとは限りません)。
すべてのインターフェースを通過する UDP ブロードキャストを送信する方法はありますか?
networking - TCPおよびPOSIXソケットはaccept()セマンティクス
状況:サーバーがaccept()を呼び出します。クライアントはSYNをサーバーに送信します。サーバーはSYNを取得し、SYN/ACKをクライアントに送り返します。ただし、クライアントはハングアップ/停止するため、サーバーにACKを送り返すことはありません。
何が起こるのですか?accept()はSYNを受信するとすぐに戻りますか、それともクライアントのACKが返されるまでブロックしますか?ブロックした場合、最終的にタイムアウトになりますか?