windows 환경에서 _write 함수로 console에 출력하기
글쓴이: dragona79 / 작성시간: 목, 2011/01/27 - 2:02오후
_write 함수를 이용해서 console에 출력을 하려고 했더니 자꾸 실패하네요
지식이 짧아 원인을 못찾겠습니다. 도와주세요 ㅠㅠ
프로젝트 환경은 console 프로젝트가 아니라 mfc dialog입니다.
//console을 열고 stdout을 연결합니다.
AllocConsole();
FILE *stream=NULL;
freopen_s(&stream, "CONOUT$", "w", stdout);
int nRes=_write(1, "aaa", 3);
뭐 길지 않은데 찍히질 않네요.
리턴값은
nRes는 -1
errno 는 9, EBADF, Bad file number
GetLastError, ERROR_INVALID_HANDLE
요렇게 나오네요.
msdn에 보면 _write에 첫번째 인자에 1이 stdout, 2가 stderr 이렇게 되있는데 왜 안되는걸까요?
Forums:
_write함수는 이렇게 사용하네요.
http://blog.naver.com/ph614/60017131553
int fileHandle = 0;
unsigned bytesWritten = 0;
char buffer[] = "This is a test of '_write' function\n";
_sopen_s(&fileHandle, "write.o", _O_RDWR | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE); //파일로 쓰기
_sopen_s(&fileHandle, "CONOUT$", _O_WRONLY, _SH_DENYNO, _S_IWRITE); //버퍼에 쓰기
_write( fileHandle, buffer, sizeof( buffer ));
_close( fileHandle );
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기