2013-01-01 4 views
0

두 파일 포인터 (FILE *)가 나란히 작동해야합니다. 하나는 추가 작업을 적용하고 다른 하나는 읽기 및 덮어 쓰기 작업입니다.C : 두 파일 포인터를 같은 파일에 동기화

다른 파일 포인터가이 추가 된 데이터를 올바르게 읽고 겹쳐 쓸 수 있도록 한 파일 포인터에 다른 파일 포인터가 인식되도록 파일에 추가해야합니다.

데이터를 동기화하려면 첨부 파일 포인터에 fflush()을 사용하는 것으로 나타납니다 (적어도 읽는 경우는 해당). 그러나 이것이 내가 원하는 것을 이루기위한 올바른 방법이며 이식성이 있습니까?

감사합니다.

답변

3

하나의 포인터로 그렇게 할 수 있어야합니다 (따라서 불필요하게 동기화 할 필요가 없습니다). 마지막에 추가 할 때는 을 사용하십시오. 파일을 읽고 쓸 수있게하려면 "rb +"를 사용하십시오.

파일에 액세스 할 때 다중 스레드를 사용하지 않는 한 정상적으로 작동합니다.

+0

과거에는 어떤 이유에서든 이것이 항상 실패했지만 다시 시도 할 것입니다 ... –

+0

좋아요 ... 지금 시도하면 시도합니다. 웬일인지 나는 rb +를 추가하기 전에 어려움을 겪었지만, 좋지는 않다. 나는 끔찍한 잘못을 저질렀 음에 틀림 없다. 감사. –

+0

파일의 끝 부분을 찾지 않는 한 작동해야합니다 [일부 시스템에서는 작동하기는하지만]. –