파일을 쓸 때 .write
에 해당하는 write
함수는 fuse_operations
에 각 파일 세그먼트에 대해 호출됩니다.fuse : 쓰 기 전에 쓰려는 파일의 크기를 어떻게 얻습니까?
이는 4096 바이트의 최대 세그먼트 크기 4 개 세그먼트를 가지고 있기 때문에 큰 파일 (예를 들어 12720 바이트)에 대해, 기록 기능
1. size=4096, offset=0
2. size=4096, offset=4096
3. size=4096, offset=8192
4. size=432, offset=12288
4 번 호출 될 수 있다는 것을 의미한다.
write
함수 내에서 마지막 세그먼트 크기가 write
인 시점을 확인하고 싶습니다. 모든 세그먼트를 버퍼에 넣으려고하고이 마지막으로 작성된 세그먼트를 사용하여 버퍼에 현재 전체 개체가 포함되어있어 다른 위치 (개체 저장소와 같은 위치)에 넣을 수 있음을 알립니다. 쓰여지 기 전에 쓰여지는 객체의 크기를 알면 간단한 구분 테스트 file_size == size + offset
을 수행하여 마지막 세그먼트가 쓰여지는 시점을 결정할 수 있습니다.
명시 적 파일 끝 표시자가 필요합니다. C에서는'fclose()'입니다. 귀하의 경우에는 그것과 같은 특별한 기능이거나 I/O 기능에 대한 추가 매개 변수 일 수 있습니다. –