savefd
if (genv->savefd != NULL) {
if (genv->savefd[i] > 0)
close(genv->savefd[i]);
if (!Flag(FSH) && i > 2 && genv->savefd[i])
genv->savefd = NULL;
ofd1 = savefd(1);
genv->savefd = areallocarray(NULL, NUFILE, sizeof(short), ATEMP);
memset(genv->savefd, 0, NUFILE * sizeof(short));
if (genv->savefd[iop->unit] == 0) {
genv->savefd[iop->unit] = -1;
genv->savefd[iop->unit] = savefd(iop->unit);
genv->savefd[0] = savefd(0);
genv->savefd[1] = savefd(1);
restfd(1, genv->savefd[1]); /* stdout of last */
genv->savefd[1] = 0; /* no need to re-restore this */
genv->savefd[0] = savefd(0);
genv->savefd[1] = savefd(1);
fddup = savefd(fd);
pv[0] = savefd(lpv[0]);
pv[1] = savefd(lpv[1]);
if (ep->savefd && ep->savefd[2])
fd = ep->savefd[2];
ep->savefd = NULL;
if (ep->savefd != NULL) {
if (ep->savefd[fd])
restfd(fd, ep->savefd[fd]);
if (ep->savefd[2]) /* Clear any write errors */
if (ep->savefd) {
if (ep->savefd[fd] > 0)
close(ep->savefd[fd]);
afree(ep->savefd, &ep->area);
ep->savefd = NULL;
int savefd(int);
short *savefd; /* original redirected fd's */
int savefd;
savefd = pp->p_fd;
FD_CLR(savefd, &Fds_mask);
if (Num_fds == savefd + 1) {