file io - read()/write() calls on iOS seem to be limited by 2250 bytes -



file io - read()/write() calls on iOS seem to be limited by 2250 bytes -

i having unusual problem trying read , write 9k bytes open(), read() , write(). when effort write 9k file , read back, info goes 2250 bytes. after zeros.

here code (except filename isn't relevant, i'm putting nsdocumentdirectory):

int fp = open([appfile cstringusingencoding:nsasciistringencoding], o_rdwr | o_creat, 0644); [_detailviewcontroller log:@"first open() returns %i (err: %i)", fp, errno]; int data2[10000]; int data3[10000]; (int i=0;i<10000;i++) data2[i] = 1; [_detailviewcontroller log:@"resetting seek 0"]; int seekpos = lseek(fp, 0, seek_set); result = write(fp, data2, 9000); [_detailviewcontroller log:@"wrote 9k, result %i", result]; [_detailviewcontroller log:@"resetting seek 0"]; seekpos = lseek(fp, 0, seek_set); result = read(fp, data3, 9000); [_detailviewcontroller log:@"read 9k, result %i", result]; [_detailviewcontroller log:@"values of data2[2248-2252] = 0x%x 0x%x 0x%x 0x%x 0x%x", data2[2248], data2[2249], data2[2250], data2[2251], data2[2252]]; [_detailviewcontroller log:@"values of data3[2248-2252] = 0x%x 0x%x 0x%x 0x%x 0x%x", data3[2248], data3[2249], data3[2250], data3[2251], data3[2252]]; close(fp);

and here unusual output:

2013-02-13 14:08:38.290 filetester[2800:907] first open() returns 6 (err: 3) 2013-02-13 14:08:38.295 filetester[2800:907] resetting seek 0 2013-02-13 14:08:38.301 filetester[2800:907] wrote 9k, result 9000 2013-02-13 14:08:38.306 filetester[2800:907] resetting seek 0 2013-02-13 14:08:38.311 filetester[2800:907] read 9k, result 9000 2013-02-13 14:08:38.319 filetester[2800:907] values of data2[2248-2252] = 0x1 0x1 0x1 0x1 0x1 2013-02-13 14:08:38.327 filetester[2800:907] values of data3[2248-2252] = 0x1 0x1 0x0 0x0 0x0

as can see on lastly line, info goes zero.

any ideas might doing wrong? thing gets me both read() , write() homecoming 9000.

as mentioned ughoavgfhw (thanks!) problem was mixing bytes , ints. 9000 bytes same thing 2250 ints, since each int 4 bytes.

ios file-io system output bsd

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -