MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
scriptstub.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <unistd.h>
5 
6 /* Translate call of myself into call of same-named script in LIBDIR */
7 /* The macro LIBDIR must be defined as a double-quoted string */
8 
9 int main (int argc, char **argv)
10 {
11  char *basename;
12  char *fullname;
13  char **newargs;
14  int i;
15 
16  basename = strrchr(argv[0], '/');
17  if (basename)
18  basename++;
19  else
20  basename = argv[0];
21  fullname = malloc(strlen(LIBDIR) + strlen(basename) + 2);
22  sprintf(fullname, "%s/%s", LIBDIR, basename);
23  newargs = malloc((argc+1) * sizeof(char *));
24  newargs[0] = fullname;
25  for (i = 1; i < argc; i++)
26  newargs[i] = argv[i];
27  newargs[argc] = NULL;
28 
29  execvp(fullname, newargs);
30 
31  return 1;
32 }