{"id":28964512,"url":"https://github.com/artidek/42_ft_printf","last_synced_at":"2025-06-24T05:06:45.714Z","repository":{"id":300269099,"uuid":"1004883871","full_name":"artidek/42_ft_printf","owner":"artidek","description":"A custom implementation of the C standard library's printf function. This project recreates printf with support for formatting, variable arguments, and buffer management, demonstrating deep understanding of C programming, variadic functions, and memory handling.","archived":false,"fork":false,"pushed_at":"2025-06-20T18:01:52.000Z","size":1528,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T19:31:33.764Z","etag":null,"topics":["42school","buffer-management","c","error-handling","variadic-functions"],"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/artidek.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T10:25:20.000Z","updated_at":"2025-06-20T18:01:55.000Z","dependencies_parsed_at":"2025-06-20T19:31:56.872Z","dependency_job_id":"310d8bb3-263a-48e4-ac40-6802c55ce246","html_url":"https://github.com/artidek/42_ft_printf","commit_stats":null,"previous_names":["artidek/42_ft_printf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/artidek/42_ft_printf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artidek%2F42_ft_printf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artidek%2F42_ft_printf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artidek%2F42_ft_printf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artidek%2F42_ft_printf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artidek","download_url":"https://codeload.github.com/artidek/42_ft_printf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artidek%2F42_ft_printf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261611074,"owners_count":23184020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["42school","buffer-management","c","error-handling","variadic-functions"],"created_at":"2025-06-24T05:06:35.836Z","updated_at":"2025-06-24T05:06:45.705Z","avatar_url":"https://github.com/artidek.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 42_ft_printf\n\nWelcome! This repository contains my implementation of the C `printf` function as required by the 42 school curriculum. The goal of this project was to deeply understand formatted output in C, handle variadic functions, and manage memory and buffers efficiently. I focused on writing clean, modular, and standard-compliant code, closely following the project specifications.\n\n---\n\n## 🚩 Project Overview\n\nI developed a custom version of `printf`, called `ft_printf`, which replicates the essential features and behavior of the standard function as outlined in the 42 subject PDF. This includes support for common format specifiers (`%d`, `%s`, `%c`, `%x`, `%p`, `%i`, `%u`, `%X`, `%%`), flags, width, and precision handling.\n\n### Key Points\n\n- **Comprehensive Format Support:** Handles all required specifiers, flags, width, and precision per the assignment.\n- **Modular Source Structure:** Parsing, formatting, and output logic are separated for readability and maintainability.\n- **Performance and Safety:** Variadic arguments and buffer management are implemented with care to avoid leaks and undefined behavior.\n- **Custom Libft Integration:** Relies on my own C utility library (`libft`), as is standard for 42 projects.\n\n---\n\n## 📁 Main Files and Structure (Partial)\n\n- `ft_printf.c`, `ft_print_*.c` — Main implementation and helper modules  \n- `libftprintf.h` — Header with function prototypes and type definitions  \n- `libft/` — Personal C library required by the project  \n- `Makefile` — Build system for compiling and testing  \n\n\u003e This is a partial listing. For the complete codebase, see the [repository directory](https://github.com/artidek/42_ft_printf/tree/main).\n\n---\n\n## 🛠️ How to Use\n\n1. **Clone the repository:**\n   ```sh\n   git clone https://github.com/artidek/42_ft_printf.git\n   cd 42_ft_printf\n   ```\n\n2. **Build the library:**\n   ```sh\n   make\n   ```\n\n3. **Include and use in your code:**\n   ```c\n   #include \"libftprintf.h\"\n   \n   int main(void) {\n       ft_printf(\"Hello, 42! Score: %d\\n\", 100);\n       return 0;\n   }\n   ```\n   Link the generated library when compiling your project.\n\n---\n\n## 🤝 Contributing\n\nFeedback and suggestions are welcome. Please open an issue or submit a pull request if you have improvements or questions.\n\n---\n\n## ⚖️ License\n\nThis code is shared for educational and personal use as part of the 42 school curriculum.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartidek%2F42_ft_printf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartidek%2F42_ft_printf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartidek%2F42_ft_printf/lists"}