問題タブ [posix-api]
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 system(3) 呼び出しはすぐに戻りますか?
例えば、system("sh /mydir/some-script.sh &")
c - いずれか/すべてのpthreadが完了するのをどのように待つことができますか?
メインスレッドがすべての(p)スレッドが完了するのを待ってから終了するようにしたいだけです。
スレッドはさまざまな理由で何度も行き来しますが、私は本当にすべてのスレッドを追跡したくありません。スレッドがすべてなくなったときを知りたいだけです。
wait()は子プロセスに対してこれを行い、子が残っていない場合はECHILDを返しますが、waitは(p)スレッドを処理しません(動作しているように見えます)。
私は本当に、すべての未処理のスレッドのリストを(それらが行き来するときに)保持し、それぞれでpthread_joinを呼び出さなければならないという問題を経験したくありません。
これを行うための迅速で汚い方法はありますか?
c - C での posix ファイル呼び出しのリダイレクト
2つのファイルに直接アクセスできるという観点から書かれた「ライブラリ」(変更したくないコードの選択)があります。ファイル記述子で直接「open」、「read」、「seek」の posix 呼び出しを使用します。
ただし、現在、標準の IO 呼び出しではアクセスできない独自のファイル システムがあります。コードを書き直したくないので、IO 呼び出しを既知の関数にリダイレクトして、インターフェイスとして使用できれば素晴らしいことです。
「読み取り」と「シーク」を新しい関数呼び出しで上書きできるように、上記で使用した呼び出しを変更する方法はありますか?
ありがとう。
c++ - 標準のPOSIXCヘッダーを含めるためにextern"C"ブロックが必要ですか?
extern "C" {}
C++プログラムに標準のCヘッダーを含めるためのブロックが必要ですか。C++に対応するものがない標準のCヘッダーのみを検討してください。
例えば:
c - C PF_PACKET リンク層処理
次の後に「バッファ」に格納されているデータ構造を把握しようとしています。
sock=socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_IP));
recvfrom(sock, buffer, 2048, 0, NULL, NULL);
TCP パケットの場合は、データ構造を調べて、リンク層、IP 層、および TCP 層を読み取れるようにしたいと考えています。man ページといくつかのヘッダー ファイルを試してみましたが、あちこちに散らばっています。
前もって感謝します。
posix - POSIX API に end-of-file 関数がないのはなぜですか?
POSIX API では、read()
ファイルの終わりに達したことを示すために 0 を返します。read()
実際に を呼び出す必要なしに、ゼロを返すことを示す別の関数がないのはなぜread()
ですか?
質問の理由:read()
失敗することを発見するために呼び出す必要があるため、ファイル読み取りアルゴリズムがより複雑になり、不要なターゲット バッファーを割り当てる必要があるため、効率がわずかに低下する可能性があります。
私たちがやりたいことは...
代わりに私たちがしなければならないことは...
fread()
さらに、この動作は C のやなどの高レベルの API にも伝播しているようで、正しくfeof()
使用する方法について多くの混乱を引き起こしています。feof()
javascript - 中置ではなく、接頭辞の「<」や「<<」などのファイルに追加/書き込みを行うPOSIX関数を呼び出す方法はありますか?
Google Chrome d8シェルバージョン3.7.7を使用して、自分が作成したJavaScriptアプリケーションを実行しています。このアプリケーション内で、ファイルを作成/書き込みする必要があります。I / Oを行う唯一の方法は、提供されたものを使用することであるようです
APIの概要は、次のヘッダーファイルに記載されています:http ://code.google.com/p/v8/source/browse/trunk/src/d8.h
したがって、必要なのは、プレフィックス方式で呼び出すことができるPOSIXプログラムの名前です。このプログラムは、引数としてファイルと文字列を受け取り、その文字列をファイルに書き込みます。そのようなプログラムはありますか?そうでない場合、誰かがこれを回避する方法を見ていませんか?
<は中置演算子であり、プレフィックスとして機能しないようであるため、現在のAPIでは次のタイプの呼び出しを行うことができないようです。
どんな助けでも大歓迎です!ありがとう。
linux-kernel - 同じプロジェクトで 2 つの異なるスケジューリング ポリシーを使用する
組み込みプロジェクトでは、どのスケジューリング ポリシーを使用するかを決定する際に困難に直面しています。特定のテストケースに合格するには、使用する必要があり、SCHED_OTHER
他のテスト ケースには使用する必要があります。テストケースは合格していますか?それは合法でしたか?同じプロジェクトで2つのポリシーをそのように使用すると、追加の副作用はありますか?SCHED_RR
SCHED_RR
SCHED_OTHER
unix - posix の名前変更動作
フォルダーの名前を、いくつかのファイルを含む既存のフォルダーに変更しようとするとどうなりますか
元:
フォルダー D1 には、f1 ファイルを含む別のフォルダー D2 と、f2 ファイルを含む D3 があり、d2-->D3 の名前を変更しようとすると、
既存の d3 を削除して名前を変更しようとすると、動作がどのようになりますか、または奇妙な動作
linux - 64ビットLinuxでsem_tが32バイトなのはなぜですか?
64ビットLinuxのsem_tは32バイトですが、futex実装では8バイトで十分です( glibc sem_post )、それは本当ですか? それが本当なら、なぜバイトを無駄にするのですか?
実際には、8 バイトのみを使用するカスタム セマフォ実装を使用したいので、1 つのセマフォを 1 つの日付エントリに使用することが可能です。しかし、glibc の実装の他のバイトが単なるパディングであるかどうかはよくわかりません。
念のために言っておきますが、私は仕事でカスタム セマフォを使用するつもりはありません。