begin process at 2010 02 10 05:20:05
  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 :9 628

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 [C/WIN32/WMI]SAVOIR SI UNE CLASSE COM EST INSTALLÉE par rt15
Source avec Zip Source avec une capture [C/WIN32][DRIVER] DÉTECTION DE CRÉATION OU DE SUPPRESSION DE... par deck_bsd
Source avec Zip DÉTECTION DE LANCEMENT D'APPLICATION (WIN32, REGISTERSHELLHO... par buno
Source avec Zip Source avec une capture [C/WIN32] INJECTION DE DLL 2 MÉTHODES (REMOTETHREAD PROPRE &... par deck_bsd
PRODUCER CONSUMER C (WITHIN LINUX) par PCBill

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 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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,014 sec (4)

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