Undefined reference to fork() dans le Code::Blocs de l'éditeur de Windows OS
Quand je suis en cours d'exécution de code ci-dessous dans Code::Blocks sous Windows OS.
J'ai utilisé pour obtenir une erreur que l'on appelle undefined reference to fork().
Je n'ai mis/choisir le compilateur GCC que mon compilateur par défaut.
#include<stdio.h>
#include<unistd.h>
void main()
{
int x;
x = 0;
fork();
x = 1;
...
....
}
S'il vous plaît aidez-moi et dites-moi, puis-je droit unix/linux des programmes dans Code::Blocks dans l'environnement de windows?
Et j'écris un autre programme,
main()
{
int x = 0;
if(x == 0)
{
printf("X = %d", x);
sleep(1000);//used delay also
x = 1;
printf("Now X = %d", x);;
}
Ici, il donne eroor que undefined reference to sleep() et /* délai* /.
S'il vous plaît aider moi.
- Windows n'est pas "cassé par la conception"; il n'a tout simplement pas attention à la manière de *nix fait les choses. Il avait ses propres problèmes à résoudre et à les résoudre à sa façon, qui-bien que pas à la façon d'un *nix wonk pourrait avez aimé -- fonctionne assez bien pour avoir alimenté la grande majorité du monde de l'informatique depuis des décennies. Assez bien, en fait, qu'un tas de trucs c'est fait sortir de la boîte pour les+ de 15 ans a été réinventé ou vissés pour Linux et *BSD. (Voyons voir... de Registre? Réel Acl? Natif? La compatibilité binaire? Oh, attendez, *nix n'ai toujours pas que l'on...)
Vous devez vous connecter pour publier un commentaire.
Non, vous ne pouvez pas écrire de code d'Unix sur Windows, par exemple, de n'importe quel IDE que vous utilisez. Cependant, vous devriez essayer cygwin, et qui devrait fournir à la couche de compatibilité dont vous avez besoin.
2017 mise à jour: Ces jours-ci nous avons également Sous-système Windows pour Linux.
cygwin
FAQ que les réponses à certaines questions courantes.clone ()
? Ou "epoll" API? BTW, j'ai vu un projet, quelque part, certains depuis longtemps, qui a été en mesure d'exécuter le noyau Linux dans le cadre de noyau de Windows. C'était cool et presque toute la saveur. Vous ne savez pas où il se trouve maintenant.clone()
, et pas deepoll
. Mais vous n'avez pas toujours besoin de ceux-ci. Et le noyau Linux à l'intérieur du noyau Windows est les commandes colinux, je crois. Dan Aloni est en effet l'un des plus 1337 h4x0r. Aussi découvrez UMLWin32 pour un autre de ses projets fous.Il n'y a pas de
fork
appel système sur Windows.fork ()
. La fonction est appeléeNtCreateProcess
ouZwCreateProcess
. Cependant, c'est une API native et non pas de l'API Win32. Vous pouvez vous référer à la section "Windows Nt/2000 Natif de Référence de l'Api pour plus de détails, il a même un exemple d'utilisation. Aussi, il y a un Win32CreateProcess
qui peut être utile, mais pas dans votre cas. Voir également - stackoverflow.com/questions/985281/...fork()
est un système unix, alors il va certainement produire une référence non définie lorsque vous faites cela dans l'OS de windows. Windows ne prend pas en chargefork()
.Vous essayez d'utiliser cygwin Aussi je ne suis pas sûr, mais il y a cet équivalent appelé système d'appel spawn() dans l'environnement ms-dos. vous pouvez essayer d'utiliser ça.
Il n'y a pas d'appel système fork() dans windows, au lieu de cela, vous pouvez essayer de cygwin ou pthreads.
pthreads
?