Windows C ++ LockFIle ()을 사용하여 파일을 잠근 다음 스트림을 가져 오시겠습니까?

사우 라브 다가

을 사용하여 파일을 잠 LockFileEx갔지만 해당 파일 에서 스트림을 열 수 없습니다.

HANDLE indexHandle = CreateFile (indexFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, 
        OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);

bool indexLock = false;
OVERLAPPED overlapped;
memset (&overlapped, 0, sizeof (overlapped));
while (noOfTries >0 && !indexLock)
{
   if (!LockFileEx (indexHandle, LOCKFILE_EXCLUSIVE_LOCK, 0, 0, UINT_MAX, &overlapped))
   {
      InfoLog << "Failed to get lock on index file  -- Error code is ["
            << GetLastError () <<"]"<<std::endl;
      Sleep(sleepTime);
      noOfTries--;

   }
   else
   {
      indexLock=true;    
   }
}

잠금을 획득 한 후 다음을 수행합니다.

string indexFile = mPath + Util::PATH_SEPARATOR + mIndexFileName;
os.open( indexFile.c_str(), ios_base::app);
if (!os)
{
  InfoLog << "BinaryFileSystemObjectStore:: ofstream: Failed to open index for write: " << indexFile.c_str() << endl;
}

스트림을 사용하여 한 줄씩 읽는 것이 더 쉽기 때문에 이렇게합니다.

해결책이 있습니까?

해리 존스턴

LockFileEx에 대한 문서에서 :

잠금 프로세스가 파일을 두 번 열면 영역을 잠금 해제 할 때까지이 두 번째 핸들을 통해 지정된 영역에 액세스 할 수 없습니다.

따라서 새 핸들을 만드는 대신 이미 가지고있는 핸들을 사용해야합니다.

_open_osfhandle 기능을 사용하면 기존의 핸들에서 파일 기술자를 만들 수 있습니다, 당신은 다음이 파일 기술자 통과 할 수 ofstream 생성자 대신에 파일 이름을.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Windows C ++에서 파일을 잠근 프로세스 조사

분류에서Dev

C #을 사용하여 Windows에서 파일 열기 이벤트에 대한 파일 내용 가져 오기

분류에서Dev

텍스트 가져 오기 마법사 매크로를 사용하여 여러 TXT 파일을 하나의 Excel CSV 시트로 가져 오시겠습니까?

분류에서Dev

변수에 사용할 Windows 명령 줄에서 파일 버전을 가져 오시겠습니까?

분류에서Dev

파일이나 스트림에서 샘플을 가져 오시겠습니까?

분류에서Dev

Sitecore 파일 항목에서 스트림을 가져 오시겠습니까? (씨#)

분류에서Dev

명령 줄 도구를 사용하여 GitHub에서 소스 파일을 가져 오시겠습니까?

분류에서Dev

gulp / nodejs를 사용하여 LESS / CSS 파일에서 16 진수 색상을 가져 오시겠습니까?

분류에서Dev

변환을 사용하여 PDF 파일에서 특정 페이지를 가져 오시겠습니까?

분류에서Dev

Range를 사용하여 Excel 파일에서 행을 가져 오는 방법을 모르겠습니다.

분류에서Dev

Range를 사용하여 Excel 파일에서 행을 가져 오는 방법을 모르겠습니다.

분류에서Dev

ES6 Node.js 가져 오기 후 파일을 다시 작성 하시겠습니까?

분류에서Dev

C #을 사용하여 .proj 파일의 GUID 가져 오기

분류에서Dev

C #을 사용하여 XML 파일에서 값 가져 오기

분류에서Dev

다른 하위 디렉토리에 다른 Python 파일을 가져 오시겠습니까?

분류에서Dev

일치 후 파이썬을 사용하여 파일의 다음 줄을 가져옵니다.

분류에서Dev

C #을 사용하여 Windows Phone 8.1 속성 가져 오기

분류에서Dev

C ++에서 <filesystem>을 사용하여 파일을 표시하는 동안 오류가 발생했습니다.

분류에서Dev

C ++-ofstream을 사용하여 다른 디렉토리에 파일을 만드시겠습니까?

분류에서Dev

Windows 작업 스케줄러를 사용하여 Google 파일 스트림과 네트워크 드라이브간에 Robo-Copying 파일을 "액세스 거부"가져옵니다.

분류에서Dev

C #의 목록을 사용하여 파일을 편집 하시겠습니까?

분류에서Dev

오디오 파일에서 바이트 스트림을 가져 오시겠습니까?

분류에서Dev

사용자 이름을 가져오고 표시하는 C ++ Microsoft 예제가 컴파일되지 않습니다.

분류에서Dev

다른 모듈에서 XML Bean 파일을 가져 오시겠습니까?

분류에서Dev

VBA를 사용하여 Excel에서 여러 텍스트 파일을 하나의 셀과 새 행으로 가져 오시겠습니까?

분류에서Dev

SVN을 사용하여 "업스트림 가져 오기"방법

분류에서Dev

여러 lua 파일을 한 번에 가져 오시겠습니까?

분류에서Dev

C #을 사용하여 음악을 재생 하시겠습니까?

분류에서Dev

CSV 파일을 사용하여 텍스트 MYSQL 가져 오기

Related 관련 기사

  1. 1

    Windows C ++에서 파일을 잠근 프로세스 조사

  2. 2

    C #을 사용하여 Windows에서 파일 열기 이벤트에 대한 파일 내용 가져 오기

  3. 3

    텍스트 가져 오기 마법사 매크로를 사용하여 여러 TXT 파일을 하나의 Excel CSV 시트로 가져 오시겠습니까?

  4. 4

    변수에 사용할 Windows 명령 줄에서 파일 버전을 가져 오시겠습니까?

  5. 5

    파일이나 스트림에서 샘플을 가져 오시겠습니까?

  6. 6

    Sitecore 파일 항목에서 스트림을 가져 오시겠습니까? (씨#)

  7. 7

    명령 줄 도구를 사용하여 GitHub에서 소스 파일을 가져 오시겠습니까?

  8. 8

    gulp / nodejs를 사용하여 LESS / CSS 파일에서 16 진수 색상을 가져 오시겠습니까?

  9. 9

    변환을 사용하여 PDF 파일에서 특정 페이지를 가져 오시겠습니까?

  10. 10

    Range를 사용하여 Excel 파일에서 행을 가져 오는 방법을 모르겠습니다.

  11. 11

    Range를 사용하여 Excel 파일에서 행을 가져 오는 방법을 모르겠습니다.

  12. 12

    ES6 Node.js 가져 오기 후 파일을 다시 작성 하시겠습니까?

  13. 13

    C #을 사용하여 .proj 파일의 GUID 가져 오기

  14. 14

    C #을 사용하여 XML 파일에서 값 가져 오기

  15. 15

    다른 하위 디렉토리에 다른 Python 파일을 가져 오시겠습니까?

  16. 16

    일치 후 파이썬을 사용하여 파일의 다음 줄을 가져옵니다.

  17. 17

    C #을 사용하여 Windows Phone 8.1 속성 가져 오기

  18. 18

    C ++에서 <filesystem>을 사용하여 파일을 표시하는 동안 오류가 발생했습니다.

  19. 19

    C ++-ofstream을 사용하여 다른 디렉토리에 파일을 만드시겠습니까?

  20. 20

    Windows 작업 스케줄러를 사용하여 Google 파일 스트림과 네트워크 드라이브간에 Robo-Copying 파일을 "액세스 거부"가져옵니다.

  21. 21

    C #의 목록을 사용하여 파일을 편집 하시겠습니까?

  22. 22

    오디오 파일에서 바이트 스트림을 가져 오시겠습니까?

  23. 23

    사용자 이름을 가져오고 표시하는 C ++ Microsoft 예제가 컴파일되지 않습니다.

  24. 24

    다른 모듈에서 XML Bean 파일을 가져 오시겠습니까?

  25. 25

    VBA를 사용하여 Excel에서 여러 텍스트 파일을 하나의 셀과 새 행으로 가져 오시겠습니까?

  26. 26

    SVN을 사용하여 "업스트림 가져 오기"방법

  27. 27

    여러 lua 파일을 한 번에 가져 오시겠습니까?

  28. 28

    C #을 사용하여 음악을 재생 하시겠습니까?

  29. 29

    CSV 파일을 사용하여 텍스트 MYSQL 가져 오기

뜨겁다태그

보관