UNIXのC++でコマンドラインパラメータをチェックする際に、どうやってエラーをチェックできますか?たとえば、パラメータを入力しなかった場合、セグメンテーションフォルトを取得するのではなく、エラーメッセージをどのように出力しますか?UNIXのC++でコマンドラインパラメータをチェックする方法は?
答えて
if (argc<2)
{
fprintf(stderr, "This program requires more parameters\n");
return -1;
}
getoptを使用してください。
argc
が1より大きくない場合、ユーザーは、コマンドラインパラメータを提供していない:
#include <stdio.h>
int main (int argc, char *argv[])
{
if (argc < 2)
{
printf("The command had no arguments.\n");
}
return 0;
}
'argv [0]'は常に実行されるプログラムの名前ではありません。 'execl'を使うと、NULLを含む何でもかまいません。参照:http://stackoverflow.com/a/275317/79455 – rve
Re "最初の引数(argv [0])は常に実行されるプログラムの名前です":それは間違っています。 'argv [0]'がプログラムの名前であることを強制するのではなく、規約によってです。 'exec'ファミリの関数を使っていくつかのプログラムを呼び出すと、あなたは好きなように' argv [0] 'を作ることができます。名前(または特にパス)を 'argv [0]'として渡さないようにするいくつかの強力なセキュリティ上の理由があります。 –
通知@DavidHammenありがとう:) – Meysam
は非常にコマンドライン解析のためのブーストprogram_option
ライブラリをお勧めします。
- 1. Unix/Windowsスクリプティングヘルプ:WindowsからUnixにコマンドラインパラメータを渡す
- 2. UNIXで特殊文字をチェックする方法は?
- 3. 変数をチェックする方法は、UNIXで数値であるかどうか
- 4. 16ビットアセンブリプログラムでDOSコマンドラインパラメータを渡す/取得する方法は?
- 5. Rails/Rubyの痛み - gemがUNIX/UNIXベースのものであるかどうかをチェックする方法?
- 6. Visual Studio C#でコマンドラインパラメータを渡す
- 7. C/C++プログラムから市販のUNIX OSでキャッシュラインサイズを取得する方法は?
- 8. ファイルからコマンドラインパラメータを渡す方法
- 9. プログラムのチェックをする方法C++
- 10. C++ 11のコマンドラインパラメータ分離
- 11. C++/Objective-C - 大きなプロジェクトを分析する方法(Unixの方法)?
- 12. csvファイルの列をチェックする方法はCである#
- 13. Java/C/C++/Python/shellのコマンドラインパラメータ用のパーサー
- 14. C++で最大ファイルサイズのアップロードをチェックする方法は?
- 15. C#で入力(xls)ファイルのコンテンツタイプをチェックする方法は?
- 16. Visual StudioのファイルプロセスをC#言語でチェックする方法は?
- 17. C#でカスタムクラス配列の等価性をチェックする方法は?
- 18. C#でWindowsのライセンスステータスをチェックする方法は?
- 19. コマンドラインパラメータの定義方法の提案
- 20. UNIXボックスでc exeを作成する方法
- 21. Windows DATEをC++でUNIX時刻に変換する方法
- 22. UNIXのコマンドラインパラメータの標準化されたドキュメントはどこにありますか?
- 23. C++/CLIでジェネリック型をチェックする方法は?
- 24. C# - 現在のUNIXタイムスタンプにX分を追加する方法
- 25. ファイルの拡張属性を取得する方法(UNIX/C)
- 26. C/C++でZIPファイル(Office Open XMLファイル)の整合性をチェックする方法は?
- 27. doubleのビットパターンをチェックする方法はC++ 11のconstexprでは0x0ですか?
- 28. C++を使ってpythonのバージョンをチェックする方法は?
- 29. asp.netで多くのレベルのセッションをチェックする方法C#
- 30. チェック/ UNIXシステム上のOpenSSL
[何を試しましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/)セグメンテーションフォルトが発生した場合の例を教えてください。 –