Совместное использование указателя FILE между библиотеками - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть простой вопрос;Я использую FILE* fp в одной из моих библиотек, чтобы fopen/fwrite к файлу, и я хочу сделать fclose() на fp в другой библиотеке - как лучше для другой библиотеки получить дескриптор файла

1 Ответ

6 голосов
/ 13 сентября 2011

Если две ваши библиотеки общаются друг с другом, то первая должна передать FILE* второму при вызове функции.

Если библиотеки не общаются друг с другом, основное приложение должно получитьFILE* из первой библиотеки и передайте ее второй библиотеке.Или, лучше, приложение должно иметь FILE*, передать его первой открытой библиотеке, а затем передать его второй библиотеке, которая будет завершена, и, наконец, приложение должно закрыть сам FILE*.Попытка разобраться с библиотекой, которая хочет получить имя файла вместо FILE*, может быть очень неприятной, если у вас есть что-то, похожее на файл, но без имени.

...