cpu% ramfs
cpu% echo a | tee `{seq 1 1000}
tee 62609: warning: process exceeds 100 file descriptors
tee 62609: warning: process exceeds 200 file descriptors
tee 62609: suicide: sys: trap: fault write addr=0x9000 pc=0x00001200
cpu% echo a | /sys/src/cmd/8.tee `{seq 1 1000}
8.tee 62651: warning: process exceeds 100 file descriptors
8.tee 62651: warning: process exceeds 200 file descriptors
8.tee 62651: warning: process exceeds 300 file descriptors
8.tee 62651: warning: process exceeds 400 file descriptors
8.tee 62651: warning: process exceeds 500 file descriptors
8.tee 62651: warning: process exceeds 600 file descriptors
8.tee 62651: warning: process exceeds 700 file descriptors
8.tee 62651: warning: process exceeds 800 file descriptors
8.tee 62651: warning: process exceeds 900 file descriptors
8.tee 62651: warning: process exceeds 1000 file descriptors
a
cpu% ls -l | wc -l
1000
cpu%
If you dislike the dynamic alloc, optionally one could keep the
array for 100 files swapping in a malloc-ed one only when there
are 100+ arguments provided.
NB: a previous version of this patch failed to allow room for
the stdout descriptor to be added to the array.
|