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 :

ambiguïté: appel système linux


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Points : 5
    Points
    5
    Par défaut ambiguïté: appel système linux
    Bonjour à tous

    j'aimerais bien si c'est possible de me donner un coup de pouce, en ce qui concerne la création des processus sous linux, et aussi leur gestion, en utilisant bien sûr l'appel système fork!

    la difficulté réside au niveau de la résolution des exercices, même si, j'ai compris la notion de duplication de processus fils à partir d'un processus père; le créateur.

    quand il s'agit d'écrire un programme en c, mettant en place une certaine arborescence: père et plusieurs fils, en combinant d'autres appel systèmes comme :sleep, wait, exit , là je vous dirais pas mon humeur

    merci et veuillez accepter mes salutations

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    C'est une horreur de lire en gras, pourquoi n'écris-tu pas plus simplement.

    Ensuite sur le fond, ton message ressemble à : "donner moi un cours"... Il y en a sur le site accessibles depuis le menu en haut.

    Si tu as un problème précis sur lequel tu veux de l'aide, poste ton code et explique ce qui te bloque.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Salut,

    d'accord,
    le problème c'est que je ne sais pas ou' mettre la fonction fork() à l'interieur de mon code,
    c'est à dire que j'arrive pas à déterminer les étapes de mon algorithme,

    si vous avez le temps, vous pouvez m'aider soit vous me donnez un exemple ou autre chose, je serais reconnaissant!
    d'ailleurs,le web est plein de documents, mais la façon d'expliquer n'est pas toujours pertinente, dans mon cas

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Citation Envoyé par wikiInfo Voir le message
    le problème c'est que je ne sais pas ou' mettre la fonction fork() à l'interieur de mon code, c'est à dire que j'arrive pas à déterminer les étapes de mon algorithme,
    Si ton problème est lié à un algorithme, et que tu ne donnes pas ton algo ou ce que tu veux faire, difficile d'apporter une réponse.

    fork() duplique le processus. Après l'appel à fork() tu as 2 processus distinct qui continue, de vrai clones ! La seule différence entre les 2 se fait sur le code de retour de fork().

  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 wikiInfo Voir le message
    le problème c'est que je ne sais pas ou' mettre la fonction fork() à l'interieur de mon code,
    fork() est une fonction très simple qui ne prend aucun argument. Ce qui te permet de tirer pas mal de conclusions.

    Un appel à fork() fonctionne comme une mitose : à son issue, ton processus aura été cloné. Tu auras donc un nouveau processus qui exécutera exactement le même code, qui contiendra les mêmes variables, dont le déroulement se poursuivra au même endroit, c'est-à-dire après le fork(). Il ne s'agit pas de lancer un nouvel exécutable depuis le début.

    Tes deux processus seront donc les mêmes, mais le système aura établi un lien de parenté : le processus créé sera le fils de celui qui a appelé fork(). Comme, a priori, tu ne sais pas qui est qui, c'est le code de retour de fork() qui va te permettre de le savoir :

    • < 0 : fork() a échoué ;
    • = 0 : ton processus est le fils. Utilise getppid() pour connaître le PID du processus parent ;
    • > 0 ; ton processus est le père. Le code renvoyé est celui du PID du fils créé.

Discussions similaires

  1. Appels système Unix/Linux en C++
    Par PyNub dans le forum Débuter
    Réponses: 5
    Dernier message: 08/04/2012, 11h59
  2. [linux] utilisation des appels système
    Par Invité dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 21/05/2011, 23h53
  3. [linux]terminer un appel système lancé en arrière plan
    Par ankou29666 dans le forum Langage
    Réponses: 5
    Dernier message: 21/08/2007, 18h37
  4. Réponses: 1
    Dernier message: 06/12/2006, 20h59
  5. appel système en c sous linux
    Par momoh dans le forum POSIX
    Réponses: 5
    Dernier message: 03/12/2006, 18h34

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