iOS,fopen挂起/卡住

iOS,fopen挂起/卡住,ios,fopen,Ios,Fopen,我打开和读取文件的方法在fopen()上卡住了 每个人都说这是关于FIFO和必须打开另一端的事情(这是一个血腥的文件,什么是先进先出?),但甚至没有人暗示该怎么做 const int arraySize = 256; char tempArray[arraySize]; NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocu

我打开和读取文件的方法在fopen()上卡住了

每个人都说这是关于FIFO和必须打开另一端的事情(这是一个血腥的文件,什么是先进先出?),但甚至没有人暗示该怎么做

const int arraySize = 256;
char tempArray[arraySize];

NSArray *paths = NSSearchPathForDirectoriesInDomains(
                                                     NSDocumentDirectory, 
                                                     NSUserDomainMask, YES
                                                     ); 
NSString* docDir = [paths objectAtIndex:0];
NSString* file = [docDir stringByAppendingString:@"/example_01.txt"];

NSLog(file);

//converting to C string
[file getCString:tempArray maxLength:arraySize encoding:NSUTF8StringEncoding];

printf("see %s\n", tempArray);

FILE *lalala;

printf("file pointer befoer: %p", lalala);
lalala = fopen(tempArray, "rb+");

printf("file pointer: %p", lalala);

fseek(lalala, 4, SEEK_SET);

char readin[5];
readin[4] = '\n';
fread(readin, 1, 4, lalala);

fclose(lalala);

可能您的临时数组太小,内存被覆盖


尝试
char*tempArray=[file UTF8String]取而代之。

您是否考虑改用NSFileHandle


由于我不是在尝试编写代码,但正如您所知,fopen是一个低级c函数,因此我不确定iOS上是否有一些限制(iOS上的所有应用程序都在“沙盒”中运行,并且没有读写任何内容的权限。)

问题的原因:

readin[4] = '\n';
我把绳子接错了

在Xcode中,它将显示
readin
的printf()弄得一团糟,似乎弄乱了
printf(“文件指针:%p”,拉拉)也在它之前

现在觉得自己像个傻瓜


非常感谢徐哲和霍伦斯帮我解决了这一问题。

设置为1000。不行。我实际上可以创建/覆盖一个带有“w”的文件。不使用“b”而只使用开放模式“r+”怎么样?我明白了。试试下面的代码:FILE*f=fopen([FILE cStringUsingEncoding:NSUTF8StringEncoding],“r”);仅具有“读取”选项。禁止使用。:/我正在认真考虑使用NSFileHandle并重新编写给我的C代码(天哪,帮帮我)。但我在NSFileHandle和“坏文件描述符”方面也遇到了问题/我在想你的文件路径是否正确?既然你正在记录路径,你有没有试着用Finder打开它(如果你在iOS模拟器中运行),看看它是否正确?好吧,我可以用路径创建空文件,只是它也卡在那里了。它还与CFURLCreateFromFileSystemRepresentation()一起工作,返回一个有效的CFURL,我在其中用作AudioFileOpenURL()的参数。好的,整理好NSFileHandle。他很愚蠢,用错了方法。由于某些原因,如果打开文件进行写入,则可以读取该文件。。。