_fdopen의 첫 인자값이 1인 경우는 어떻게 처리되나요?
가리매
질문 제목 : _fdopen의 첫 인자값이 1인 경우는 어떻게 처리되나요?_fdopen의 첫 인자값이 1인 경우는 어떻게 처리되나요?질문 내용 :
안녕하세요 제가 한 프로그램 소스를 분석하는데요,
파일 생성하는 부분에서 좀 이해가 안되는게 있어서 문의드립니다.
코드를 다 적으면 너무 길어서, 해당 부분만 요약했습니다.
//*********************************************************************//
old_file : 사용자가 지정한 파일명
new_file : 확장자를 붙이기 위해(old_file.cap) 임시로 파일명을 복사할 배열
file *f_handle;
if( strcmp( old_file, - ) != 0 )
{
memset( new_file, 0, sizeof( new_file ) );
snprintf( new_file, sizeof( new_file ) - 1, %s.cap, old_file );
}
else
{
f_handle = _fdopen( 1, wb );
goto 파일 기록문
}
//*********************************************************************//
파일명이 - 가 아니면 파일명.cap를 저장하고,
파일명이 - 일 경우는 else를 수행하는데요.
저기서 _fdopen(1, wb) 여기 나온 1이 무슨 의미인지 모르겠군요.
원래 1이 있는 자리에는 파일명이 오는걸로 알고있는데요 ( fd = _fdopen(a.c, wb) - 이런식으로 )
1이 왔다는건 true 즉, 파일명 없이 기록하고 뭐고 다하라는 뜻인가요?';
프로젝트 폴더 확인해보면, 파일이 새로 생성된 것은 없습니다.
아래는 msdn에서 가져온 함수 원형입니다.
file *_fdopen( int fd, const char *mode );file *_wfdopen( int fd, const wchar_t *mode );
parameters
fd : file descriptor of the open file.
mode : type of file access.