Thanks for that and I had a chance to look at that link already
To verify the numbers displayed are the maximum number of arguments that could be passed to zsh, I tried the small script posted above
But the numbers turned out to be quite different and wondering why there is a difference in the maximum number of arguments I could pass and to those that is listed.
There are two blocks of variable data passed to a new process...
1. environment variables
2. command line arguments
When "exec" is called the kernel has to hold them somewhere while it loads in the new program.
So it may not be the number of arguments, but the length of all the strings plus some management overhead.
Does that mean if the maximum number of arguments that can be passed is 'x' and the number of environmental variables to a binary is 'y', then the "actual" number of arguments that can be passed is only 'x' - 'y'
I believe, each of the command that is typed in the shell has to obey "fork" and "exec" to execute the command
Does that mean if the maximum number of arguments that can be passed is 'x' and the number of environmental variables to a binary is 'y', then the "actual" number of arguments that can be passed is only 'x' - 'y'
The actual limits/rules is down to the specific operating system.
Quote:
Originally Posted by matrixmadhan
I believe, each of the command that is typed in the shell has to obey "fork" and "exec" to execute the command
Yes, exec is the only way a new program gets loaded under UNIX.
What is the maximum number of arguments that could be passed to zsh ?
To find out that I tried a simple script.
And the maximum number of arguments that could be passed turned out to be 23394
Am not sure whether this approach is current or not.
(Earlier postings here suggested, that you missed to count your environment. But that is not a plausible explanation for the huge difference .)
Your approach has this flaw: It hits the maximum length of args, not the maximum number, because in average your arguments are too long!
The maximum length on Linux-pre-2.6.23 is 131072.
Your environment is about 2k. Now estimate the length of all your args:
About 9 single digit args (1..9) (each with a trailing ASCII-NUL, add one for the length),
about 90 double digit args (10..99), round numbers are easier,
and so on:
This is almost identical to the expected limit.
You will only hit the maximum number of arguments (on Linux-pre-2.6.23) if the average length is at most 4.
Last edited by s.mascheck; 10-16-2008 at 04:59 PM..
Reason: wrong code tags around calculation fixed
Hi all,
What is the maximum number of sed squeezing in one shell?? I've surprised with this message when I squeezed 50 sed in the same shell:
253: Identifier too long - maximum length is 18.This is what I've did in my sed query
| sed -e "s/ 0 /Default /" | sed -e "s/ 1 ... (2 Replies)
I am trying to calculate the maximum number from four numbers input by the user. I have the following code, but it does not work. It says there's an error with the last line "done". Any help would be appreciated.
max=0
echo "Please enter four numbers: "
for i in 1 2 3 4
do
read number... (17 Replies)
Hi,
Can anyone please help me to know what is the maximum number of command line arguments that we can pass in unix shell script?
Thanks in advance,
Punitha.S (2 Replies)
Hi,
Could any one please let me know what is the maximum number of characters
that will fit into a single line of a flat file on a unix.
Thanks. (1 Reply)
maximum number of dots in a domain name - not a sub-domain name.
for example:
mydomain.com ------ one dot
mydomain.com.au ------ two dots
do you know maximum number of dots in a domain name and could you provide a sample?
thx. (1 Reply)