IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Apprentissage : Primitives, Appels systèmes


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut Apprentissage : Primitives, Appels systèmes
    Bonjour,

    En temps normal, je ne serais pas venue vers vous pour ce genre de requête ...
    Je commence à étudier les primitives systèmes, ce qui n'est pas si facile que ça d'ailleurs ...
    Le problème est que certes il y a un peu de documentation via les man pages, mais c'est tout (bon d'accord c'est censé suffire mais je m'explique).

    C'est pour les cours que j'en ai besoin, il demande dans le sujet du devoir d'étudier et d'utiliser les primitives système, le traitement en pipe, le strace() et le fork ... Moi je veux bien, mais j'ai eu le malheur de prendre l'habitude de ne codé que sur code-block jusqu'ici quasiment ... Donc je peux oublier la lib <unistd.h>, et par la même occasion : le pipe, le fork etc ...

    Donc à partir de là j'ai deux options, me trouver une VM avec une distrib Linux (ce que j'ai fait dans un premier temps). Mais comme un véritable pas doué j'ai foutue le boxon en tentant d'installer une interface graphique ... shame on me

    Tant qu'il me reste du temps j'essaye de voir les notions sous windows, après tout c'est le même principe, juste les fonctions qui change un peu ...
    Et là, grosse rigolade, je vois que fork() est un mélange de CreateProcess et de execc() (un truc comme ça), d'ailleurs c'est le même principe pour beaucoup d'autres fonctions UNIX de ce genre. En terme de librairie il ne devrais pas y avoir trop de problème il me semble, <windows.h> en contient la plupart.

    Pour en venir au fait, vu qu'il me reste peu de temps, si jamais vous avez des ressources, des infos, du code, des exemples pourriez vous les partagez ?

    Je suis un peu désespéré de demandez ça comme ça, mais bon ... Je vous remercie d'avance

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Bonsoir.

    Pour commencer tu peux passer par la faq pour un petit exemple de fork.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Salut

    ici un cours sur les processus et les primitives permettant de les manipuler (fork, pipe, signal, kill). Un peu vieux (il date de quand j'enseignais) mais il donnera les bases.

    Cependant perso je te conseillerais d'essayer de passer définitivement à Linux au-moins pour ces TP qui s'accomoderont mal de Windows et de sa façon de gérer les processus. Tu peux par exemple télécharger xubuntu (une distribution Ubuntu implémentant en natif le windows manager "xfce" que je préfère à gnome depuis que gnome s'est mis en tête de ressembler à W8) que tu peux ensuite installer sous une VirtualBox ce qui te donnera un support de travail sans nuire à ton OS de base...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut
    Merci bien à vous deux pour vos réponses.
    J'ai chopé aujourd'hui sur ma VM, un linux avec Debian et Gnome comme interface bureau il me semble. Ça change c'est clair ... J'essaierai de passer de plus en plus temps sur Linux car clairement c'est vraiment difficile de comprendre toutes ces notions sans pouvoir codé sous Linux, et en ayant du coup comme seul recourt : l'étude de l'API windows ... qui donne quelque maux de tête.

    Justement ! En l'étudiant je suis tombé sur une notion que je ne comprenait pas, " l'handle ". J'ai donc cherché des informations, mais j'ai vu qu'il y a avait deux notions différentes : l'handle et l'handler. L'un serais en quelque sorte un d'identifiant/processus (handle), gérer par " l'handle system " via des protocoles précis. Mais " l'handler " alors ... c'est quoi ? la fonction qui les gère, ou un état particulier durant lequel une action sur celui-ci s'effectue ?

    Il y a t-il un rapport avec toutes les notions d'état de processus tel que "zombie", "ready", "running", "swap" ...etc ?

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Citation Envoyé par Ojiuiookojbezib Voir le message
    Justement ! En l'étudiant je suis tombé sur une notion que je ne comprenait pas, " l'handle ". J'ai donc cherché des informations, mais j'ai vu qu'il y a avait deux notions différentes : l'handle et l'handler. L'un serais en quelque sorte un d'identifiant/processus (handle), gérer par " l'handle system " via des protocoles précis. Mais " l'handler " alors ... c'est quoi ? la fonction qui les gère, ou un état particulier durant lequel une action sur celui-ci s'effectue ?
    En fait, ce sont des termes plus ou moins génériques (et assez vagues) qui sont utilisés de longue date en informatique, spécialement chez les américains où ces mots font partie du langage courant. En outre, ces termes ont été largement utilisés dans l'API Windows et associés dans ce contexte à des notions fixes, mais ce n'est pas toujours le cas. « handle » est une « poignée » mais, au niveau logiciel, ceci va désigner un identifiant qui va permettre de désigner et manipuler une ressource instanciée quelque part, par exemple un descripteur de fichier. En infographie, c'est aussi le nom que l'on donne aux petits carrés noirs placés le long d'une figure vectorielle et qui permettent de l'attraper pour la modifier.

    « To handle » signifie « manipuler » ou « prendre en main ». Un « handler » est donc un gestionnaire fait pour prendre en charge un certain type d'événement, comme un signal UNIX.

    Je te conseille de ne pas trop formaliser la définition de ces mots car, dans certains vieux ouvrages, on trouve parfois le terme « handler » utilisé dans le sens de « handle ».

    Il y a t-il un rapport avec toutes les notions d'état de processus tel que "zombie", "ready", "running", "swap" ...etc ?
    Non. Ce sont deux notions distinctes, et ces termes-ci sont principalement issus du monde UNIX, même s'ils ont migré vers les autres plate-formes parce les cas de figure sont les mêmes partout.

  6. #6
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut
    Merci bien pour ta réponse Obsidian

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2006, 20h59
  2. appel système en c sous linux
    Par momoh dans le forum POSIX
    Réponses: 5
    Dernier message: 03/12/2006, 18h34
  3. Réponses: 3
    Dernier message: 20/06/2006, 07h06
  4. [UBUNTU] Ajout nouvel appel système ?
    Par [Margot] dans le forum Ubuntu
    Réponses: 5
    Dernier message: 11/05/2006, 14h11
  5. appel système opendir dans thread
    Par madimane dans le forum POSIX
    Réponses: 2
    Dernier message: 14/04/2006, 05h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo