Windows (Visual C) 是否有 unistd.h 的替代品?
在將Unix 控制台程式移植到Windows 時,開發人員經常會遇到以下問題:由於缺少“srandom”、“random”和“getopt”而遇到缺少原型的情況“ unistd.h」。
儘管需要直接替換,但在互聯網上進行了大量搜索卻沒有結果。為了解決這個問題,這裡是 Windows 的「unistd.h」連接埠的起點,涵蓋了常用的函數。
#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 */
此程式碼提供了缺失函數的原型,並合併了 Windows 特定的檔案處理函數同時保留原始 Unix 檔案句柄(STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO)。
可以添加進一步的增強功能根據需要進行端口,使其成為 Windows 環境中「unistd.h」的全面替代品。
以上是Unix unistd.h 頭檔在 Windows 中的等效項是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!