2011-08-17 18 views
12

POSIX benzeri sistemlerde komut satırı argümanları için maksimum uzunluk var mı?** argv parametrelerinin maksimum uzunluğu

Netleştirmek için, her bir komut satırı bağımsız değişkeni için maksimum argüman sayısını değil, en fazla uzunluğunu arıyorum.

+0

_POSIX_ARG_MAX ?? –

+0

Yüksek platformu kendine özgü olduğundan şüpheleniyorum. Çok fazla veri varsa, programınıza veriyi stdin üzerinden iletebilirsiniz. –

+0

Hayır, _POXIX_ARG_MAX, tüm bağımsız değişkenler için birlikte maksimum uzunluktur. –

cevap

7

POSIX her bir argüman için maksimum uzunluk tanımlamaz.

MAX_ARG_STRLEN, Linux'a özgü bir sabittir which was introduced in the 2.6.25 kernel.

2.6.25 çekirdeği itibariyle MAX_ARG_STRLEN, 131072 bytes = 32 pages of memory olarak tanımlanmıştır.

(.. Ben CONFIG_HUGETLB_PAGE etkin değilse ben CONFIG_HUGETLB_PAGEMAX_ARG_STRLEN nasıl etkilediğini emin değilim böyledir 4k bir pagesize, varsayarak)

Ayrıca bakınız: http://manpages.ubuntu.com/manpages/lucid/man2/execve.2.html

+0

GJ, bu araştırmayı :-) – cnicutar

+0

cnicutar, üzgünüm orijinal sorumu belirsiz ve cevap verdiğiniz için teşekkürler. Cevabın benim araştırmamı sağladı. –