Formatting a mail

Cameron Simpson cs at zip.com.au
Mon Oct 15 01:29:39 UTC 2007


On 14Oct2007 17:09, John Summerfield <debian at herakles.homelinux.org> wrote:
> Cameron Simpson wrote:
>> On 14Oct2007 14:39, I wrote:
>> | Please read scripts carefully if you're going to criticise. Criticism is
>> | welcome, if it's valid.
>> Sorry for my tone. I have a headache and didn't allow for it.
>
> I'm more concerned that your "facts" aren't.

Oh, but they _are_!

> It doesn't matter how one creates the commandline, there is a limit on its 
> size. Here, I'm not concerned about side effects of bad characters such as 
> & and ;.

Sure, but in the code we're discussing:

  for m in subdir/*report*

that limit is not hit. Why not? Because the limit only applies to exec()
calls. It is an OS interface limit. For loops take place entirely in
user space. There is no "command line" being constructed in the sense
you're thinking.

> See /usr/include/linux/limits.h for its value.

But again, irrelevant, because the code does not call the interface
to which that limit applies.

It is perfectly possible to say:

  for file in some-huge-glob ...

regardless of now big that may be, subject only to the machines VM
limits and any bugs in the shell.

Note the difference from:

  some-command some-huge-glob ...

Because invoking the command requires exec*()ing it, the limit
applies to the argument list.

If you're sure I'm wrong, construct a reproducable counter example.

Cheers,
-- 
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/

I thought about being born again, but my mother refused.




More information about the users mailing list