use strict;
use warnings;
use IPC::Open3 qw( open3 );
for (my $size = 1024; ; $size += 1024) {
print("$size\n");
my $pid = open3(
local our $to_chld,
local our $fr_chld,
local our $fr_chld_err,
perl => (
-e => 'print "x" x $ARGV[0]',
$size
)
);
waitpid($pid, 0);
}
####
...
62464
63488
64512
65536
66560
[hangs]^C
##
##
use strict;
use warnings;
use IPC::Open3 qw( open3 );
open(local *DEVNULL, '>', '/dev/null') or die;
for (my $size = 1024; ; $size += 1024) {
print("$size\n");
my $pid = open3(
local our $to_chld,
'>&DEVNULL',
'>&DEVNULL',
perl => (
-e => 'print "x" x $ARGV[0]',
$size
)
);
waitpid($pid, 0);
}
##
##
...
365568
366592
367616
368640
369664
370688
371712
372736
373760
374784
...