VC++ 의 소스를 가지고 델파이로 변경하고 있는데요, 다음과 같은 문장이 있는데 무엇을 하는 것인지 잘 몰라서 질문을 했습니다.
result = _setmode( _fileno( stdin ), _O_BINARY );
똑같은 기능을 하는 것으로는 델파이에 무엇이 있나요?
아니면 아래 소스를 델파이로 변경해 주시면 더욱 더 감사하구요
VC++ 소스
============================================================================
#include "stdafx.h"
#include "windows.h"
#include "time.h"
#include <fcntl.h>
#include <io.h>
int main(int argc, char* argv[])
{
BYTE buf[1024];
int len;
char sFileName[256];
char sRunName[256];
char sTempPath[126];
char sDocName[255];
time_t ltime;
HANDLE FileMapObj;
char FileValue[256];
char *FilePoint;
BOOL isXClientTrue;
// 변수들을 초기화 한다.
isXClientTrue = false;
// ActiveX 클라이언트를 지원하기 위해..
// 메모리 파일이 존재하는지 검사한다..
FileMapObj = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,sizeof(FileValue),"GiOn WebPrint Job File");
if (FileMapObj != NULL){
// 클라이언트의 상태를 검사한다..
FilePoint = (char *)MapViewOfFile(FileMapObj, FILE_MAP_WRITE, 0, 0, 0);
ZeroMemory(FileValue,sizeof(FileValue));
CopyMemory(FileValue,FilePoint,sizeof(FileValue));
UnmapViewOfFile(FilePoint);
// 상태 :: START : 시작, WAIT : 출력대기, EXIT 종료됨.
if (strcmp(FileValue,"WAIT") == 0)
isXClientTrue = true;
}
// 문서 이름을 받자..
if (argc > 0) {
lstrcpy(sDocName,argv[1]);
}
FILE *pFile;
// 파일 이름을 설정한다.
time( <ime );
// 임시 디렉토리를 구한다.
GetTempPath(sizeof(sTempPath),sTempPath);
sprintf(sFileName,"%sPS%ld.jop",sTempPath,ltime);
pFile = fopen(sFileName, "wt");
setmode(fileno(stdin), O_BINARY);
while ( (len = fread(buf, 1, sizeof(buf), stdin)) != 0) {
fwrite(buf, 1, len, pFile);
}
// 작업이 완료되었으니 파일 포인터를 닫아준다..
fclose(pFile);
return 0;
}
|