이 동기 호출이 예상대로 작동합니까?

이 동기 호출이 예상대로 작동합니까?

USB 플래시 드라이브에 파일(이라고 부르겠습니다)을 쓰고 있습니다 xyz.bin... 플래시 드라이브는 /media/myUsb... 경로 아래에 마운트되어 있습니다.

데이터 손실을 방지하기 위해 다음과 같은 동기화 명령을 실행하고 있습니다.

sync -f /media/myUsb

그런 다음 추가 명령을 사용하여 다음과 같이 플래시 드라이브를 분리/제거했습니다.안전한 제거

질문:sync이 플래시 드라이브를 사용하는 팀에서는 가끔 파일이 손상된다고 합니다... 아무것도 버리기 위해 앱을 디버깅하고 있는데 명령이 올바르게 완료되고 있는지 아니면 단지 오해하고 있는 것인지 걱정됩니다 sync man page.

편집하다

도움이 된다면 실행 프로세스에 대한 추가 세부 정보를 가져오겠습니다... JAVA를 사용하여:

  1. 첨부된 펜 드라이브나 플래시 드라이브에 파일을 복사합니다.
  2. 나는 OS commnad sync를 다음과 같이 호출합니다: sync -f /media/myUsb(프로세스API
  3. 명령이 OK를 반환하면(저는 다음을 사용하여 이를 기다립니다:프로세스.기다려()); 그런 다음 실행합니다 udisksctl unmount -b <usbMountPoint>...
  4. 명령이 OK를 반환하면(다시 한번 기다립니다...) 다음을 실행합니다.udisksctl power-off -b <usbDevice>

  5. 명령이 OK를 반환하면(다시 기다립니다...) 쓰기 및 분리가 성공한 것으로 간주합니다! 그래서 운영자에게 펜 드라이브나 플래시 드라이브를 제거하라고 지시하는데...

  6. 그런 다음 다른 팀이 펜 드라이브를 받고 작성된 파일을 읽으려고 시도합니다... 때로는 모든 것이 잘 작동하지만... 다른 경우에는 파일이 손상되어 읽을 수 없다고 합니다...

이제 문제가 무엇인지 알아보기 위해 다양한 테스트를 수행하고 있습니다. 그러나 실행된 OS 명령이 올바르게 실행되었는지, 아니면 전혀 이해되지 않는 것을 호출하고 있는지 의심스럽습니다.

관련 정보