No, no hay límite impuesto por la norma ISO C99. Si está utilizando el "bendito" main
forma (de los cuales hay dos):
int main (int argc, char *argv[]);
entonces estará limitado al tamaño máximo de un entero con signo (dependiente de la implementación, pero garantizado para ser al menos 2 -1 o 32,767).
Por supuesto, usted podría incluso tener más que eso ya que la norma permite específicamente no benditos main
formas (por ejemplo, uno que toma un long
como el recuento).
La norma ordena cómo se almacenan los argumentos y cosas como argv[argc]
tienen que ser NULL, pero no limita directamente la cantidad.
Por supuesto, habrá un límite en la práctica, pero esto dependerá completamente de la implementación y el entorno. Sin embargo, si tiene que preguntar, probablemente esté haciendo something wrong.
mayoría de las herramientas colocarían una verdadera gran número de argumentos en un archivo de respuestas (por ejemplo args.txt
) A continuación, pasar un solo argumento como:
my_prog @args.txt
que se pone límites arbitrarios en torno a la cantidad y tamaño de argumento.
Consulte también [Para verificar la condición E2BIG en 'exec()'] (http://stackoverflow.com/questions/18559403/to -check-the-e2big-error-condition-in-exec). –