idée de projet en C ?

a marqué ce sujet comme résolu.

Bonjour j’aimerais savoir si vous aviez des idées de projet en C pour un débutant qui a les bases (ce qui correspond aux 2 premières parties du tuto sur le C on va dire), la programmation Système sous Linux m’intéresse beaucoup mais je n’ai pas vraiment d’idées sur le sujet ! Après si vous avez des idées de projets autre que système ça m’intéresse aussi !

merci d’avance !

Sinon niveau système, un projet rigolo peut être d’implémenter une bibliothèque permettant d’écrire un daemon + un client Nailgun.

  • C’est potentiellement très utile pour des traitements qui pourraient bénéficier d’un cache partagé.
  • Ça mélange système (gestion de processus, forward de flux, IPC en tous genres) et réseau.
  • C’est pas non plus hyper complexe donc ça reste un petit projet finissable.
+2 -0

Merci pour vos réponses,

minirop bah pour le coup les maths c’est vraiment pas mon truc donc je sais pas trop :/ Mais je vais y jeter un oeil !

nohar ça a l’air intéressant ! qu’appelle-tu un daemon ? Pour moi un daemon, c’est un logiciel serveur du genre apache mais je peux me tromper !

Des idées pour débutant serait de partir sur de l’arduino puis des choses plus complexe en restant sur du matériel simple comme du FRDM-KL46Z pour apprendre le plus bas niveau, et remonter vers des choses plus simple et plus "système".

Une autre idée plus proche de ce que tu as l’air de chercher et plus tourné débutant, c’est d’aller chercher directement de la documentation sur linux, les drivers, le système, etc, et de contribuer à un projet opensource dessus (les issues sur les dépots te permettent de savoir quoi faire et ce qui est simple à faire).

Et qu’est-ce tu penses d’un mini jeu shell ?
Tu as le coté fun étant donné que c’est un jeu vidéo mais aussi le coté système vis à vis de la gestion du terminal avec des libs assez facile d’accès comme termcaps par exemple.

J’avais fait ces trois là à une époque, ça m’avait beaucoup appris :

  • Jeu de la Vie
  • Tetris
  • Arkanoid

Bonus: Quand tu auras un peu progresser, tu pourras tenter de les porter sur une lib graphique en C (SDL).
Si ton code était bien fait et bien pensé tu n’auras qu’à remplacer certains morceaux de code au niveau du rendu et des inputs.

+0 -1

nohar ça a l’air intéressant ! qu’appelle-tu un daemon ?

Drakop

Prends l’habitude de chercher sur Google!

C’est un reflexe a prendre. Comme ca les questions posees sont plus pertinentes, et les gens auront plus envie de t’aider.

PS: Ceci n’est pas une remarque desobligeante, mais un vrai conseil.

Ramsey

j’avais regardé en fait et j’avais pas bien compris au début c’est pour ça ! mais en cherchant un peu plus j’ai trouvé, en tout de ce que j’ai compris c’est un programme qui "tourne" en background qui n’a pas d’interaction avec l’utilisateur.

Et merci pour vos réponses !

Unidan c’est exactement le genre de projets qui m’intéressent beaucoup !

+0 -0

C’est de créer un deamon qui implémente Nailgun, donc un démon auquel tu te connectes pour lui faire lancer des commandes et des programmes. Le client communique avec le deamon via le protocole Nailgun. Si le deamon lance un programme externe il faut qu’il le lance dans un sous-process et qu’il redirige ses flux standards sur la connexion avec le client.

Edit: Si l’appellation deamon te déroute : il s’ait d’implémenter, dans une bibliothèque, le protocole Nailgun, donc le client et le serveur, + y rajouter toutes les features que tu peux imaginer.

C’est un bon exo de réseau (ça demande d’implémenter un serveur qui maintient plusieurs connexions longues en simultané), et ça peut demander d’aller taper dans des notions système assez rigolotes.

+3 -0

Salut, je suis en L3 informatique et ont a beaucoup de thème sur la programmation en C.

Pour commencer :

  • Réseau et communication ;
    1. Processus signaux.
    2. Tubes anonymes.
    3. Scrutation.
    4. Tube nommes.
    5. Sockets unix udp.
    6. Sockets unix tcp.
    7. Sockets inet tcp.
    8. Les protocoles.
    9. Analyse de trame.
    10. Cryptographie ssh.
  • Crée un compilateur, cf. Site de mon prof, les cours arrive petit à petit : Compilation :
  • Système d’exploitation, cf. site de mon prof, les cours arrive petit à petit : Systeme ;

C’est un bon morceau déjà, il y à toutes les redirections de flux avec les file_descriptor à maîtriser, puis les sockets (tcp, udp) la création de pipe…

Bon apprentissage pour la suite ;-)

+0 -0

Un truc fun et rapide à faire : un interpréteur de Brainfuck. Tu peux t’amuser à faire le truc de manière optimisée ou avec le moins de lignes de code. C’est un bon exercice pour manipuler les pointeurs et leur arithmétique.

Sinon en système tu peux aussi faire un petit shell. Tu fais une invite de commandes en console, qui quitte si tu entres une commande spéciale "exit", qui utilise fork et exec pour exécuter les commandes, et ensuite tu peux ajouter petit à petit des features : redirection des entrées sortie standard (> et <) avec dup2 la fonction qui permet de dupliquer des descripteurs de fichiers, support du pipe (|) pour enchaîner les commandes, support du &, etc. C’est pas très compliqué, j’avais eu ça dans un TP de systèmes d’exploitation à l’école. C’est assez fun et ça va te faire apprendre les bases sur les processus. ;)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte