특정 시간 범위 (추가 모드), fprintf, fclose 기능을 사용하여 두 프로세스가 동일한 파일에 여러 번 쓰도록해도 괜찮습니까? 그들은 데이터를 기다리고 열기, 쓰기, 닫기 작업을 반복합니다.두 프로세스 열기
데이터가 기록되지 않을 가능성이 있습니까?
특정 시간 범위 (추가 모드), fprintf, fclose 기능을 사용하여 두 프로세스가 동일한 파일에 여러 번 쓰도록해도 괜찮습니까? 그들은 데이터를 기다리고 열기, 쓰기, 닫기 작업을 반복합니다.두 프로세스 열기
데이터가 기록되지 않을 가능성이 있습니까?
두 프로세스가 동일한 파일에 액세스하는 경우 Mutex을 사용하여 두 프로세스가 동시에 파일에 기록하지 못하게해야합니다.
위 링크는 Windows 플랫폼 용입니다. 다른 플랫폼의 경우에는 PTHREAD_PROCESS_SHARED
으로 만든 pthreads 뮤텍스와 같이 플랫폼의 적절한 구조가 필요합니다.
fopen()
함수는 적어도 Win32/VC++에서 공유 보호 (SH_DENYNO
)가없는 파일을 엽니 다. 따라서 어떤 종류의 잠금 프로토콜이 없으면 파일이 손상 될 수 있습니다.
앱이 Win32 인 경우 CreateFile
API를 사용하여 공유 모드를 지정할 수 있습니다. _fsopen()
기능은 다소 휴대 성이 뛰어나지 만 휴대 성이 좋지 않습니다 (fopen()
).
덕분에이 작업을 수행 할 수있는 기능이 있습니다. – Moony