Back to index

glibc  2.9
tst-execvp3.c
Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include <stdlib.h>
00003 #include <string.h>
00004 #include <unistd.h>
00005 #include <sys/stat.h>
00006 
00007 
00008 static void do_prepare (void);
00009 #define PREPARE(argc, argv) do_prepare ()
00010 static int do_test (void);
00011 #define TEST_FUNCTION do_test ()
00012 
00013 #include "../test-skeleton.c"
00014 
00015 
00016 static char *fname;
00017 
00018 static void
00019 do_prepare (void)
00020 {
00021   int fd = create_temp_file ("testscript", &fname);
00022   dprintf (fd, "echo foo\n");
00023   fchmod (fd, 0700);
00024   close (fd);
00025 }
00026 
00027 
00028 static int
00029 do_test (void)
00030 {
00031   if  (setenv ("PATH", test_dir, 1) != 0)
00032     {
00033       puts ("setenv failed");
00034       return 1;
00035     }
00036 
00037   char *argv[] = { fname, NULL };
00038   execvp (basename (fname), argv);
00039 
00040   /* If we come here, the execvp call failed.  */
00041   return 1;
00042 }