問題タブ [system-calls]

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.

0 投票する
1 に答える
255 参照

c - Linux ユーザー空間プロセスでは、vsyscall ページのアドレスは何ですか?

自分用にvsyscallページのアドレスを取得したいです。ここで考えられるのは 2 つだけです。コンパイラを変更して、この情報が __start に渡された後に既知の場所に格納されるようにするか、/proc/[pid]/maps を読み取るかです。/proc/ は遅くて必要ないので、本当に読みたくありません。また、コンパイラの変更も行いたくありません。誰かが代替手段を持っていますか?知っておくべきシンボルはありますか?

その時点で、私はこの機能を、この作業の一部として開発したモジュールの ioctl 呼び出しに詰め込みたいと思っています!

0 投票する
1 に答える
3467 参照

c# - C# の SystemParametersInfo パラメータ定義

C# から SystemParametersInfo を呼び出したい。この関数の最初の引数は、ドキュメントに記載されている SPI_GETACCESSTIMEOUT のような可能な値の大規模なコレクションの 1 つですが、どこにも定義されていないようです。

これらの値の実際の値を Web で見つけて、適切なマジック ナンバーを含む列挙型を作成できます。これは機能しますが、正しくありません。私は、私のためにそれをすべて行うものを含めることができるようにしたいと考えています. それらはどこかで定義する必要があります!

これを適切に機能させるにはどうすればよいですか?


OJは、すべてをソース コードにコピーしたい場合に最適なSPI ページを示しています。しかし、私はコンパイラにそれをしてもらいたいです。

私はただ言うことができるはずです:

代わりに、次を追加する必要があります。

...そして残りのすべても同様です。これらのすべての定義を dll 内のどこからでもインポートするコマンドを探しています。

0 投票する
2 に答える
1344 参照

php - ブロックせずにPHPスクリプトからPHPスクリプトを実行する

さまざまなサイトをトラバースしてデータマイニングするスパイダーを構築しています。

各ページを個別に取得する必要があるため、これには非常に長い時間がかかる可能性があります(おそらく100ページ)。set_time_limitを1ページあたり2分に設定しましたが、apacheは5分後にスクリプトを強制終了するようです。

これは、この時間制限のないcronまたは同様のものから実行されるため、通常は問題になりません。ただし、管理者がHTTPインターフェイスを介して手動でフェッチを開始できるようにすることも必要です。

apacheが完全に存続することは重要ではありません。私は、AJAXを使用してフェッチをトリガーし、AJAXで時々チェックバックします。

私の問題は、PHPスクリプトを呼び出すスクリプトが終了したときにフェッチを終了せずに、PHPスクリプト内からフェッチを開始する方法です。

たぶん私はsystem('script.php&')を使うことができますが、それがうまくいくかどうかはわかりません。他のアイデアはありますか?

0 投票する
3 に答える
80079 参照

python - Pythonスクリプトから実行可能ファイルを呼び出す方法は?

Pythonスクリプトからこのスクリプトを実行する必要があります。

出来ますか?スクリプトは、いくつかのファイルが書き込まれるいくつかの出力を生成します。これらのファイルにアクセスするにはどうすればよいですか?サブプロセス呼び出し関数を試しましたが、成功しませんでした。

アプリケーション「bar」は一部のライブラリも参照し、出力のほかにファイル「bar.xml」も作成します。これらのファイルにアクセスするにはどうすればよいですか?open()を使用するだけですか?

ありがとうございました、

編集:

Pythonランタイムからのエラーはこの行だけです。

0 投票する
4 に答える
3449 参照

process - Linux カーネル プログラミング: vm_area_struct->vm_start を取得しようとするとカーネルがクラッシュする

これは学校での課題で、システム コールを使用してシステム上のプロセスのサイズを判断する必要があります。私のコードは次のとおりです。

このシステム コールを呼び出すユーザー レベルのプログラムを実行すると、次のような出力が得られます。

1
vm_start は 134512640 です
2

EIP:0073:[<0806E352>] CPU:0塗装されていないESP:007B:0F7ECF04 EFLAGS:00010246 NOT TANTED
EAX:00000000 EBX:0FC587C0 ECX:081FBB58 EDX
: 007b
081f9bc0: [<08069ae8>] show_regs+0xb4/0xb9
081f9bec: [<080587ac>] segv+0x225/0x23d
081f9c8c: [<08058582>] segv_handler+0x4f/0x54
081f9cac: [<08067453>] sig_handler_common_skas+0xb7/0xd4
081f9cd4 : [<08064748>] sig_handler+0x34/0x44
081f9cec: [<080648b5>] handle_signal+0x4c/0x7a
081f9d0c: [<08066227>] hard_handler+0xf/0x14
081f9d1c: [<00776420>] 4 20x7


カーネル 7 がパニックに陥っていないaddr 0x0、ip 0x806e352 でのモード障害


EIP: 0073:[<400ea0f2>] CPU: 0 汚染されていません ESP: 007b:bf88ef9c EFLAGS: 00000246 汚染されていません
EAX: ffffffda EBX: 00000000 ECX: bf88efc8 EDX: 080483c8
ESI: 00000000 EDI: bf88ef0 007b
081f9b28: [<08069ae8>] show_regs+0xb4/0xb9
081f9b54: [<08058a1a>] panic_exit+0x25/0x3f
081f9b68: [<08084f54>] notifier_call_chain+0x21/0x46
081f9b88: [<08084fef>] __atomic_notifier_call_chain+0x17/0x19
081f9ba4 :[<08085006>] Atomic_notifier_call_chain+0x15/
0x17 081f9bc0:[<0807039a>] panic+0x52/0xd8
081f9be0:[< 080587ba
>
<08067453>] sig_handler_common_skas+0xb7/0xd4
081f9cd4: [<08064748>] sig_handler+0x34/0x44
081f9cec: [<080648b5>] handle_signal+0x4c/0x7a
081f9d0c: [<08066227>] hard_handler+0xf/0x14
081f9d1c: [<0077>6 2040

最初のプロセス (pid = 1) では問題なく vm_start が返されましたが、2 番目のプロセスにアクセスしようとすると、カーネルがクラッシュします。誰が何が間違っているのか、それを修正する方法を教えてもらえますか? どうもありがとう!

(書式が悪くてすみません…)

編集: これは、uml 環境の Fedora 2.6 コアで行われます。

0 投票する
2 に答える
459 参照

python - Pythonスクリプトから結果を取得するために実行可能ファイルをループする

私のPythonスクリプトでは、forループ内で実行可能ファイルを呼び出し、その実行可能ファイルが結果を「output.xml」に書き込むのを待つ必要があります。

wait()を使用するにはどうすればよいですか?また、実行可能ファイルの1つが結果の生成を終了して結果を取得したことを知るにはどうすればよいですか?そのプロセスを閉じて新しいプロセスを開き、実行可能ファイルを再度呼び出して新しい結果を待つにはどうすればよいですか?

「bin/bar」からの出力が「output.xml」を生成するのを待ち、そこからその内容を読み取る必要があります。

0 投票する
0 に答える
215 参照

mysql - libmysqlclient が vmsplice() でハングする

64 ビット カーネルお​​よび 32 ビット ユーザー空間互換モードで libmysqlclient.so.15 を使用する実行可能ファイルを実行しています。

ときどき、私のプログラムは libmysql の何かでハングアップします。

2.6.26-2-amd64 #1 SMP debian マシンで実行しています。

私はそれが何であるか分かりません、そしてそれは時々起こります。

SOS!!!!

ありがとう

0 投票する
1 に答える
590 参照

linux - システムコールは、ラッパー関数がそのパラメーターをどこに置いたかをどのように知るのですか?

Linux (RedHat Enterprise 8) で syscall を実装しようとしていますが、その動作について少し混乱しています。私が理解していることから、syscall番号をeaxに、パラメーターをebx、ecx、edxなどに配置するラッパーをユーザーモードで実装し、適切なsyscallを呼び出すint 0x80を呼び出します。私の質問は、syscall は通常の C 関数のように記述されているため、どのレジスタにどのパラメータが含まれているかをどのように知るのでしょうか? それは慣例ですか、それともメカニズムはありますか? もしそうなら、どこでどのようにそれを行いますか?

編集: これは宿題です。私は、これを実行できるシステムコール マクロがあることを知っています。

0 投票する
3 に答える
275 参照

c++ - Windows から Unix への C++ コードの移植: システムコールが関数名と衝突する

私は、すべてのクラス内で「open」および「close」と呼ばれる関数を使用する、いくつかの厄介な C++ Windows コードを Linux に移植しています...非常に悪いスタイルですか、それとも? 幸いなことに、Windows ではシステムコールの名前が異なるため、これは問題ではありませんでした。

systemcalls open() または close() を呼び出そうとすると、「クラス:open() の呼び出しに一致する関数がありません」というコンパイラ エラーが発生します。コード全体で「class::open」および「class::close」という名前のすべての関数の名前を変更することはできません。また、シリアル ポートで作業しているため、open() および close() を使用する必要があります。

だから私の質問は次のとおりです。コンパイラーに、どのオープンを意味するかをどのように伝えることができますか? C++ でクラスの名前空間をエスケープまたは非表示にするにはどうすればよいですか?

0 投票する
1 に答える
549 参照

linux - entry.S の system_call を変更するとカーネル パニックが発生する

システム コール カウンターを実装しようとしています。その結果、task_struct に int 値を含め、それをインクリメントする関数を別のファイルに含めました。この関数は、必要な sys_call を実際に呼び出す直前に system_call から呼び出されることになっています (後ではなく前に呼び出す理由があります)。ただし、sys_call の前に配置すると、コンパイルして起動した後にカーネル パニックが発生し (「init_idle を強制終了しようとしました」)、sys_call の直後に配置すると動作します。違いは何ですか?どうすればこれを克服できますか?

関連するコードは次のとおりです