>백엔드 개발 >C++ >Unix unistd.h 헤더 파일에 해당하는 Windows 파일은 무엇입니까?

Unix unistd.h 헤더 파일에 해당하는 Windows 파일은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-11 17:29:11630검색

What's a Windows equivalent for the Unix unistd.h header file?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.