[ncurse+dup2] flux standard non relu sous windows
RésoluChar Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
2 réponses
Salut Char Sniper,
Désolé, je n'ai pas d'installation Windows fonctionnelle pour tester ton code.
Cependant, dans mes souvenirs, fork() sous Windows ne se comporte pas du tout comme sous Linux, à moins d'utiliser Cygwin pour compiler et exécuter ton programme avec ce runtime (et encore, de mémoire, ce n'est pas parfait).
Une autre solution pour les versions Windows récentes disposant de WSL (Windows Subsystem for Linux) est d'exécuter ton programme dans ce sous-système.
Sinon, la façon de faire "normale" sous Windows est de passer par leurs API win32 avec CreateProcess() et CreatePipe(). Tu as du code d'exemple là :
Bonjour,
Merci Dal de ta réponse. J'ai réussi à faire fonctionner le bouzin, je m'y prenait mal.
Mais autant ça fonctionne nickel sous Linux, autant sous win, ça bug dans tout les sens, mais pas franchement :
Des fois le flux est redirigé, des fois non. Le waitpid capture le processus qui meure une fois sur deux. Bref, une cata. J'ai laché l'affaire. Comme tu le dis "ce n'est pas parfait". Msys2 est très similaire à Cygwin, je crois même qu'ils partagent une histoire et du code source.
Et pas envie d'aprendre l'API win, même si c'est la solution la plus logique.