Unix Unistd.h의 Windows 대체 프로그램 찾기
Visual C를 사용하여 Windows 환경용 콘솔 프로그램을 개발하려면 다음을 사용해야 할 수 있습니다. Windows에 기본이 아닌 "unistd.h" 헤더에 정의된 함수입니다. 이러한 부재를 경험하는 사람들은 일반적으로 대체품을 찾습니다.
사용자 정의 "unistd.h" 만들기
한 가지 접근 방식은 다음을 포함하는 사용자 정의 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!