저는 Windows에서 개발 된 응용 프로그램을 가지고 있지만 gcc 용으로 만들었습니다. 이 코드는 대부분 OS 독립적이며, Linux 포트가 항상 필요한 것으로 간주되기 때문에 Windows와 관련된 클래스는 거의 없습니다.리눅스로 이식 할 때 wopen이 호출됩니다.
특히 사용자 상호 작용의 직접적인 결과로 호출되는 API는 char 배열 대신 와이드 char 배열을 사용합니다 (보조 노트로 API 자체를 변경할 수 없음 -이 시점에서 std :: wstring 쓸 수 없다). 이들은 UTF-16으로 인코딩 된 것으로 간주됩니다.
코드에 따라 대부분 Windows 관련 _wopen
함수 호출을 사용하여 파일이 열립니다. 이 문제는 리눅스가 "바이트 만 처리하기"때문에 wopen
과 같은 Linux 대체품이 없다는 것입니다.
질문 :이 코드를 어떻게 포팅합니까? "something ™ .log"라는 이름의 파일을 열려면 Linux에서 어떻게해야합니까? char * 에의 캐스트가 충분한 경우, 로케일에 근거 해 넓은 문자가 자동적으로 선택됩니다 (아마 아닐까)? 수동으로 변환해야합니까? 나는 이것에 관해 약간 혼란 스럽다. 아마도 누군가 그 문제에 관한 어떤 문서를 가르쳐 줄 수있을 것이다.