C から実行可能ファイルを起動する方法: `system()` のより安全な代替手段?

Barbara Streisand
リリース: 2024-11-02 01:21:02
オリジナル
167 人が閲覧しました

  How to Launch Executables from C  :  A Safer Alternative to `system()`?

C からの実行可能ファイルの起動 : system() の代替

C では、システムを使用して別の実行可能ファイルから実行可能ファイルを起動できます。 () 関数を使用できますが、この方法ではセキュリティとシステム効率の問題が生じます。より堅牢なアプローチには、CreateProcess() 関数の利用が含まれます。

<code class="cpp">#include <windows.h>

void startup(LPCTSTR lpApplicationName) {
   STARTUPINFO si;
   PROCESS_INFORMATION pi;

   ZeroMemory(&si, sizeof(si));
   si.cb = sizeof(si);
   ZeroMemory(&pi, sizeof(pi));

  CreateProcess(lpApplicationName, 
         argv[1], 
         NULL, 
         NULL, 
         FALSE, 
         0, 
         NULL, 
         NULL, 
         &si, 
         &pi
    );
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
}</code>
ログイン後にコピー

CreateProcess() の使用:

  1. 上に示すように、startup() 関数を定義します。 .
  2. lpApplicationName で実行可能ファイルへのパスを指定します。
  3. CreateProcess() を呼び出して実行可能ファイルを起動します。
  4. リソース クリーンアップのためにプロセス ハンドルとスレッド ハンドルを閉じます。

エラーのトラブルシューティング:

実行可能ファイルへの指定されたパスが正しいことを確認してください。提供されたコードで発生したエラーは、「OpenFile.exe」への無効なパスが原因である可能性があります。

以上がC から実行可能ファイルを起動する方法: `system()` のより安全な代替手段?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!