spectras :
suffit de les ouvrir avant.
Tout est dit.
Mais sous nux, il est IMPOSSIBLE de passer une ressource anonyme (un socket, par exemple) à un autre processus sans lien de parenté.
L'exemple de DuplicateHandle montré sur le lien de nil n'apprend qu'à tuer un programme de la façon la plus sanglante qui soit, à supposer qu'on ait déjà le Handle que le processus distant utilise pour son thread...
En fait, je me demande bien d'où ils ont tiré le code win32 à remplacer par le kill(pid, SIGKILL) de Linux (oui, TerminateProcess, ça fait bien un KILL et non un TERM

)
De plus, KillTimer et Alarm(0) annulent bien un compte à rebours, mais celui-ci n'est pas du tout géré de la même façon sous windows et linux... Sous Windows, c'est un Message comme les autres (ce qui a ses inconvénients, c'est loin d'être "temps réel") qui peut être ignoré sans problème.
Si une librairie linux inconnue utilise alarm sans prévenir, le programme sera tué...
Autre chose, pour le Process Still Exists: C'est complètement mauvais, et c'est même précisé dans la doc, surtout que le processus peut très bien retourner la valeur STILL_ACTIVE. Il faut utiliser WaitForSingleObject() avec un timeout nul, pour éviter ce genre de problème
Bon, pour CreateThread/ _beginthread et ExitThread/_endthread , je crois que c'est bon, ce sont simplement les fonctions de l'ancienne API...
Par contre:
TerminateThread((HANDLE *) threadId, 0);
!! Je ne vois pas comment ils se permettent d'associer ainsi un Id de Thread Win32 (Qui est un entier unique dans le système) à un pointeur sur Handle... La fonction OpenThread n'existe pas pour rien... Surtout que CreateThread retourne directement un Handle...
EDIT: J'ai dit une connerie, je n'avais pas vu qu'ils appelaient ThreadId un pointeur sur Handle... On n'a pas idée non plus, d'appeler chien un pointeur sur chat...
Bref, il n'est pas si facile que ça d'égaler les possibilités de certains programmes Windows avec Linux...
Et puis, j'ai consulté les mans, select est bien moins polyvalent que MsgWaitForMultipleObjectsEx qui permet d'attendre en un seul thread toutes sortes de ressources différentes (y compris un sémaphore et un autre processus/thread, j'ai vérifié, select ne le fait pas)
Bref, je préfère Windows pour programmer, et même si vous me prouvez que Linux est mieux, je trollerai pour le casser (et puis je suis comme ça, je trouve que le fork/exec est plus lourd que CreateProcess)
Edit: et moins fiable en plus: CreateProcess retourne immédiatement une erreur si la ligne de commande est mauvaise, ou immédiatement une bonne nouvelle si ça marche. Sous nunux, si la ligne de commande est mauvaise, le père n'a aucun moyen de le savoir, puisque le fils retourne une erreur tout de suite ou une bonne nouvelle A LA FIN du programme...