ファイル読み込み時にエラーが発生。sizeが512以下になったときに、エラーがでるっぽい。1回の読み込みで512バイト読み込み、1250バイトのファイルを2回まで読み込んだら、1024バイト分読み込んでくれたが、残りの226バイトを読み込もうとするとエラーになる。buffにはfile->size + 1サイズの大きさを持たせてあるから、十分読み込めるはずだが…それに必要なサイズのメモリを確保してなくても、カーネルだとエラーにならずに読み込めてしまったりするもんだ。何か他にエラーの原因があるのだろうか?以下ソース
int FATFileReader::read(char* buff){ int size = file->getSize(); int cluster = 0x1F + file->getCluster(); char data[512]; int readIndex = 0; while(size > 0){ fdc->read(cluster, data); int readSize = size; if(readSize > 512) readSize = 512; for(int i = 0; i < readSize; i++){ buff[readIndex] = data[i]; readIndex++; } size -= 512; cluster++; } return readIndex; }