515 if (_file != NULL) {
516 _need_close = true;
517 } else {
518 warning("Cannot open file %s due to %s\n", file_name, os::strerror(errno));
519 _need_close = false;
520 }
521 }
522
523 void fileStream::write(const char* s, size_t len) {
524 if (_file != NULL) {
525 // Make an unused local variable to avoid warning from gcc 4.x compiler.
526 size_t count = fwrite(s, 1, len, _file);
527 }
528 update_position(s, len);
529 }
530
531 long fileStream::fileSize() {
532 long size = -1;
533 if (_file != NULL) {
534 long pos = ::ftell(_file);
535 if (::fseek(_file, 0, SEEK_END) == 0) {
536 size = ::ftell(_file);
537 }
538 ::fseek(_file, pos, SEEK_SET);
539 }
540 return size;
541 }
542
543 char* fileStream::readln(char *data, int count ) {
544 char * ret = ::fgets(data, count, _file);
545 //Get rid of annoying \n char
546 data[::strlen(data)-1] = '\0';
547 return ret;
548 }
549
550 fileStream::~fileStream() {
551 if (_file != NULL) {
552 if (_need_close) fclose(_file);
553 _file = NULL;
554 }
|
515 if (_file != NULL) {
516 _need_close = true;
517 } else {
518 warning("Cannot open file %s due to %s\n", file_name, os::strerror(errno));
519 _need_close = false;
520 }
521 }
522
523 void fileStream::write(const char* s, size_t len) {
524 if (_file != NULL) {
525 // Make an unused local variable to avoid warning from gcc 4.x compiler.
526 size_t count = fwrite(s, 1, len, _file);
527 }
528 update_position(s, len);
529 }
530
531 long fileStream::fileSize() {
532 long size = -1;
533 if (_file != NULL) {
534 long pos = ::ftell(_file);
535 if (pos < 0) return pos;
536 if (::fseek(_file, 0, SEEK_END) == 0) {
537 size = ::ftell(_file);
538 }
539 ::fseek(_file, pos, SEEK_SET);
540 }
541 return size;
542 }
543
544 char* fileStream::readln(char *data, int count ) {
545 char * ret = ::fgets(data, count, _file);
546 //Get rid of annoying \n char
547 data[::strlen(data)-1] = '\0';
548 return ret;
549 }
550
551 fileStream::~fileStream() {
552 if (_file != NULL) {
553 if (_need_close) fclose(_file);
554 _file = NULL;
555 }
|