xref: /haiku/src/tests/system/libroot/posix/posix_spawn_redir_test.c (revision 1e60bdeab63fa7a57bc9a55b032052e95a18bd2c)
1 #include <stdio.h>
2 #include <fcntl.h>
3 #include <spawn.h>
4 #include <errno.h>
5 
6 #define panic(str) if (ret != 0) { errno = ret; perror(str); return 1; }
7 
8 int main() {
9         int ret;
10         pid_t child;
11         char* const av[] = { "posix_spawn_redir_err", NULL };
12         posix_spawn_file_actions_t child_fd_acts;
13         ret = posix_spawn_file_actions_init(&child_fd_acts);
14         panic("init");
15         ret = posix_spawn_file_actions_addopen(&child_fd_acts, 1, "errlog",
16                 O_WRONLY | O_CREAT | O_TRUNC, 0644);
17         panic("addopen");
18         ret = posix_spawn_file_actions_adddup2(&child_fd_acts, 1, 2);
19         panic("adddup2");
20         ret = posix_spawn(&child, "./posix_spawn_redir_err", &child_fd_acts, NULL, av, NULL);
21         panic("spawn");
22         return 0;
23 }
24 
25