Maison >développement back-end >C++ >Quel est l'équivalent Windows du fichier d'en-tête Unix unistd.h ?
Existe-t-il un remplacement pour unistd.h pour Windows (Visual C) ?
Lors du portage d'un programme de console Unix vers Windows, les développeurs ont souvent rencontrer des prototypes manquants pour « srandom », « random » et « getopt » en raison de l'absence de "unistd.h".
Malgré la nécessité d'un remplacement immédiat, des recherches approfondies sur Internet n'ont donné aucun résultat. Pour combler cette lacune, voici un point de départ pour un portage "unistd.h" pour Windows, couvrant les fonctions couramment utilisées.
#ifndef _UNISTD_H #define _UNISTD_H 1 #include <stdlib.h> #include <io.h> #include <getopt.h> #include <process.h> #include <direct.h> #define srandom srand #define random rand #define R_OK 4 #define W_OK 2 #define F_OK 0 #define access _access #define dup2 _dup2 #define execve _execve #define ftruncate _chsize #define unlink _unlink #define fileno _fileno #define getcwd _getcwd #define chdir _chdir #define isatty _isatty #define lseek _lseek #define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 typedef __int8 int8_t; typedef __int16 int16_t; typedef __int32 int32_t; typedef __int64 int64_t; typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; #endif /* unistd.h */
Ce code fournit des prototypes pour les fonctions manquantes et intègre des fonctions de gestion de fichiers spécifiques à Windows. tout en préservant les descripteurs de fichiers Unix d'origine (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO).
D'autres améliorations peuvent être ajoutées à le port selon les besoins, ce qui en fait un remplacement complet de "unistd.h" dans les environnements Windows.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!