Este repositório tem o intuito de reunir minha trajetória pela 42, apresentando os projetos, desafios, e experiências ao longo da minha jornada no Core Curriculum.
A Ecole 42 é uma renomada escola de programação e inovação, sem fins lucrativos, que oferece uma abordagem revolucionária de aprendizado. Sem professores ou aulas tradicionais, a 42 se baseia em aprendizado peer-to-peer, onde os alunos colaboram para superar desafios em um ambiente intensivo e imersivo. A Ecole 42 tem valores como autonomia, aprendizado colaborativo e resolução prática de problemas.
- Objetivo: Criar um programa que simula o comportamento do comando pipe do shell, permitindo o encadeamento de comandos. O programa deve ser capaz de: -Redirecionar a saída de um comando para a entrada de outro, utilizando as chamadas de sistema pipe e fork. - Executar múltiplos comandos em um pipeline, passando a saída de um comando como entrada para o próximo. - Utilizar execve para executar os comandos no sistema operacional. - Gerenciar arquivos de entrada e saída, manipulando-os com as funções de abertura, leitura, escrita e fechamento. - Garantir que o programa não tenha falhas de memória e que erros sejam tratados de maneira eficiente, seguindo as boas práticas de programação.
- Habilidades:
Compreensão do funcionamento de processos no sistema operacional
Uso de pipes e redirecionamento de dados
Gerenciamento de arquivos e I/O
Execução de comandos com execve
Controle de erros e tratamento de falhas
Gerenciamento de memória
Compreensão de chamadas de sistema: Conhecimento prático de funções de baixo nível do sistema, como pipe, fork, wait, execve, dup2, exit, entre outras.
- Objetivo: Este projeto introduz os conceitos de virtualização e administração de sistemas. O objetivo é configurar e administrar uma máquina virtual com um sistema operacional Linux, focando em práticas como a instalação e configuração de um ambiente de desenvolvimento.
- Habilidades:
Virtualização
Linux
administração de sistemas e redes
- Objetivo: Este projeto visa recriar a função
printf
da biblioteca padrão C, implementando a formatação de strings de maneira personalizada. O desafio é trabalhar com diferentes tipos de dados e criar uma implementação eficiente e segura.- Habilidades:
Manipulação de strings
variáveis de argumento
controle de saída
- Objetivo: O objetivo desse projeto é criar uma função que leia uma linha de um arquivo ou de um fluxo de entrada (stdin) sem carregar o arquivo inteiro na memória. A função deve ser capaz de lidar com múltiplas chamadas e ler até o final do arquivo ou até encontrar uma linha completa.
- Habilidades:
Manipulação de arquivo
buffers e leitura eficiente de dados
- Objetivo: O projeto Libft consiste em criar uma biblioteca de funções essenciais em C, que inclui funções de manipulação de strings, memória, listas encadeadas, e outros utilitários que são comumente usados em projetos subsequentes na 42.
- Habilidades:
Programação em C
manipulação de memória
listas e estruturas de dados básicas