2014년 10월 21일 화요일

Vim 파일 저장 오류 __ 6

open() 함수가 실패했을 때, 어떤 에러가 발생하는지도 확인해 봐야 할 듯해서...

open()의 help
함수 실패시의 리턴값은 -1이고 조금 더 자세한 에러 원인을 알기 위해서는 errno 변수를 확인해 봐야 한다.
errno 값에 대해서 조금 더 확인해 보면,
errno의 help

help화면엔 별것이 없고, ERRNO.H를 열어 보자.
ERRNO.H

그럼, 이제 소스를 고쳐서 errno를 확인해 보기로 하자.

FILEIO.C 메시지에 errno 추가

make

디버그메시지, errno = 19

errno = 19는 EINVAL

결론은 Invalid Argument...휴..

Fileio.c의 mch_open()의 인자들을 모두 확인해 보았고, 두번째 인자들의 flag들도 바꾸어 보았으나 문제가 해결되지 않았다.
비록 에러코드는 Invalid Argument 이지만, 더 low-level에서의 인자를 뜻하는 것이 아닐런지...

인자들만 바꾸어서 문제가 해결된다면, 앞서의 mode와 마찬가지로 UNIX/Windows 차이가 발생할리 없었을 것이다.

지금까지의 시험결과로는 DOSBox 내부에서 문제를 해결하는 것이 불가능해 보인다.
DOSBox와 UNIX 사이의 interface, 특히 파일시스템과 관련된 interface의 문제로 보인다.

문제는 이런 경우의 디버깅이 매우 어렵다는 점....

댓글 없음: