312 fileStream::fileStream(const char* file_name) { |
312 fileStream::fileStream(const char* file_name) { |
313 _file = fopen(file_name, "w"); |
313 _file = fopen(file_name, "w"); |
314 _need_close = true; |
314 _need_close = true; |
315 } |
315 } |
316 |
316 |
|
317 fileStream::fileStream(const char* file_name, const char* opentype) { |
|
318 _file = fopen(file_name, opentype); |
|
319 _need_close = true; |
|
320 } |
|
321 |
317 void fileStream::write(const char* s, size_t len) { |
322 void fileStream::write(const char* s, size_t len) { |
318 if (_file != NULL) { |
323 if (_file != NULL) { |
319 // Make an unused local variable to avoid warning from gcc 4.x compiler. |
324 // Make an unused local variable to avoid warning from gcc 4.x compiler. |
320 size_t count = fwrite(s, 1, len, _file); |
325 size_t count = fwrite(s, 1, len, _file); |
321 } |
326 } |
322 update_position(s, len); |
327 update_position(s, len); |
|
328 } |
|
329 |
|
330 long fileStream::fileSize() { |
|
331 long size = -1; |
|
332 if (_file != NULL) { |
|
333 long pos = ::ftell(_file); |
|
334 if (::fseek(_file, 0, SEEK_END) == 0) { |
|
335 size = ::ftell(_file); |
|
336 } |
|
337 ::fseek(_file, pos, SEEK_SET); |
|
338 } |
|
339 return size; |
|
340 } |
|
341 |
|
342 char* fileStream::readln(char *data, int count ) { |
|
343 char * ret = ::fgets(data, count, _file); |
|
344 //Get rid of annoying \n char |
|
345 data[::strlen(data)-1] = '\0'; |
|
346 return ret; |
323 } |
347 } |
324 |
348 |
325 fileStream::~fileStream() { |
349 fileStream::~fileStream() { |
326 if (_file != NULL) { |
350 if (_file != NULL) { |
327 if (_need_close) fclose(_file); |
351 if (_need_close) fclose(_file); |