begin process at 2012 02 12 06:27:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > CLONER UN PROCESSUS AVEC L'INSTRUCTION FORK(); [CODE EN C] [GCC]

CLONER UN PROCESSUS AVEC L'INSTRUCTION FORK(); [CODE EN C] [GCC]


 Information sur la source

Note :
1 / 10 - par 3 personnes
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Niveau :Initié Date de création :29/07/2001 Date de mise à jour :10/10/2001 00:00:00 Vu :11 211

Auteur : Jo

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Dans cet exemple je vais vus montre comment cloner un processus,
dejas un processus est une tache qu'execute le systeme d'eploitation, par exemple quand vous lancer une application quelquoncques,
le systeme lui attribut un identifiant, par exemple 2300 cela correspond au PID (Processus IDentification)
Le faite de cloner ce processus est que l'application va relancer une seconde fois exactement la meme application,.
Petite note: le code suivant a ete ecrit pour les systemes d'exploitation type unix.

Source

  • #include <unistd.h> //Pour l'instruction fork();
  • #include <stdio.h>
  • #include <signal.h> //pour l'instruction kill et le signal SIGKILL
  • int main()
  • {
  • int i;
  • int pid;
  • char c;
  • if (pid=fork()) //Si le pid du pere est egal au pid du fils
  • {
  • printf("voulez-vous tuer le fils?"); //On demande si on veut tuer le fils
  • scanf("%c",&c);
  • if (c=='o') //Si o est taper
  • {
  • kill(pid,SIGKILL); //Alors on le tu via l'instruction kill();
  • }
  • }
  • else
  • {
  • while(1) //Si non tant que c'est pas le cas on fait une boule infinie qui affiche la valeur de i
  • {
  • printf("%d",i++);
  • }
  • }
  • }
#include <unistd.h>  //Pour l'instruction fork();
#include <stdio.h>  
#include <signal.h>  //pour l'instruction kill et le signal SIGKILL

int main()
{
  int i;
  int pid;
  char c;
  
  if (pid=fork()) //Si le pid du pere est egal au pid du fils
  {
    printf("voulez-vous tuer le fils?"); //On demande si on veut tuer le fils
    scanf("%c",&c);
    if (c=='o') //Si o est taper
    {
      kill(pid,SIGKILL); //Alors on le tu via l'instruction kill();
    }
  }
  else 
  {
    while(1) //Si non tant que c'est pas le cas on fait une boule infinie qui affiche la valeur de i 
    {
      printf("%d",i++);
    }
  }
}
   



 Sources du même auteur

Source avec Zip [G++] [CODE C++] BOTBATTLE
Source avec Zip [G++] [CODE C++] SERVER.CFG GENERATOR POUR COUNTER-STRIKE
LA CARTE AU TRESOR VERSION 0.3 [CODE EN C++] [G++]
Source avec une capture CLIENT/SERVER [CODE EN C] [GCC]
CREATION DE CLASSE [CODE EN C++] [G++]

 Sources de la même categorie

Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE par pgl10
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10
Source avec Zip PETITE CLASSE DE GESTION DES PROCESSUS SOUS WINDOWS par wisar
Source avec Zip KEYLOGGER AVEC NOM DU PROCESSUS ET DE LA FENETRE QUI A LE FO... par wisar
Source avec Zip LINUX USB BOOT LEGER par patatalo

Commentaires et avis

Commentaire de davwart le 21/11/2002 16:55:59

heu.. je crois que tu n'as pas vraiment compris ce code, disponible sur le net.
pid=fork n'a rien a voir avec "Si le pid du pere est egal au pid du fils"...

ca affecte la valeur de fork au pid, valeur necessaire pour tuer le processus si necessaire...

Commentaire de MichaelLynch le 23/11/2002 20:27:32

salut, quelques corrections à ton code:
il faut que tu fasses un getpid() pour avoir le pid.
autre information pour ta culture personnelle la fonction pour avoir le pid du père est getppid();
il faut que tu regardes les man de ta distribution préférée avant de pondre un code qui ne marche pas. il faut que les gens lise un code propre pour qu'ils puissent apprendre quelquechose, alors ait l'obligence de vérifier tes sources la prochaine fois... merci

Commentaire de wolvangel le 08/07/2003 19:19:37

Bonjour j'aimerai savoir comment utiliser la fonction fork() sous windows et surtout savoir si c'est possible.
Merci !

Commentaire de wariorz le 02/01/2004 11:21:59

Lu a tous ct pour savoir a koi sert ce script??

Commentaire de patriarch24 le 02/02/2004 11:44:31

ca marche pas du tout....

il faut faire :
#include &lt;sys/types.h&gt;
//...
pid_t pid = fork() ;

switch (pid) {
   case 0 : code pour le fils;
   case -1 : erreur;
   default : code pour le pere
}

d'autre part i n'est pas initialise ... donc ca compile pas mdr

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales