Windows (Visual C) の 'unistd.h' に代わるものはありますか?
Unix コンソール プログラムを Windows に移植する場合 ( Visual C 8.0) では、「unistd.h」ヘッダーに存在する関数のプロトタイプが欠落しているためにエラーが発生する場合があります。このヘッダーは Windows では使用できませんが、「srandom」、「random」、「getopt」などの重要な関数が含まれています。
移植に関する懸念事項
1 つの懸念事項はポートの検索です。パイピングやフォークなどの複雑な操作を除く、一般的に使用される Windows 機能をサポートする「unistd.h」。特定の置換を含むカスタムの「unistd.h」を作成することは可能ですが、包括的なポートが存在するかどうかという疑問は残ります。
部分的な置換
完全なポートは存在する可能性があります。利用できない場合、次のコードは、必要な部分に焦点を当てた部分置換の開始点を提供します。 function:
#include <stdlib.h> #include <io.h> #include <getopt.h> /* https://gist.github.com/ashelly/7776712 */ #include <process.h> /* getpid() and exec..() functions */ #include <direct.h> /* _getcwd() and _chdir() */ #define srandom srand #define random rand
この部分ポートには、「access」、「dup2」、「execve」、「ftruncate」、「unlink」、「fileno」などの一般的に使用される関数の定義が含まれています。
未解決の関数
いくつか「read」、「write」、「close」などの関数には、Windows のファイル ハンドル固有のバージョンがあります。アプリケーションを調べて、「closesocket()」などの Windows の適切な代替手段の使用を検討することが重要です。
追加の定義
一般的に使用されるデータ型の追加の定義「ssize_t」、「int8_t」、「uint64_t」などの Unix ヘッダーも
この部分的な置き換えは、最も一般的に使用される機能に焦点を当てながら、Unix プログラムを Windows に移植するための基盤を提供します。開発者は、特定の要件を満たすために必要に応じて追加の定義を追加できます。
以上がWindows で Visual C の「unistd.h」に相当するものは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。