[解決済み] POSIXシステムでargcを0にすることは可能か?
質問
メインプログラムの標準的な定義が与えられています。
int main(int argc, char *argv[]) {
...
}
どのような状況で
argc
は POSIX システム上ではゼロになりますか?
どのように解決するのですか?
はい、可能です。 以下のようにプログラムを呼び出すと
execl("./myprog", NULL, (char *)NULL);
あるいは交互に
char *args[] = { NULL };
execv("./myprog", args);
続いて、"myprog"で。
argc
は0になります。
標準の
は、特に 0
argc
を使用することも可能です。これは、ホスト環境でのプログラムの起動に関して 5.1.2.2.1 節で述べたとおりです。
1 プログラム起動時に呼び出される関数の名前は
main
. この実装では,この関数のプロトタイプは宣言されていない。この関数は の戻り値で定義されなければなりません。int
で、パラメータなしで定義されなければならない。int main(void) { /* ... */ }
または2つのパラメータ(ここでは
argc
とargv
しかし,それらは宣言された関数に対して局所的であるため,どのような名前でも使用することができます。 であるため、どのような名前でも使うことができます。)int main(int argc, char *argv[]) { /* ... */ }
またはそれと同等の方法、あるいは他の実装で定義された方法で行います。
2 宣言されている場合、パラメータは
main
関数へのパラメータは,次の制約に従わなければならない。
- の値は
argc
は非負でなければならない。argv[argc]
はヌルポインタでなければならない。...
また、このことは、もし
argc
が 0 ならば
argv[0]
はNULLであることが保証されています。 どのように
printf
の引数として使われたとき、NULLポインタをどう扱うか?
%s
指定子の引数として使用された場合、NULLポインタをどう扱うかは、標準では明文化されていません。 多くの実装ではこの場合 "(null)" と出力されますが、保証されているわけではありません。
関連
-
構造体の配列--[エラー] '['トークンの前に一次式があることが予想される
-
[解決済み] Code::Blocks アプリケーションをコンパイルできない
-
[解決済み] CコードでEOFを表現する?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] POSIX」の意味を教えてください。
-
[解決済み] CSS Flexboxで、"justify-items "と "justify-self "プロパティはなぜないのですか?
-
[解決済み] longをフォーマットするprintfの引数は何ですか?
-
[解決済み】C++のコードはC++03とC++11の両方で有効ですが、異なることを行うことができますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C 構造体定義エラー: '['トークンの前に一次式があることが予想される
-
[C] レポートエラー 代入の左オペランドとしてlvalueが必要
-
警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告
-
[解決済み] Code::Blocks アプリケーションをコンパイルできない
-
[解決済み] CコードでEOFを表現する?
-
[解決済み] Linuxカーネルにおけるcontainer_ofマクロの理解
-
[解決済み] C関数から文字列を返す
-
[解決済み] プログラム終了前にmallocの後にfreeをしないと本当に何が起こるのか?
-
[解決済み] ストラクチャーとユニオンの違い
-
[解決済み] LD_PRELOADのトリックとは何ですか?