{"id":20205789,"url":"https://github.com/raveriss/philo","last_synced_at":"2026-05-29T13:31:25.799Z","repository":{"id":198533156,"uuid":"700992803","full_name":"raveriss/philo","owner":"raveriss","description":"Multithreading simulation project where philosophers dine, think, and sleep while avoiding death by starvation. It's an exploration of process threading, mutexes, and the dining philosophers problem in C. This project provides practical experience with the challenges of synchronizing threads and processes to achieve a common goal ","archived":false,"fork":false,"pushed_at":"2024-03-13T23:58:58.000Z","size":744,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T09:42:26.296Z","etag":null,"topics":["c-programming","concurrency","dining-philosophers","multithreading","mutexes","process-management","synchronization"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raveriss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-10-05T17:32:02.000Z","updated_at":"2024-03-10T13:07:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"99661380-ce2e-4dae-ae5c-ed2d2e5c2f8a","html_url":"https://github.com/raveriss/philo","commit_stats":null,"previous_names":["omisev/philo","raveriss/philo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raveriss/philo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fphilo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fphilo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fphilo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fphilo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raveriss","download_url":"https://codeload.github.com/raveriss/philo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fphilo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33655440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-programming","concurrency","dining-philosophers","multithreading","mutexes","process-management","synchronization"],"created_at":"2024-11-14T05:19:11.451Z","updated_at":"2026-05-29T13:31:25.781Z","avatar_url":"https://github.com/raveriss.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Projet Philosophers**\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/byaliego/42-project-badges/raw/main/badges/philosopherse.png\" alt=\"Badge du projet Philosophers\"\u003e\n\u003c/div\u003e\n\n##\n\u003cdiv aligne=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Omisev/philo/blob/main/philosophers_representation.webp\" alt=\"representation\"\u003e\n\n##\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Omisev/philo/blob/main/Capture_philosophers.png\" alt=\"sreenshot\"\u003e\n\u003c/div\u003e\n\n## Description\nCe projet est une implémentation du problème des philosophes à l'aide de la programmation multithreadée et la gestion de mutex en C. Le but est de résoudre les problèmes de concurrence comme les conditions de course, les deadlocks et les famines.\n\n## Tableau des Composants du Projet\n\n| Fichier             | Description                                                             | Responsabilité                                  | Statut    |\n|---------------------|-------------------------------------------------------------------------|-------------------------------------------------|-----------|\n| `philo.c`           | Fichier principal, contient la logique de haut niveau                   | Initialisation, gestion des threads             | Complet   |\n| `init.c`            | Initialise les structures et les variables                              | Initialisation                                  | Complet   |\n| `life.c`            | Gère la vie des philosophes                                             | Manger, dormir, penser                           | Complet   |\n| `check_death.c`     | Vérifie si un philosophe est mort                                       | Surveillance de la mort                          | Complet   |\n| `philo_utils.c`     | Fonctions utilitaires                                                    | Fonctions auxiliaires                            | Complet   |\n| `ft_atol.c`         | Conversion de chaîne à long int                                         | Conversion de types                              | Complet   |\n| `clean.c`           | Nettoie les ressources avant de quitter le programme                    | Nettoyage                                        | Complet   |\n| `Makefile`          | Fichier pour compiler le projet                                          | Compilation                                      | Complet   |\n| `philo.h`           | Fichier d'en-tête contenant les déclarations et les macros               | Déclarations                                    | Complet   |\n\n\n\n## Installation et Compilation\n```\ngit clone git@github.com:Omisev/philo.git\ncd philo\nmake\n```\n\n## Utilisation\n```\n./philo 2 400 100 100 5\n```\n\n## Caractéristiques\nGestion de la concurrence avec pthread et mutex\nRobustesse et absence de fuites de mémoire\nRespect des normes de l'école 42\n\n## Fonctions externes autorisées\nmemset\nprintf\nmalloc\nfree\nwrite\nusleep\ngettimeofday\npthread_create\npthread_detach\npthread_join\npthread_mutex_init\npthread_mutex_destroy\npthread_mutex_lock\npthread_mutex_unlock\n\nAuteur\nraveriss\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraveriss%2Fphilo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraveriss%2Fphilo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraveriss%2Fphilo/lists"}