Passer un code Unix sous Windows (problème avec fork)
nepomuk
Messages postés17Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 3 décembre 2005
-
6 févr. 2004 à 11:25
delphifan
Messages postés6Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention15 mai 2004
-
12 avril 2004 à 14:30
Je cherche à passer ce code sous windows :
pid_t pid;
pid=fork();
switch (pid)
{
case '0' :
Envoi_carte(Text);
break;
case default :
if (cond)
{
/*killer le processus fils*/
}
break;
}
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 6 févr. 2004 à 17:53
fork c'est posix donc tu peut pas
par contre si tu veu faire la mem chose je sais pas si c'est possible, d'habitude on converti fork+execl par shellexecute, mais juste un fork...
> dans ton switch c'est default: et pas case default: et le break a la fin est inutile
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 6 févr. 2004 à 20:09
ben non sebseb42, je connai pas trop ce system mais j'imagine que pid 0 est reserver, ca doit etre l'equivalent du processus inactif sous win qui maintient le cpu en activite
depuis le fils tu obtient le pid du pere avec getppid() et son pid avec getpid(), je pense pas que ces fonctions soient la pour rien ??
patriarch24
Messages postés25Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention28 mars 2006 23 mars 2004 à 12:53
tu serais pas un peu rabat-joie djl ??? :-p
en plus le else est utile car le code du pere risque d'etre execute par le fils si on ne sort pas par un exit( ) ou par un autre moyen dans le code specifique du fils... tout depends.... donc j'ai autant raison que toi sur ce point !!!
delphifan
Messages postés6Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention15 mai 2004 12 avril 2004 à 14:30
bonjour,vous pouvez aussi creer des processus sous windows car de puis windows 95 est apparu une fonction plus élaborée mais aussi plus compliquée pour lancer l'execution d'un autre programme :CreateProcess qui est définie dans le fichier d'entête #include<winbase.h>,ou utiliser carrement la fonction WinExec de l'API windows pour démmarer l'execution d' un programme,ou encore utilider les fonctions de fichier d'entête #include si vous travaillez avec
borland c++.
pour être un bon programmeur il faut affronter toutes les difficultés