AuteurMia Combeau

Étudiante à 42Paris, exploratrice du monde numérique. Je code ici à la norme de l'école 42, donc les boucles for, les switch, les opérateurs ternaires et plein d'autres choses me sont hors de portée... pour l'instant !

Programmation réseau via socket en C

P

Dans ce monde informatique ultra-connecté, il est crucial de savoir comment envoyer et recevoir des données à distance, grâce aux sockets. Dans cet article, nous verrons qu’une socket est essentiellement une « prise » numérique qu’on attache à une adresse locale ou distante afin d’établir une connexion. Nous explorerons aussi l’architecture et les appels systèmes qui nous...

Adresses IPv4, routage et masques de sous-réseau

A

Parmi les adresses IP des systèmes connectés à Internet, les adresses IPv4 sont actuellement les plus répandues. Comment peuvent-elles identifier de façon unique tous les objets connectés ? Comment facilitent-elles le routage des données d’un côté à l’autre de ce vaste réseau ? Et pourquoi sont-elles progressivement remplacées par les adresses IPv6 ? C’est ce que nous allons...

Envoyer et intercepter un signal en C

E

À force d’être confrontés à des segfaults ou a des erreurs de bus, on se sera déjà familiarisé avec l’idée d’un signal informatique. On reçoit un SIGSEGV ou un SIGBUS qui met fin à notre programme sans préavis, sans explications et sans autre recours. Mais qu’est-ce qu’un signal véritablement ? Est-ce juste le bâton de police du système d’exploitation ? Et...

Threads, mutex et programmation concurrente en C

T

Par souci d’efficacité ou par nécessité, un programme peut être construit de façon concurrente et non séquentielle. Grâce à sa programmation concurrente et `a l’aide de ses processus fils ou de ses threads et de ses mutex, il pourra effectuer plusieurs tâches simultanément. Dans un précédent article, nous avons pu comprendre comment créer des processus fils, qui sont une manière...

Errno et la gestion d’erreur en C

E

Détecter les erreurs dans un programme ainsi que leur cause, c’est la base de tout développement informatique. Mais quand une fonction ou un appel système d’une bibliothèque externe échoue, comment peut-on comprendre ce qu’il s’est passé ? Ces fonctions renvoient généralement une valeur de -1 ou NULL, mais elles stockent aussi la raison de leur échec dans errno. Voyons...

Pipe : une méthode de communication inter-processus

P

Par défaut, il est difficile de faire communiquer deux processus entre eux. Comme on l’a vu dans un précédent article, même les processus pères et fils ne partagent pas le même espace mémoire. Il nous faut donc des moyens d’établir une communication inter-processus. Et l’un de ces mécanismes de communication, c’est le pipe. Qu’est-ce qu’un pipe ? Un pipe, ou un...

Manipuler un fichier à l’aide de son descripteur en C

M

Les appels systèmes disponibles en C pour créer ou ouvrir un fichier, le lire, y écrire et le supprimer font toutes usage d’un descripteur de fichier. Avant de pouvoir manipuler des fichiers, nous devons donc découvrir comment le système d’exploitation gère ses références à ces fichiers. Qu’est-ce qu’un descripteur de fichier ? Sur un système de type Unix, un descripteur...

Créer et tuer des processus fils en C

C

Que ce soit pour exécuter un autre programme depuis le notre ou pour exécuter une partie de notre programme en parallèle, il est souvent très utile de créer des processus fils. On peut ensuite patiemment attendre qu’ils finissent leur tâches, ou même, si l’on se sent particulièrement meurtrier, les tuer prématurément ! Alors qu’est-ce exactement qu’un processus ? Comment...

Pourquoi je n’écris plus d’articles sur les projets de 42

P

Suite à un échange avec l’équipe pédagogique de l’école 42, j’ai décidé de retirer tous les articles en lien direct avec les projets de 42. La partie la plus enrichissante de chaque projet est tout le processus de recherche, d’essais et d’échecs qui nous mènent enfin à une solution viable. Et je ne voudrais priver personne de ce périple. En creusant un peu sur ce...