2011-05-28 23:30:47 -04:00
|
|
|
#include <spawn.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include "fdop.h"
|
|
|
|
|
2013-02-03 16:42:40 -05:00
|
|
|
int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *fa, int srcfd, int fd)
|
2011-05-28 23:30:47 -04:00
|
|
|
{
|
|
|
|
struct fdop *op = malloc(sizeof *op);
|
|
|
|
if (!op) return ENOMEM;
|
|
|
|
op->cmd = FDOP_DUP2;
|
2013-02-03 16:42:40 -05:00
|
|
|
op->srcfd = srcfd;
|
2011-05-28 23:30:47 -04:00
|
|
|
op->fd = fd;
|
2011-05-29 12:58:02 -04:00
|
|
|
if ((op->next = fa->__actions)) op->next->prev = op;
|
|
|
|
op->prev = 0;
|
2011-05-28 23:30:47 -04:00
|
|
|
fa->__actions = op;
|
|
|
|
return 0;
|
|
|
|
}
|