Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2368 connectés 

  FORUM HardWare.fr
  Programmation
  C

  fork(), wait(), exec() et autres sous Win?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fork(), wait(), exec() et autres sous Win?

n°1460192
sky_99
www.core-tx.com
Posté le 19-10-2006 à 03:16:27  profilanswer
 

Bonjour à tous.
Je ne suis pas toujours sous linux, donc,je code aussi sous win.
Sauf que la je suis bien embete : j'ai besoin de fonctions de unistd.h
qui forcement ne vont pas fonctionner sous windows...
 
Pourriez vous m'indiquer des tutos sur la façon de faire l'equivalent de
fork et wait sous windows? que je me fasse un petit .h avec des  
bidules de compilations conditionnelle pour appeller les bonnes fonctions
sous win...
(ou meme juste le nom des fonctions, la je googleise depuis un moment,  
mais je trouve rien... Dois pas avoir les bons mots clés)

mood
Publicité
Posté le 19-10-2006 à 03:16:27  profilanswer
 

n°1460195
anordem
Posté le 19-10-2006 à 04:03:04  profilanswer
 

Salut,
 
Je ne connais pas du tout la prog Linux donc je vais peut être dire une connerie mais il me semble qu'il n'existe pas d'équivalent de ces fonctions sous windows.
 
Tu vas devoir utiliser les apis de manipulation de processus et de thread :  
http://windowssdk.msdn.microsoft.c [...] S.80).aspx
 
Sinon la question avait déjà été posée ici : http://forum.hardware.fr/hardwaref [...] 2606-1.htm  :whistle:  
 

n°1460196
tbp
Posté le 19-10-2006 à 04:03:25  profilanswer
 

2 approches à considérer:
a) Cygwin et sa couche d'émulation
b) faire de même que les autochtones et se coltiner avec Win32
 
Si a) est simple d'emploi on est coincé avec le CRT & co cygwin, donc gcc, et ce n'est pas optimal.
 
Dans le 2ième cas de figure, attendu que dans le joyeux monde des fenetres la sémantique des threads - et des IPC - n'a rien à voir, il va vous falloir genereusement emballer le tout.
google: CreateProcess, CreateFileMapping, MapViewOfFile, CreateThread, CreateSemaphore, WaitForSingleObject, WaitForMultipleObjects etc...

n°1460197
sky_99
www.core-tx.com
Posté le 19-10-2006 à 04:16:25  profilanswer
 


a)Cig, c'est sympa, mais ça reste une solution "partielle"... a ce moment la, autant rebooter sous ma gentoo, pis coder normalement avec kwrite et gcc...
 
b) Donc, ça serait la solution que je devrais employer... mais j'ai vu la tete des trucs, ça a l'air nettement moins simple que ce bon vieux fork... et pour faire une fonction generique qui appelle un fork sous linux ou la fonction qui va bien sous win, ça m'a l'air mal barré  :pfff:  
 
ça vous parrait réalisable de faire ce genre de fonction generique et ensuite faire un code portable?
j'ai un peu l'impression que je risque d'etre obligé de faire deux codes differents, un pour chaque systeme, si je veux aller par la...
CreateProcess, il prend 10 arguments :| et aucun n'est un type de données basique :/
foulala, ça a l'air assez affreux la prog windows...
 
En tous cas, merci de l'aide, des liens, des explications, toussa  :jap:  
 

n°1460199
tbp
Posté le 19-10-2006 à 04:50:17  profilanswer
 

Tout dépend de votre cahier des charges.
Si c'est de produire une abstraction du modèle fork typiquement *nix pour un portage minimal, c'est certes possible. Mais fatalement innéficace.
Si vous avez des contraintes de performance alors vous vous devrez de taper plus haut, du fait de divergences fondamentales (et pas seulement dans le nombre d'arguments nécessaire à la création d'un processus).
 
J'ai oublié de mentionner OpenMP. Si par chance celà colle à vos besoins, n'hésitez pas; gcc 4.2, qui ne devrait plus tarder à sortir, le fournit en standard pour le C, C++, Fortran etc... ce sur toutes les platformes. Et c'est aussi disponible avec MSVC 8 et ICC 9.

n°1460200
sky_99
www.core-tx.com
Posté le 19-10-2006 à 05:14:43  profilanswer
 

en fait, je n'ai pas de cahier des charges precis, ni de besoin "pressant" d'utiliser ces fonctions, c'est a titre d'apprentissage...
 
Et si je peux réussir a faire une petite abstraction de l'OS a ce niveau, je m'en servirai pour des petites choses, comme une interface (afficher quelquechose dans le shell tout en "ecoutant" le clavier pour attendre une action de l'utilisateur : exemple simple, afficher des resultats successifs a l'ecran, en ayant la possibilité d'appuyer sur une touche pour mettre en pause...)
 
Apres, pour ce qui est de faire de gros projets serieux, il est peu probable que je tente le coup en C...
 
Je suppose en outre que si je dois faire une utilisation intensive de telles fonctions, il est fortement preferable d'optimiser le résultat en collant au mieux aux specifications du systeme...
 
En tous cas merci pour tous ces conseils, liens, recommandations :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  fork(), wait(), exec() et autres sous Win?

 

Sujets relatifs
Win Api : comment supprimer l'enfant sans supprimer le parent ?Win Api : L'utilisation du menu fait planter le programme
Migration Postgresql Win vers Postgresql LinuxContourner fonction exec
Win api : programme qui plante à cause des imagesUtiliser BASIC sous Win XP ?
Fork() et threadsEst-ce que c'est bon? pour exec
problème commande exec sur wamp par rapport à easyphp[Win Batch] Récupérer le nom FQDN du poste
Plus de sujets relatifs à : fork(), wait(), exec() et autres sous Win?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR