При использовании файлового дескриптора в нативном коде, который был получен из ParcelFileDescriptor , должна ли нативная сторона использовать fclose после fdopen ?
В документации указано , что экземпляру ParcelaleFileDescriptor принадлежит дескриптор файла, и он должен быть закрыт через него. Я не знаю влияния закрытия родного указателя FILE перед закрытием дескриптора файла.
псевдокод:
1) JAVA:
// Obtain the file descriptor and pass it to the native method
ParcelFileDescriptor descriptor = contentResolver.openFileDescriptor(uri, "w");
nativeMethod(descriptor.getFD());
2) C++:
void nativeMethod(const int fd)
{
FILE* fp = fdopen(fd, "wb");
..... // do something
fclose(fp); // Close the file pointer <-- Is this valid?
}
3) JAVA:
// Back from the native method, close the file descriptor
descriptor.close();