Unix Unistd.h の Windows 代替品の検索
Visual C を使用して Windows 環境用のコンソール プログラムを開発するには、次の使用が必要になる場合があります。 「unistd.h」ヘッダーで定義されている関数。これは Windows にネイティブではありません。この不在に遭遇した人は、通常、代替品を求めます。
カスタム "unistd.h" の作成
1 つの方法は、以下を含むカスタム "unistd.h" を作成することです。必要な機能。ただし、この問題を軽減するためのより広範な解決策が存在する可能性があります。
Unistd.h の Windows への移植
このニーズに応えて、コミュニティ主導のイニシアチブが提案されています。 「unistd.h」を Windows に移植します。以下は提案された出発点であり、貢献が奨励されています:
#ifndef _UNISTD_H #define _UNISTD_H 1 /* This is intended as a drop-in replacement for unistd.h on Windows. * Please add functionality as needed. */ #include <stdlib.h> #include <io.h> #include <getopt.h> /* Found at https://gist.github.com/ashelly/7776712 */ #include <process.h> /* for getpid() and the exec..() family */ #include <direct.h> /* for _getcwd() and _chdir() */ #define srandom srand #define random rand /* Values for the second argument to access. These may be OR'd together. */ #define R_OK 4 /* Test for read permission. */ #define W_OK 2 /* Test for write permission. */ //#define X_OK 1 /* execute permission - unsupported in windows*/ #define F_OK 0 /* Test for existence. */ #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 #ifdef _WIN64 #define ssize_t __int64 #else #define ssize_t long #endif #define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 /* should be in some equivalent to <sys/types.h> */ 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 用に "unistd.h" を移植するための出発点を提供し、開発労力を節約し、よりシームレスな移植エクスペリエンスを保証します。 Unix から Windows へ。
以上がWindows 環境で Unix の unistd.h を置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。