Mercurial > hg > Members > aka > jupyter_CbC_kernel
annotate jupyter_c_kernel/resources/master.c @ 73:b6b613c2a28a
alter package structure, moving resources under parent module.
author | Cody Horst <chorst@uw.edu> |
---|---|
date | Tue, 23 Jan 2018 22:34:24 -0800 |
parents | resources/master.c@7857f8eea835 |
children | a1e3b056a4bd |
rev | line source |
---|---|
36
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
1 #include <stdlib.h> |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
2 #include <stdio.h> |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
3 #include <dlfcn.h> |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
4 |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
5 typedef int (*main_t)(int, char **, char **); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
6 |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
7 int main(int argc, char **argv, char **envp) |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
8 { |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
9 char *error = NULL; |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
10 |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
11 setbuf(stdout, NULL); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
12 setbuf(stderr, NULL); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
13 if (argc < 2) { |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
14 fprintf(stderr, "USAGE: %s PROGRAM\nWhere PROGRAM is the user's program to supervise\n", argv[0]); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
15 return EXIT_FAILURE; |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
16 } |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
17 void *userhandle = dlopen(argv[1], RTLD_LAZY); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
18 if (userhandle == NULL) { |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
19 fprintf(stderr, "%s: %s\n", argv[0], dlerror()); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
20 return EXIT_FAILURE; |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
21 } |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
22 dlerror(); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
23 main_t usermain = dlsym(userhandle, "main"); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
24 if ((error = dlerror()) != NULL) { |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
25 fprintf(stderr, "%s: %s\n", argv[0], error); |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
26 return EXIT_FAILURE; |
8acbab5a9f21
Remove stream buffering on stdout & stderr
Louis 'Kureuil' Person <louis.person@epitech.eu>
parents:
diff
changeset
|
27 } |
54
7857f8eea835
Add args magic to provide cli-args to user program
Ben Spoor <ben.spoor@altran.com>
parents:
36
diff
changeset
|
28 |
7857f8eea835
Add args magic to provide cli-args to user program
Ben Spoor <ben.spoor@altran.com>
parents:
36
diff
changeset
|
29 /* Call Users main, but make master.c invisible by removing first argument */ |
7857f8eea835
Add args magic to provide cli-args to user program
Ben Spoor <ben.spoor@altran.com>
parents:
36
diff
changeset
|
30 return usermain(argc-1, argv+1, envp); |
7857f8eea835
Add args magic to provide cli-args to user program
Ben Spoor <ben.spoor@altran.com>
parents:
36
diff
changeset
|
31 } |