Не самый удачный способ для ввода аргументов. POSIX системы, например, гарантируют корректную работу только для командной строчки длиной до 4Kb, на практике это число побольше - что-то типа пары мегабайт. Но это всё равно маловато. Давай лучше читать из stdin?