os/exec パッケージを使用してコマンドを実行する場合、終了コードの取得に関する一般的な問題に遭遇することがあります。ドキュメントには、プロセスがエラーなしで終了したかどうかを示す Process.Success() メソッドが提供されていますが、実際の終了コードを取得する明示的な方法は提供されていません。
Linux の終了コードを取得する 1 つの回避策-ベースのシステムでは、syscall パッケージを利用します。改善されたコード スニペットは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
このアプローチでは、syscall パッケージの WaitStatus タイプを使用します。これには、Linux およびその他の UNIX 系オペレーティング システムで実行されているプロセスの終了コードを取得する ExitStatus() メソッドが含まれています。 .
Windows システムの場合、このメソッドは終了コードの同じ概念を提供していないため機能しません。代わりに、cmd.exe の /c オプションを使用してコマンドを実行し、出力でエラー コードを解析するなどの代替アプローチを選択できます。
オペレーティング システムに基づいてこれらの手法を適応させることで、効果的にGo の os/exec パッケージを通じて実行される外部コマンドの終了コード。
以上がGo で `os/exec` から終了コードを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。