代码复制如下。我正在使用文档目录,因为我知道您可以在应用程序沙箱之外编写。 我还比较了我用来确定 NSFileManager 创建的路径的字符串,它们是相同的。大家觉得怎么样?
- (NSString *)documentsDirectory
{
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
- (void) whateverFunction{
NSString *memfileName = @"memmapfile.map";
NSString *filePath = [[self documentsDirectory] stringByAppendingPathComponent:memfileName];
NSLog(@"Here is the filePath: %@", filePath);
NSLog(@"Other version: %s", [[NSFileManager defaultManager] fileSystemRepresentationWithPath:filePath]);
int memFD = open([filePath cStringUsingEncoding:NSASCIIStringEncoding], O_RDWR);
NSLog(@"I am getting -1 for memFD: %d", memFD);
}
最佳答案
我猜你的文件还不存在,所以你当然无法打开它。您应该将 O_CREAT 添加到打开标志中,以便在不存在时创建它:
int memFD = open([filePath cStringUsingEncoding:NSASCIIStringEncoding], O_RDWR|O_CREAT);
关于ios - 在 iOS 上打开时得到 -1,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14736614/