gpt4 book ai didi

ios - 如何从 NSFileHandle * 获取文件 *?

转载 作者:可可西里 更新时间:2023-11-01 05:30:11 27 4
gpt4 key购买 nike

旧的解析器依赖于 FILE * 来工作。但是,适用于 iOS 的 Dropbox Sync API 返回一个 NSFileHandle * 而不是 FILE * 作为文件句柄。

所以我尝试使用 NSFileHandlefileDescriptor:

- (NSFileHandle )readHandle:(DBError *)error

Returns a read-only file handle for the file. If the file is not cached then the method will block until the file is downloaded. Returns

A file handle if the file can be read, or nil if an error occurred.

并作为 FILE * 传递:

- (void)loadDBFile:(DBFile *)dbFile
{
DBError *dbError;
NSFileHandle *fileHandle = [dbFile readHandle:&dbError];
if (fileHandle) {
FILE *file = fileHandle.fileDescriptor;
fseek(file, 0, SEEK_END); // EXE_BAD_ACCESS here!
// ...
}
}

但是,在 fseek 行有一个 EXE_BAD_ACCESS

最佳答案

fileDescriptor 返回底层文件描述符,一个简单的整数,而不是 FILE 对象(它包装了一个文件描述符,但不是一回事)。使用 fdopen()从文件描述符中获取 FILE 对象:

FILE *file = fdopen([filehandle fileDescriptor], "r"); // Create a read-only FILE object

关于ios - 如何从 NSFileHandle * 获取文件 *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876643/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com