hdiutil может обрабатывать редкие изображения и файлы, но, к сожалению, фреймворк, на который он ссылается, является приватным.
Вы можете попытаться определить внешние символы, как это определено в нижеприведенной платформе DiskImages, но, скорее всего, это неприемлемо для производственного кода, к тому же, поскольку среда является частной, вам придется пересмотреть варианты ее использования.
cristi: ~ diciu $ otool -L / usr / bin / hdiutil
/ USR / бен / hdiutil:
/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages (совместимость версия 1.0.8, текущая версия 194.0.0)
[..]
cristi: ~ diciu $ nm /System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages | awk -F '' '{print $ 3}' | с ++ фильт | grep -i разреженный
[..]
CSparseFile :: sector2Band (long long)
CSparseFile :: addIndexNode ()
CSparseFile :: readIndexNode (long long, SparseFileIndexNode *)
CSparseFile :: readHeaderNode (CBackingStore *, SparseFileHeaderNode *, без знака long)
[... вырезано для краткости]
Позже Редактировать
Вы можете использовать hdiutil в качестве внешнего процесса и создать для него разреженный образ диска. Из процесса C вы затем создадите файл в (смонтированном) разреженном образе диска.