Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Третий параметр в вызове fstream file.open(), компилятор BCB6 
:(
    Опции темы
oldm
Дата 20.11.2004, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.5.2004

Репутация: нет
Всего: нет



Собственно сабж.
На константы используемые третим параметром, которые описаны в МСДНеsmile, компилер ВСВ6 ругается (реализации STL разные). В хэлпе ВСВ6 написано мякго говоря мало. И потому спрашиваю, что в 3 параметре должно быть. В частности интересует константа задающая так сказать "эсклюзивный" доступ(тобишь другие приложения не могут открыть файл).
PM MAIL   Вверх
setq
Дата 21.11.2004, 14:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











лично мне эта тема знакома плохо, поэтому помочь не обещаю. но обычно отвечать легче, если приведён кусочек кода, на который ругается компилятор.
  Вверх
Borisff2003
Дата 22.11.2004, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



Ди и хотелось бы посмотреть на описание 3 го параментра в MSDN, а то я чтото не нашел
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
_hunter
Дата 23.11.2004, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



Borisff2003, а что его искать? ищем fstream, смотрим его конструктори усе:
http://msdn.microsoft.com/library/en-us/vc...a3a.fstream.asp
setq, кусок кода может быть таким:
fstream file("file.dat", ios::in, filebuf::sh_none)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
setq
Дата 24.11.2004, 10:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











_hunter, да быть-то он может в принципе любым. какой он есть на самом деле вот в чём вопрос... %)

Это сообщение отредактировал(а) setq - 24.11.2004, 10:50
  Вверх
_hunter
Дата 24.11.2004, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



Цитата
какой он есть на самом деле вот в чём вопрос...

в смысле?
считай что такой и есть на самом деле ( разве что для красоты std:: спереди поприсобачивать )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
oldm
Дата 29.11.2004, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.5.2004

Репутация: нет
Всего: нет



Цитата(_hunter @ 23.11.2004, 11:08)
setq, кусок кода может быть таким:
fstream file("file.dat", ios::in, filebuf::sh_none)

Для VC да такой. Спора нет.
Для СBuider какой - вот вопрос smile .
Честно говоря тихо схожу с ума по этому поводу.
PM MAIL   Вверх
Borisff2003
Дата 30.11.2004, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



в Builder -ой справке

Цитата

basic_ifstream(const char* s,
              ios_base::openmode mode= ios_base::in,
              long protection= 0666);

Constructs an object of class basic_ifstream<charT,traits>, initializing the base class basic_istream with the associated file buffer, which is initialized by calling the basic_filebuf constructor basic_filebuf<charT,traits>(). The constructor then calls the open function open(s,mode,protection) in order to attach the file, whose name is pointed to by s, to the basic_ifstream object. The third argument protection holds file permissions. It does not appear in the Standard C++ description and is included as an extension. It determines the file read/write/execute permissions under UNIX. It is more limited under DOS since files are always readable and do not have special execute permission.


А вот что в исходниках

Код

template <class _CharT, class _Traits>
class basic_ifstream : public basic_istream<_CharT, _Traits>
{
public:                         // Types
 typedef _CharT                     char_type;
 typedef typename _Traits::int_type int_type;
 typedef typename _Traits::pos_type pos_type;
 typedef typename _Traits::off_type off_type;
 typedef _Traits                    traits_type;

 typedef basic_ios<_CharT, _Traits>                _Basic_ios;
 typedef basic_istream<_CharT, _Traits>            _Base;
 typedef basic_filebuf<_CharT, _Traits>            _Buf;

public:                         // Constructors, destructor.

 basic_ifstream() :
   basic_ios<_CharT, _Traits>(),  basic_istream<_CharT, _Traits>(0), _M_buf() {
     this->init(&_M_buf);
 }

 explicit basic_ifstream(const char* __s, ios_base::openmode __mod = ios_base::in) :
   basic_ios<_CharT, _Traits>(),  basic_istream<_CharT, _Traits>(0),
   _M_buf() {
     this->init(&_M_buf);
     if (!_M_buf.open(__s, __mod | ios_base::in))
this->setstate(ios_base::failbit);
 }

# ifndef _STLP_NO_EXTENSIONS
 explicit basic_ifstream(int __id, ios_base::openmode __mod = ios_base::in) :
   basic_ios<_CharT, _Traits>(),  basic_istream<_CharT, _Traits>(0), _M_buf() {
   this->init(&_M_buf);
   if (!_M_buf.open(__id, __mod | ios_base::in))
     this->setstate(ios_base::failbit);
 }
# endif

 ~basic_ifstream() {}

public:                         // File and buffer operations.
 basic_filebuf<_CharT, _Traits>* rdbuf() const
   { return __CONST_CAST(_Buf*,&_M_buf); }

 bool is_open() {
   return this->rdbuf()->is_open();
 }

 void open(const char* __s, ios_base::openmode __mod = ios_base::in) {
   if (!this->rdbuf()->open(__s, __mod | ios_base::in))
     this->setstate(ios_base::failbit);
 }
.................

Заметь ни в одном конструкторе нет 3-го параметра. Видимо он вообще не используется smile
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
oldm
Дата 30.11.2004, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.5.2004

Репутация: нет
Всего: нет



Цитата

Заметь ни в одном конструкторе нет 3-го параметра. Видимо он вообще не используется

Третий параметр появляется если перед #include <fstream.h> поставить
Код

#define _USE_OLD_RW_STL



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0849 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.