RubyArray elt = (RubyArray)ary.eltOk(i);
int fd;
RubyArray param = (RubyArray)elt.eltOk(1);
String path = param.eltOk(0).toString();
int flags = RubyNumeric.num2int(param.eltOk(1));
int perm = RubyNumeric.num2int(param.eltOk(2));
boolean need_close = true;
// This always succeeds because we defer to posix_spawn
elt = (RubyArray)ary.eltOk(i);
fd = RubyNumeric.fix2int(elt.eltOk(0));
redirectOpen(eargp, fd, path, flags, perm); /* async-signal-safe */