首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从NSFileHandle *获取文件?

如何从NSFileHandle *获取文件?
EN

Stack Overflow用户
提问于 2013-07-26 08:34:03
回答 1查看 1.6K关注 0票数 4

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

因此,我尝试使用fileDescriptor of a NSFileHandle

( *)error ) - (NSFileHandle )readHandle:(DBError ) 返回文件的只读文件句柄。如果该文件未被缓存,则该方法将被阻塞,直到下载该文件。返回 如果可以读取文件,则为文件句柄;如果发生错误,则为零。

并作为FILE *通过

代码语言:javascript
复制
- (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!
         // ...
    }
}

但是,在EXE_BAD_ACCESS行中有一个fseek

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-26 08:39:05

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

代码语言:javascript
复制
FILE *file = fdopen([filehandle fileDescriptor], "r"); // Create a read-only FILE object
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17876643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档