로컬 네트워크에 대한 간단한 피어 투 피어 인스턴트 메신저를 쓰고 있습니다. 그것은 ini 파일을 사용하여 UUID를 구문 분석하여 네트워크에서 식별자로 사용합니다. ini 파일은 QSettings 객체를 통해 액세스됩니다. 필자는 프로그램의 여러 인스턴스를 동일한 컴퓨터에서 실행할 수있는 기능을 작성했습니다. 첫 번째 프로그램이 실행될 때 첫 번째 항목에 대한 ini 파일을 읽은 다음 읽으면 "INUSE"로 바꿉니다. 닫을 때 키 값을 원래 UUID로 바꿉니다. 프로그램의 다른 인스턴스가 ini 파일을 읽고 INUSE를 첫 x 째 키 값으로 읽으면, 다른 프로그램 인스턴스를 작성한 후 가져 와서 두 x 째 키 값에 INUSE 태그를 넣습니다.충돌시 업데이트가 필요한 Qt5 ini 파일
이것은 잘 작동하지만 프로그램이 충돌하면 "INUSE"인 UUID가 손실되고 INUSE는 수동으로 꺼내기 전까지 남아 있습니다. 같은 것을 이루는 시스템으로 어떻게 충돌 할 수 있습니까?
필자는 QLockFile을 살펴 보았지만 이러한 시스템을 구현하는 방법을 정확하게 설명하지는 못했습니다.
모든 의견을 환영합니다. 다음
ini를 현재 파일 포맷은 다음
[uuid]
1={uuid1}
2={uuid2}
프로그램 1
[uuid]
1=INUSE
2={uuid2}
및
[uuid]
1={uuid1}
2={uuid2}
본질적으로 어떤 프로그램의 정상 종료 후
을 실행 중에 프로그램 실행 사이에 데이터를 보존하는 방법이 필요하지만 상기 데이터는 현재 사용되고있다.
감사합니다. 내가 현재 알고있는 어떤 시점에서도 프로그램이 충돌하지 않지만 유닉스 또는 Windows에서 SIGKILL 메시지가 전송되면 원래 게시물의 상황이 나타납니다 – cbpeckles
@cbpeckles 그런 다음 질문이 생깁니다 나쁜 단어 IMO. 나는 당신이 그것을 고치지 않으면 당신이 원하는 답을 얻지 못할 것이라고 생각하지 않습니다. –