Rumah > pembangunan bahagian belakang > C++ > Adakah argv[0] Sentiasa Nama Boleh Laku dalam C/C ?

Adakah argv[0] Sentiasa Nama Boleh Laku dalam C/C ?

Patricia Arquette
Lepaskan: 2024-12-14 12:23:11
asal
839 orang telah melayarinya

Is argv[0] Always the Executable Name in C/C  ?

Adakah argv[0] Dijamin Menjadi Nama Boleh Laksana?

Apabila bekerja dengan aplikasi C atau C, selalunya diandaikan bahawa hujah pertama dihantar ke main() (argv[0]) mewakili nama boleh laku. Walau bagaimanapun, andaian ini mungkin tidak selalunya benar.

Definisi Standard

Mengikut piawaian ISO C11:

"Jika nilai argc lebih besar daripada sifar, rentetan yang ditunjuk oleh argv[0] mewakili nama program argv0 hendaklah menjadi aksara nol jika nama program tidak tersedia daripada persekitaran hos."

Pernyataan ini menjelaskan bahawa argv[0] hanya perlu mengandungi nama program jika nama itu tersedia daripada persekitaran hos. Selain itu, ia mungkin bukan padanan yang tepat, tetapi sebaliknya merupakan perwakilan.

Nilai Ditentukan Pelaksanaan

Standard selanjutnya menyatakan bahawa nilai dalam argv[0] ialah pelaksanaan-ditakrifkan. Ini bermakna sistem pengendalian atau persekitaran yang berbeza mungkin mengendalikan populasi argv[0] secara berbeza.

Sebagai contoh, pada sistem berasaskan UNIX, panggilan keluarga exec boleh menetapkan nilai arbitrari kepada argv[0]. Walau bagaimanapun, piawaian memerlukan pelaksanaan mendokumentasikan tingkah laku ini.

Kesimpulan

Oleh itu, walaupun ia merupakan konvensyen biasa bagi argv[0] untuk mengandungi nama boleh laku, ini tidak dijamin oleh piawaian C atau C. Pelaksanaan mungkin mengubah kandungan argv[0] selagi ia mendokumentasikan kelakuannya.

Atas ialah kandungan terperinci Adakah argv[0] Sentiasa Nama Boleh Laku dalam C/C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan