2010-05-26 6 views
1

J'ai un code écrit en C qui fonctionne sous Linux. Je veux que ce programme fonctionne dans Windows, y a-t-il des différences que je dois faire dans le code?Code C sous Linux vers le code C sous Windows

Il est un code de communication client/serveur en utilisant les sockets prises d'ici: http://www.linuxhowtos.org/C_C++/socket.htm

+6

Il y aura des différences. Vous devriez essayer de porter votre code et poser des questions ici sur des problèmes spécifiques. –

Répondre

1

Vous devrez porter le code Linux vers Windows. Il existe des différences entre les sockets Linux et Windows. Vous pouvez consulter la page this pour plus d'informations.

En outre, this vous aidera avec une partie de la portabilité.

2

Vous pouvez compiler votre code sous Cygwin ou MINGW, qui fournissent tous les deux un certain degré de mappage d'appel de système Linux vers un système Windows, et vous pouvez éviter d'avoir à réécrire quoi que ce soit.

+0

True! Cependant, parfois le code doit être préparé pour compiler sur Cygwin, et certaines instructions de programmation de socket ne sont pas supportées. – Secko

1

Vous cherchez brièvement à cet article que vous faites référence à révèle quelques choses qui auront probablement besoin de changer (en supposant que vous allez utiliser quelque chose comme Visual Studio pour le construire):

  • Remplacer read avec recv
  • Remplacer write avec send
  • Remplacer bzero avec memset
  • Ajouter les appels à WSAStartup et WSAShutdown
0

Lots! Mark a dit que c'était mieux. recv et envoyer toujours travailler cependant à un descripteur de fichier. La pire partie est le manque de fonctionnalités GNU comme la structure timeval sans passer par des fenêtres horribles.

Questions connexes