Nie, nie ma ograniczeń nałożonych przez standard ISO C99. Jeśli używasz „błogosławiony” main
formularz (którego istnieją dwa):
int main (int argc, char *argv[]);
wtedy będzie ograniczona do maksymalnej wielkości liczba całkowita ze znakiem (zależna od implementacji, ale gwarancją co najmniej 2 -1 lub 32 767).
Oczywiście, można nawet mieć więcej niż że skoro średnia umożliwia specjalnie dla non-błogosławionych main
formy (na przykład taki, który bierze long
jako licznik).
Norma określa, w jaki sposób przechowywane są argumenty i takie, jak argv[argc]
, które muszą być NULL, ale nie ogranicza bezpośrednio ilości.
Oczywiście w praktyce będzie limit, ale będzie to zależało wyłącznie od implementacji i środowiska. Jednakże, jeśli musisz zapytać, prawdopodobnie robisz something wrong.
Większość narzędzi byłoby postawić naprawdę dużą liczbę argumentów w pliku odpowiedzi (słownie args.txt
) następnie przechodzą jeden argument jak:
my_prog @args.txt
który omija arbitralnych ograniczeń dotyczących ilości argumentów i wielkości.
Zobacz także [Aby sprawdzić warunek E2BIG w 'exec()'] (http://stackoverflow.com/questions/18559403/to -check-the-e2big-error-condition-in-exec). –