問題タブ [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.
linux - 保護されたメモリが与えられたときに、システムコールでSIGSEGVハンドラーを呼び出すにはどうすればよいですか?
私はmprotect
、プログラムのほとんどのメモリへのアクセスを削除するために使用するメモリ追跡ライブラリと、プログラムがページにアクセスしたときに個々のページへのアクセスを復元するためのSIGSEGVハンドラーに取り組んでいます。これはほとんどの場合うまく機能します。
私の問題は、私のライブラリがアクセスをマークしていないメモリを使用してプログラムがシステムコール(たとえばread
)を呼び出すと、システムコールは-1を返し、に設定errno
することEFAULT
です。これにより、テスト対象のプログラムの動作が奇妙な方法で変更されます。システムコールが実際にカーネルに送られる前に、システムコールに与えられたメモリの各ページへのアクセスを復元できるようにしたいと思います。
私の現在のアプローチは、メモリにアクセスする各システムコールのラッパーを作成することです。各ラッパーは、実際のシステムコールに渡す前に、与えられたすべてのメモリにアクセスします。これは、プログラムから直接行われた呼び出しでは機能するようですが、libcで行われた呼び出しでは機能しないようです(たとえば、ラッパーを使用せずに直接fread
呼び出します)。read
より良いアプローチはありますか?どうすればこの振る舞いを得ることができますか?
c++ - C /C++でファイルに書き込まずにsyscallstdoutをキャプチャする
システムコールのstd出力をC/C++文字列に読み込みたい。一時ファイルを使用せずにこれを行うことはできますか?
Perl
C ++
java - Java から C++ 機能を呼び出す方法
ほとんどが GUI の Java プログラムがあり、C++ コマンド ライン ツールから xml ファイルに書き込まれたデータが表示されます。ここで、Java プログラムにボタンを追加して、データを更新したいと考えています。これは、私のプログラムが C++ 機能を呼び出さなければならないことを意味します。
システムコールを介してJavaからプログラムを呼び出す最良の方法はありますか? c++ プログラムは、Mac OS および Windows 用にコンパイルされ、常に Java プログラムと同じディレクトリにある必要があります。
実行可能ファイルを生成したいのですが、C プログラムを jar 内に保存してプログラムから呼び出すことはできますか?
linux - Linuxでsyscallは実際にどのように発生しますか?
この質問に触発されて
GDB を強制的に逆アセンブルするにはどうすればよいですか?
そしてこれに関連する
Linuxで実際にシステムコールはどのように発生しますか? 実際のカーネルルーチンが呼び出されるまで、呼び出しが実行されるとどうなりますか?
linux - getpwnam は /etc/nsswitch.conf を尊重しますか?
getpwnam は /etc/nsswitch.conf を尊重しますか?
getpwnam
状態のマンページ
getpwnam() 関数は、ユーザー名に一致するパスワード データベース (ローカル パスワード ファイル /etc/passwd、NIS、および LDAP など) 内のレコードの分割フィールドを含む構造体へのポインタを返します。
これにより、/etc/nsswitch.conf を尊重し、その行にリストされているエントリを反復処理する必要があると思われますpasswd
(... しかし、そのように動作しないことを示すバグ レポートがあります)。
編集:それを尊重していることを示す3cのマンページを見つけたので、問題はどのオペレーティングシステムでサポートされているかです
ios - iOSでシステムコールをかけることはできますか?
の実行などのシステムコールを行い、ls -la
その結果をアプリで使用することは可能ですか?
winapi - ブラウザと外部アプリの通信?(Windows上のChromeの現在のURLとリファラー?)
外部プログラムはどのようにブラウザと通信できますか?うまくいけば、これは他の人にも役立つでしょう。これを機能させるのに失敗したときに見た、または試したいくつかのオプションをリストアップしています。他の人を知っているなら、投稿してください。
- Macの場合は、AppleScriptを使用します(q.263741のinfo / solution、この検索を試してください)
- Firefox( iMacros?、q.410411)、Chrome(?)の拡張機能を使用または作成します
- WebBrowserコントロールを使用してIEインスタンスをホストします(q.1143187のヒント)
- サイトを所有している場合、これはバックグラウンドのajaxスクリプトを使用して実行できます
私の質問:ブラウザを変更せずに、外部のWindowsアプリから現在のフォアグラウンドブラウザ(具体的にはChrome)のURLとリファラーを取得するにはどうすればよいですか?
タイトルを取得するUser32のGetWindowTextを使用してみました(jNative for Javaを使用)。これにより、サーバーを推測できることがよくあります。タイトルをURLにマップするローカルプロキシを作成することは可能かもしれませんが、これは大変な作業です。この情報でウィンドウタイトルをリギングするためにFireFox拡張機能を作成しましたが、古くなったため、とにかくChromeでこれが必要になります。広く役立つ場合を除いて、ブラウザにジャンクを追加したくありません。おそらく、Windows上のChrome用のAppleScriptのようなAPIの機能リクエストを提出することができます。AHK Window Info 1.7は、表示/非表示のテキストの下でURL(リファラーではない)を取得することができますが、使用するコードを移植する方法がわかりません。
( q.990409のFF / C#に関する情報と、 q.823755のIE情報( q.352236にリダイレクト) 。q.1107978の情報はありません。無視してください:関連する質問:Firefoxをマクロで制御するにはどうすればよいですか? ?ブラウザ情報を取得するにはどうすればよいですか?現在のブラウザURLを取得するにはどうすればよいですか?外部アプリからChromeの現在のURLを取得するにはどうすればよいですか?)
アイデア、コードサンプル、関連する可能性のある質問へのポインタ、および私の特定の質問への回答はすべてありがたいです。
memory-management - brk を減らしてから再び増やすと、Linux カーネルによってメモリがクリアされますか?
ユーザー プログラムが brk システム コールを介して解放し、その後再び元に戻すと、メモリがどうなるのか気になります。カーネルはそれをクリアしますか、それとも内容は未定義のままですか?
ページがbrkを介して新しく割り当てられると、カーネルがページをクリアすると思いますが、そのページが返されてから再度要求された場合にすべてをゼロにするかどうかはわかりません。lxr.linux.no を調べて調べています。この記事で紹介した本も参考にさせていただきます。
返信ありがとうございます。
ティム
c - getutentとLinuxタイマーの問題
以下のコードの実行に問題があります。このコードは、getutent()を呼び出して、現在システムにログインしているユーザーの総数をカウントします。タイマーは1秒ごとに呼び出され、「isSigAlrmOccured」という名前のブール値をtrueに設定して終了します。メイン関数は、このブール値をチェックしてタイマー信号が配信されているかどうかをチェックし、ログインしているユーザーの数を監視します。残念ながら、タイマー信号はメインプログラムに正しく2回しか配信されず、それ以降はそれ以上信号を受信できません。一時停止関数の呼び出しは、最初の2つのシグナルの後で中断されることはありません。
出力:
信号が1回発生しました
信号が2回発生しました
linux - Linux で複数の syscall が発生する理由
Linux で _syscall0 から _syscall6 を使用して異なる数のパラメーターを処理する理由は何だろうと思っていました。_syscall6 だけを使用し、呼び出し元のコードが未使用のパラメーターに null 値を渡すようにすることで、セキュリティ/パフォーマンスの問題はありますか?