Je porte un programme de console relativement simple écrit pour Unix sur la plate-forme Windows ( Visual C ++ 8.0 ). Tous les fichiers source incluent "unistd.h", qui n'existe pas. En le supprimant, je reçois des plaintes concernant des prototypes manquants pour «srandom», «random» et «getopt». Je sais que je peux remplacer les fonctions aléatoires, et je suis à peu près sûr de pouvoir trouver / pirater une implémentation getopt.
Mais je suis sûr que d'autres ont rencontré le même défi. Ma question est: existe-t-il un portage de "unistd.h" vers Windows? Au moins un contenant ces fonctions qui ont une implémentation Windows native - je n'ai pas besoin de tuyaux ou de forking.
MODIFIER :
Je sais que je peux créer mon propre "unistd.h" qui contient des remplacements pour les choses dont j'ai besoin - surtout dans ce cas, car il s'agit d'un ensemble limité. Mais comme cela semble être un problème courant, je me demandais si quelqu'un avait déjà fait le travail pour un plus grand sous-ensemble de fonctionnalités.
Passer à un autre compilateur ou environnement n'est pas possible au travail - je suis bloqué avec Visual Studio.
ssize_t
? N'est-ce pas censé êtresize_t
?ssize_t
devrait êtrelong
(c'est-à-dire 64 bits) sur certains systèmes.Essayez d'inclure le
io.h
fichier. Cela semble être l'équivalent de Visual Studio deunistd.h
.J'espère que ça aide.
la source
#define
toutF_OK
, etc., mais il a beaucoup de choses communesJe recommanderais d'utiliser mingw / msys comme environnement de développement. Surtout si vous portez des programmes de console simples. Msys implémente un shell de type Unix sur Windows, et mingw est un portage de la collection de compilateurs GNU (GCC) et d'autres outils de construction GNU sur la plate-forme Windows. C'est un projet open-source, bien adapté à la tâche. Je l'utilise actuellement pour créer des programmes utilitaires et des applications de console pour Windows XP, et il a très certainement cet en-
unistd.h
tête que vous recherchez.La procédure d'installation peut être un peu délicate, mais j'ai trouvé que le meilleur endroit pour commencer est MSYS .
la source
Je suis tombé sur ce fil en essayant de trouver une alternative Windows pour
getpid()
(défini dansunistd.h
). Il s'avère que l'inclusionprocess.h
fait l'affaire. Peut-être que cela aide les personnes qui trouveront ce fil à l'avenir.la source
Non, IIRC il n'y a pas de getopt () sous Windows.
Boost , cependant, a la bibliothèque program_options ... qui fonctionne bien. Cela semblera exagéré au début, mais ce n'est pas terrible, d'autant plus qu'il peut gérer la définition des options du programme dans les fichiers de configuration et les variables d'environnement en plus des options de ligne de commande.
la source
MinGW 4.x a unistd.h dans
\MinGW\include
,\MinGW\include\sys
et\MinGW\lib\gcc\mingw32\4.6.2\include\ssp
Voici le code de la version MinGW, par Rob Savoye; modifié par Earnie Boyd, Danny Smith, Ramiro Polla, Gregory McGarry et Keith Marshall:
Ce fichier nécessite l'inclusion de
_mingw.h
, qui est comme suit:Le reste des inclusions doit être standard pour votre environnement.
la source
Oui, il y a: https://github.com/robinrowe/libunistd
Clonez le référentiel et ajoutez-le
path\to\libunistd\unistd
à laINCLUDE
variable d'environnement.la source
L'équivalent de
unistd.h
sous Windows estwindows.h
la source
Créez votre propre en-tête unistd.h et incluez les en-têtes nécessaires pour les prototypes de fonctions.
la source