Bug499183 - FreeBSD: differences in avx-vmovq output
[valgrind.git] / memcheck / tests / freebsd / fexecve.c
blob222ff94ce99cdb88e88881ca95ae46a33296078f
1 #include <fcntl.h> // open
2 #include <stdio.h> // perror
3 #include <string.h> // strdup
4 #include <stdlib.h> // exit
5 #include <unistd.h> // fexecve
7 int main(int argc, char **argv, char** envp)
9 char *exe = "/usr/bin/true";
11 int fd = open(exe, O_RDONLY);
12 if (-1 == fd)
14 perror("open failed:");
15 exit(-1);
17 char ** new_argv = malloc(2*sizeof(char *));
18 char ** new_envp = malloc(2*sizeof(char *));
19 char * arg1 = strdup("./fexecve");
20 char * env1 = strdup("FOO=bar");
21 int * new_fd = malloc(sizeof(int));
22 *new_fd += fd;
23 new_argv[1] = new_envp[1] = NULL;
24 new_argv[0] = arg1;
25 new_envp[0] = env1;
27 free(arg1);
28 free(env1);
29 if (-1 == fexecve(*new_fd, new_argv, new_envp))
31 perror("fexecv failed:");
32 exit(-1);