diff options
Diffstat (limited to 'philo_three/main.c')
| -rw-r--r-- | philo_three/main.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/philo_three/main.c b/philo_three/main.c new file mode 100644 index 0000000..5c9b869 --- /dev/null +++ b/philo_three/main.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/15 00:45:24 by cacharle #+# #+# */ +/* Updated: 2020/02/15 01:40:26 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "philo_three.h" + +int main(int argc, char **argv) +{ + t_philo_args philo_args; + sem_t *forks; + + if (!parse_args(&philo_args, argc, argv)) + return (1); + forks = sem_open("philo_two", O_CREAT, 0700, philo_args.philo_num); + if (forks == SEM_FAILED) + return (1); + + i = -1; + while (++i < philo_args.philo_num) + { + pid = fork(); + if (pid == -1) + return (1); + if (pid == 0) + { + child_start(&philo_args); + return (0); + } + } + + sem_close(forks); + sem_unlink("philo_two"); + return (0); +} |
