파일의 시작 부분에서 바이트 수를 편집하거나 "X 배의 sizeof (int) 영역"에서 점프하는 쓰기 작업을 수행하는 것과 같이 바이너리 파일에 대한 연산을 수행해야합니다. 실제 코드 스 니펫에 관심이 없으며 사용할 수있는 기능이 무엇인지 알아야합니다. 이것은 fseek를위한 일입니까? 내 메모리에있는 파일의 데이터를로드하지 않는 것이 중요합니다.바이너리 파일 C에서의 연산
0
A
답변
2
예, 이것은 fseek()
의 직업입니다.
파일의 중간에 쓰기는 기존 데이터를 덮어 씁니다. 추가하려는 금액만큼 모든 후속 데이터를 이동해야합니다.
1
fseek()
을 사용할 수 있지만 mmap()
도 있습니다. 후자의 장점은 파일의 현재 포인터를 신경 쓸 필요가 없다는 것입니다. 오프셋을 사용하여 탐색 할 수있는 메모리 영역 일뿐입니다.
문제 : 아니요, Windows 용은 mmap()
입니다. 그리고 데이터를 넣으려면 데이터를 입력하는 것이 가장 좋은 방법은 아닙니다.
관련 문제
- 1. C에서의 파일 처리
- 2. C에서의 파일 처리에 대한 이해
- 3. C에서의 Typecasting
- 4. C에서의 연결
- 5. C에서의 Typecasting
- 6. 바이너리 설치 파일
- 7. Trasferring 바이너리 파일 PHP
- 8. SVN에 바이너리 파일 커밋
- 9. 파이썬에서 바이너리 파일 압축하기
- 10. 바이너리 파일 읽기
- 11. C 읽기 바이너리 파일
- 12. 스트림 큰 바이너리 파일
- 13. 바이너리 파일 수정하기
- 14. 두 바이너리 파일 비교
- 15. C : 바이너리 파일 편집
- 16. 바이너리 파일 암호화 문제
- 17. C : 바이너리 파일 읽기
- 18. 바이너리 파일 레이아웃 참조
- 19. Unittest 바이너리 파일 출력
- 20. 바이너리 템플릿 파일
- 21. 큰 바이너리 파일 편집
- 22. 바이너리 파일 크기
- 23. C에서의 I/O 메소드
- 24. objective-c에서의 캐스팅
- 25. C에서의 메모리 할당
- 26. Objective-C에서의 수학 표기법
- 27. C에서의 SIGSEGV (Segmentation Fault)
- 28. C에서의 정적 함수
- 29. 객관적인 C에서의 정규식 도움말
- 30. C에서의 포인터 문제
중간에 특정 오프셋을 지정하면 단순히 덮어 씁니까? – andrei
@andrei yes - 파일의 내용을 변경하려면 필요한 내용을 쓰고 끝에 (원자 적으로) 이름을 바꾸는 새 파일을 만드는 것이 좋습니다. 이것은 일반적인 프로세스이지만 함정이 가득합니다. 적절한 해결책을 찾기 위해이 문제에 대해 Google에 알려주십시오. – fge