「🎉」 init: hello world !
This commit is contained in:
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
philo/obj/
|
||||
philo/philosphers
|
||||
philo/.direnv
|
||||
philo/.envrc
|
||||
philo/flake.nix
|
||||
philo/compile_commands.json
|
||||
philo/.cache
|
||||
philo/vgcore.*
|
||||
|
60
philo/Makefile
Normal file
60
philo/Makefile
Normal file
@ -0,0 +1,60 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# Makefile :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/07/07 15:08:52 by adjoly #+# #+# #
|
||||
# Updated: 2024/07/07 15:24:47 by adjoly ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
SHELL = bash
|
||||
|
||||
NAME = philo
|
||||
|
||||
CC = cc
|
||||
|
||||
OBJSDIR = obj/
|
||||
|
||||
SRC = $(shell find src -name '*.c')
|
||||
|
||||
I_DIR = include/
|
||||
|
||||
INCLUDE = -I $(I_DIR)
|
||||
|
||||
OBJS = $(addprefix $(OBJSDIR), $(SRC:.c=.o))
|
||||
|
||||
FLAGS = -Werror -Wall -Wextra -g
|
||||
|
||||
# --------------------------------
|
||||
|
||||
all: $(NAME)
|
||||
|
||||
$(LIB):
|
||||
@make -sj$(nproc) -C $(LIBFT_DIR)
|
||||
|
||||
$(NAME): $(LIB) $(OBJS)
|
||||
@printf "\x1B[2K\r \x1B[1;32m[ ]\x1B[0m objects compiled."
|
||||
@printf "\n \x1B[1;33m[ ]\x1B[0m compiling $(NAME)..."
|
||||
@$(CC) $(FLAGS) $(OBJS) $(LIB) -o $(NAME) -lpthread
|
||||
@printf "\x1B[2K\r \x1B[1;33m[ ]\x1B[0m $(NAME) compiled.\n"
|
||||
|
||||
$(OBJSDIR)%.o: %.c
|
||||
@mkdir -p $(@D)
|
||||
@$(CC) $(INCLUDE) $(FLAGS) $< -c -o $@
|
||||
@printf "\x1B[2K\r \x1B[1;32m[ ]\x1B[0m compiling objects... : $<"
|
||||
|
||||
clean:
|
||||
@rm -f $(OBJS)
|
||||
@printf " \x1B[1;31m[ ]\x1B[0m deleted $(NAME).\n"
|
||||
|
||||
fclean: clean
|
||||
@rm -f $(NAME)
|
||||
@rm -Rf $(OBJSDIR)
|
||||
@printf " \x1B[1;31m[ ]\x1B[0m deleted objects.\n"
|
||||
|
||||
re: fclean all
|
||||
|
||||
.PHONY: clean all re fclean
|
31
philo/include/philo.h
Normal file
31
philo/include/philo.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* philo.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/07/07 15:11:02 by adjoly #+# #+# */
|
||||
/* Updated: 2024/07/07 16:18:23 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef PHILO_H
|
||||
# define PHILO_H
|
||||
|
||||
# include <stdio.h>
|
||||
# include <pthread.h>
|
||||
# include <stdint.h>
|
||||
|
||||
typedef enum s_philo_state
|
||||
{
|
||||
DIED = -1,
|
||||
EAT,
|
||||
THINK,
|
||||
SLEEP,
|
||||
FORK_TAKEN
|
||||
} t_philo_state;
|
||||
|
||||
void log_philo(uint32_t timestamp, uint16_t philo, t_philo_state type);
|
||||
|
||||
#endif
|
22
philo/include/philo_msg.h
Normal file
22
philo/include/philo_msg.h
Normal file
@ -0,0 +1,22 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* philo_msg.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/07/07 17:50:46 by adjoly #+# #+# */
|
||||
/* Updated: 2024/07/07 17:53:53 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef PHILO_MSG_H
|
||||
# define PHILO_MSG_H
|
||||
|
||||
# define EATING_MSG "is eating\n"
|
||||
# define THINK_MSG "is thinking\n"
|
||||
# define SLEEP_MSG "is sleeping\n"
|
||||
# define DIED_MSG "died\n"
|
||||
# define FORK_MSG "has taken a fork\n"
|
||||
|
||||
#endif
|
BIN
philo/philo
Executable file
BIN
philo/philo
Executable file
Binary file not shown.
28
philo/src/log.c
Normal file
28
philo/src/log.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* log.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/07/07 16:12:20 by adjoly #+# #+# */
|
||||
/* Updated: 2024/07/07 17:56:28 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "philo.h"
|
||||
#include "philo_msg.h"
|
||||
|
||||
void log_philo(uint32_t timestamp, uint16_t philo, t_philo_state type)
|
||||
{
|
||||
if (type == EAT)
|
||||
printf("%u %hu %s", timestamp, philo, EATING_MSG);
|
||||
else if (type == THINK)
|
||||
printf("%u %hu %s", timestamp, philo, THINK_MSG);
|
||||
else if (type == SLEEP)
|
||||
printf("%u %hu %s", timestamp, philo, SLEEP_MSG);
|
||||
else if (type == DIED)
|
||||
printf("%u %hu %s", timestamp, philo, DIED_MSG);
|
||||
else if (type == FORK_TAKEN)
|
||||
printf("%u %hu %s", timestamp, philo, FORK_MSG);
|
||||
}
|
20
philo/src/philo.c
Normal file
20
philo/src/philo.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* philo.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/07/07 15:10:29 by adjoly #+# #+# */
|
||||
/* Updated: 2024/07/07 17:44:08 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "philo.h"
|
||||
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
(void)ac;
|
||||
(void)av;
|
||||
log_philo(10, 5, DIED);
|
||||
}
|
Reference in New Issue
Block a user