я пытаюсь открыть существующий файл в режиме «rb», и мне нужно расшифровать, возвращая новый ФАЙЛ * без перезаписи исходного файла или создания нового временного. Короче говоря, мне нужно что-то вроде этого:
FILE *decrypt(){
FILE *cryptedfile = fopen("file.ext", "rb");
//... my decrypter code
return (the decrypted file as FILE*).
}
Итак, есть ли способ сделать что-то вроде «перевести char* в FILE*»?
я безуспешно пробовал много разных решений, я также пытался создать новый tmpfile(), но результат, похоже, не работает должным образом, и я все равно не хочу создавать tmpfile, а просто храню его в памяти.
спасибо :)
FILE *
— это использоватьfopen
. Почему бы вам просто не вернуть расшифрованное содержимое в массиве байтов? - person Fiddling Bits   schedule 24.10.2018const char*
вFILE*
, когда позвонилиfopen
. - person François Andrieux   schedule 24.10.2018return (the decrypted file as FILE*).
то надо создать новый расшифрованный файл и записать в него закрыть его, потом снова открыть для чтения. Кажется странным требованием или, по крайней мере, небезопасным. - person drescherjm   schedule 24.10.2018FILE *
? Что плохого в том, чтоchar *
указывает на расшифрованные данные? - person dbush   schedule 24.10.2018fmemopen()
. - person   schedule 24.10.2018