我打开和读取文件的方法被卡在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);
答案 0 :(得分:1)
也许你的tempArray太小了,内存被覆盖了。
请尝试char* tempArray = [file UTF8String];
。
答案 1 :(得分:1)
你在考虑使用NSFileHandle吗?
因为我没有尝试你的代码,但是你知道fopen是一个低级别的c函数,我不确定iOS上是否有一些限制(iOS上的所有应用程序都在“沙盒”中运行而且没有读取和写入旁边的任何内容的权限。)
答案 2 :(得分:1)
问题的原因:
readin[4] = '\n';
我错误地终止了我的字符串。
在Xcode中,它显示了随后显示readin
的printf(),并且似乎也混淆了printf("file pointer: %p", lalala);
之前的内容。
现在感觉自己像个傻瓜。
非常感谢Xuzhe和Hollance试图帮助我。