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

  FORUM HardWare.fr
  Programmation
  C

  fork et unistd.h sous windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fork et unistd.h sous windows

n°1124287
canto13
Posté le 18-06-2005 à 23:49:35  profilanswer
 

Bonjour,
 
bon, désolé si ma question est stupide au cas où, mais j'aurai voulu savoir un truc et de toute facon c'est comme ca qu'on progresse en posant des questions.  
 
J'ai fait un programme C sous dev-cpp (et visual C++) qui m'affiche comme erreur qu'il ne reconnait pas la fonction fork(). Est-ce que c'est parce que la librairie unistd.h n'est pas reconnue sous windows et ne marche que sous unix? Ou sinon comment je peux l'ajouter? Et sinon, sous windows, comment on crée des processus?  
 
Merci beaucoup pour les réponses.


Message édité par canto13 le 18-06-2005 à 23:50:34
mood
Publicité
Posté le 18-06-2005 à 23:49:35  profilanswer
 

n°1124291
Taz
bisounours-codeur
Posté le 18-06-2005 à 23:55:19  profilanswer
 

tu veux pas plutôt installe une distrib GNU/Linux ?

n°1124297
canto13
Posté le 19-06-2005 à 00:08:57  profilanswer
 

Désolé je vois pas le rapport lol.

n°1124299
manatane
En vous remerciant, bonsoir
Posté le 19-06-2005 à 00:12:22  profilanswer
 

fork() est un appel système (un truc qui fait l'interface entre le noyau et les applications) décrit par Posix. Or windows n'est pas compatible Posix.
Tu peux utiliser Cygwin ou SFU http://www.microsoft.com/windowsse [...] fault.mspx pour assurer une compatibilité Posix. Le deux ont plutot bonne presse.
Pour le second on m'avait dit que son besoin pour Microsoft s'était fait sentir pour certains appels d'offre où une compatibilité Posix était requise. J'ignore en revanche comment il s'intégre à Windows, retour bienvenus.

n°1124301
Taz
bisounours-codeur
Posté le 19-06-2005 à 00:15:39  profilanswer
 

ben que tu essais de faire tes devoirs de C/Unix sous windows ...

n°1124303
canto13
Posté le 19-06-2005 à 00:18:57  profilanswer
 

Merci Manatane.  
Taz, relis bien les questions avant de répondre stp, merci...

n°1124305
Taz
bisounours-codeur
Posté le 19-06-2005 à 00:21:11  profilanswer
 

ben oui, je lis bien et je comprends que tu essaies de faire de la programmation Unix.

n°1124315
canto13
Posté le 19-06-2005 à 00:30:56  profilanswer
 

Taz est comique lol...

n°1124318
manatane
En vous remerciant, bonsoir
Posté le 19-06-2005 à 00:44:08  profilanswer
 

Ben unistd.h c'est le header qui définit un peu tout ce qui est fondamentale à Posix (ce n'est pas ANSI) et comme Unix==Posix et que Windows!=Posix ben on peut facilement en déduire que tu veux faire de la programmation Unix sur un système incompatible :p
http://www.opengroup.org/onlinepub [...] std.h.html

n°1124322
canto13
Posté le 19-06-2005 à 01:01:43  profilanswer
 

Merci de la précision Manatane, au moins ta réponse à toi a le mérite d'etre claire, pas comme certains qui se la jouent des qu'ils parlent à un débutant...

mood
Publicité
Posté le 19-06-2005 à 01:01:43  profilanswer
 

n°1124325
Taz
bisounours-codeur
Posté le 19-06-2005 à 01:09:25  profilanswer
 

je me la joue pas. Seulement dans ton premier message tu constates toi même que ton programme posix ne fonctionne pas sous Windows. Je te dis donc d'installer un système GNU/Linux conforme POSIX.

n°1124702
moi23372
Posté le 19-06-2005 à 18:51:57  profilanswer
 

oui mais lui il demande une solution pour windows, alors ton linux tu oublies quoi. C'est pas ce qu'il veut!

n°1124706
canto13
Posté le 19-06-2005 à 19:29:37  profilanswer
 

C'est bon les gars. On vient de m'avertir que le Taz est un beau specimen sur ce forum : toujours a faire le mac et a se foutre de la gueule des moins à l'aise en programmation. N'aggrave pas ton cas petit, tu sais, c'est toujours plus facile de faire le beau derrière l'écran de son ordi, mais devant les gens, quelque chose me dit que tu dois t'écraser vite fait...
 
Sinon, merci à tous pour les réponses qui m'ont aidées à mieux capter. Merci.

n°1124708
Taz
bisounours-codeur
Posté le 19-06-2005 à 19:32:11  profilanswer
 

ben on te dis mal.

n°1124767
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-06-2005 à 21:57:43  profilanswer
 

canto13 a écrit :

C'est bon les gars. On vient de m'avertir que le Taz est un beau specimen sur ce forum : toujours a faire le mac et a se foutre de la gueule des moins à l'aise en programmation. N'aggrave pas ton cas petit, tu sais, c'est toujours plus facile de faire le beau derrière l'écran de son ordi, mais devant les gens, quelque chose me dit que tu dois t'écraser vite fait...


On peut reprocher à Taz d'être parfois lapidaire (j'en connais d'autres), mais il est techniquement juste et son expertise est reconnue. Il faut savoir prendre l'information comme elle vient et chercher un peu par soi-même, approfondir... On est pas là pour tout faire tomber tout cuit dans le bec. En principe, on donne des pistes, et les gens progressent d'eux-même...
 
Pour répondre à ta question initiale, il y a peut être une solution portable dans la glib.
 
http://developer.gnome.org/doc/API/glib/
 


Message édité par Emmanuel Delahaye le 19-06-2005 à 21:59:40

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1124777
Taz
bisounours-codeur
Posté le 19-06-2005 à 22:12:49  profilanswer
 

pour la version 2.x :
 
http://developer.gnome.org/doc/API [...] esses.html
 
Les fonctions sont un peu barbares, mais c'est exactement ce qu'il faut.

n°1132029
Twinsens
Posté le 27-06-2005 à 11:23:40  profilanswer
 

Pour windows, la fonction qui permet de cree des processus est  CreateProcess(..) . Je te laisse regarder la doc, elle est un peu longue. :bounce:  
Arretez svp avec le combat linux/windows. Si le gars veux faire son application sous windows, c'est son choix, allez pas lui dire de changer d'os ou de faire ça sous linux...  :ouch:

n°1132229
Elmoricq
Modérateur
Posté le 27-06-2005 à 13:30:26  profilanswer
 

Twinsens a écrit :


Arretez svp avec le combat linux/windows. Si le gars veux faire son application sous windows, c'est son choix, allez pas lui dire de changer d'os ou de faire ça sous linux...  :ouch:


 
Absolument rien à voir. Le gars voulait utiliser la fonction fork(), qui est une fonction POSIX, d'où les réponses.

n°1318447
faguoren
Posté le 04-03-2006 à 16:05:35  profilanswer
 

Elmoricq a écrit :

Absolument rien à voir. Le gars voulait utiliser la fonction fork(), qui est une fonction POSIX, d'où les réponses.


Non le gars voulait créer un process sous Windows et demandait si on peut le faire avec fork().
La réponse est non, il faut utiliser createProcess.

n°1318449
faguoren
Posté le 04-03-2006 à 16:10:13  profilanswer
 

Taz a écrit :

tu veux pas plutôt installe une distrib GNU/Linux ?


Dis moi Taz, quand tu te trompes en achetant une cheville qui n’est pas adaptée à ton mur, tu changes de cheville ou tu rachètes un nouvel appartement ?

n°1318636
Taz
bisounours-codeur
Posté le 04-03-2006 à 22:04:22  profilanswer
 

exactement, je change de cheville !
 
c'est pas la peine de faire du POSIX sur du pas POSIX.
CQFD

n°1318767
oliv5
Pourquoi ? Parce que !
Posté le 04-03-2006 à 23:54:57  profilanswer
 

Je me permet de rajouter une petite chose :
 
Sous Unix, pour effectuer 2 taches simultanéments, on a tendence à creer 2 process via la fonction fork().
Sous windows, l'approche est différente : on va créer 2 threads dans 1 seul processus.
La différence entre les 2 est qu'il y a une cloison forte qui sépare 2 processus distincts (pas de partage de mémoire systématique, par ex) alors que 2 threads d'un meme processus partagent leur espace data (tas).
A noter qu'Unix permet de créer des threads.
 
Tout ca pour dire que je pense qu'il te faut plutot créer 2 threads (on va dire, en créer un de plus, car tu en as forcément 1 qui est créé par le main() de ton programme), plutôt que regarder du côté des processus.
La fonction est CreateThread(). Regardes dans la MSDN sur le site de Microsoft. Il y a des exemples simples pour bien comprendre.

n°1318805
Taz
bisounours-codeur
Posté le 05-03-2006 à 01:14:54  profilanswer
 

...

n°1337237
krilin92i
rira qui rira le premier :D
Posté le 02-04-2006 à 09:08:39  profilanswer
 
n°1337348
nargy
Posté le 02-04-2006 à 15:59:51  profilanswer
 

> Sous Unix, pour effectuer 2 taches simultanéments, on a tendence à creer 2 process via la fonction fork().
- ...dans les années 80 du siècle dernier, où il n y avait pas de thread...
 
> Sous windows, l'approche est différente : on va créer 2 threads dans 1 seul processus.
- ...sauf quand on a besoin de cloisonner les données...
 
Bonjour les bugs et les failles, avec de telles idées reçues.

n°1337351
Taz
bisounours-codeur
Posté le 02-04-2006 à 16:02:25  profilanswer
 

nargy a écrit :

> Sous Unix, pour effectuer 2 taches simultanéments, on a tendence à creer 2 process via la fonction fork().
- ...dans les années 80 du siècle dernier, où il n y avait pas de thread...


mauvaise réponse. le choix thread/processus se pose toujours aujourd'hui selon ce qu'on veut faire.

n°1337355
nargy
Posté le 02-04-2006 à 16:12:03  profilanswer
 

> mauvaise réponse....
 
c est bien ce que je dis:
> - ...sauf quand on a besoin de cloisonner les données...  
 
et j insiste:
> Bonjour les bugs et les failles, avec de telles idées reçues.
idée reçue en question: process = thread

n°1592334
CeD69
Posté le 27-07-2007 à 12:26:18  profilanswer
 

1 an et demi plus tard...
Intéressant en tout cas ce topic, pour des gens qui comme moi sont plus habitués au pinguin qu'à Windob.

Message cité 1 fois
Message édité par CeD69 le 27-07-2007 à 12:26:41
n°1592383
Sve@r
Posté le 27-07-2007 à 14:01:17  profilanswer
 

CeD69 a écrit :

1 an et demi plus tard...
Intéressant en tout cas ce topic, pour des gens qui comme moi sont plus habitués au pinguin qu'à Windob.


C'est bon aussi de relire de vieux truc...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°2266142
pphilou59
Posté le 19-09-2015 à 21:47:36  profilanswer
 

Taz a écrit :

exactement, je change de cheville !
 
c'est pas la peine de faire du POSIX sur du pas POSIX.
CQFD


Sauf que les Windows basé sur un noyau NT sont POSIX

n°2266143
kadreg
profil: Utilisateur
Posté le 19-09-2015 à 22:15:37  profilanswer
 

pphilou59 a écrit :


Sauf que les Windows basé sur un noyau NT sont POSIX


 
C'est gentil de fêter la journée du patrimoine, Pelle d'or du jour !


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le   profilanswer
 


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

  fork et unistd.h sous windows

 

Sujets relatifs
Lancer mon application C# au démarrage de WindowsPortage de Linux vers windows
[C] - utilisation de chroot() (unistd.h)[batch] commande choice sous Windows NT
Cherche logiciel MACAO Windows ou LinuxConnection à SQL Server mode "Authentification Windows" depuis XP Home
[VB.NET] Commande de mise à jour de l'heure de windowsprobleme d'install de php5 sous windows
recuperation nom d'utilisateur a partir d'une session windowsClasspath sous windows
Plus de sujets relatifs à : fork et unistd.h sous windows


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