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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LINE_MAX для Windows 
:(
    Опции темы
Alca
Дата 29.2.2012, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Для Linux есть макрос LINE_MAX:
Цитата

LINE_MAX - _SC_LINE_MAX 
The maximum length of a utility's input line, either from standard input or from a file. This includes space for a trailing newline.

какой аналог есть для винды?


--------------------
PM WWW ICQ Skype Jabber   Вверх
boostcoder
Дата 29.2.2012, 04:05 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



MAX_PATH

PM WWW   Вверх
feodorv
Дата 29.2.2012, 08:45 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(Alca @  29.2.2012,  00:02 Найти цитируемый пост)
какой аналог есть для винды? 

Не видел такого (в винде). А в чём сакральный смысл этого макроса? На что он влияет?

Никогда не парился на это счёт. Определял сам (если нужда была):
Код

#ifndef LINE_MAX
#define LINE_MAX 1024
#endif


Или тупо в программе:
Код

  char line[1024];


Это сообщение отредактировал(а) feodorv - 29.2.2012, 08:46


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Alca
Дата 29.2.2012, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

А в чём сакральный смысл этого макроса? На что он влияет?


Что-то вроде этого:
Код

#include <stdio.h>

int main()
{
   FILE * pFile;
   char mystring [LINE_MAX];

   pFile = fopen ("myfile.txt" , "r");
   if (pFile == NULL) perror ("Error opening file");
   else {
     if ( fgets (mystring , LINE_MAX , pFile) != NULL )
       puts (mystring);
     fclose (pFile);
   }
   return 0;
}



Это сообщение отредактировал(а) Alca - 29.2.2012, 11:36


--------------------
PM WWW ICQ Skype Jabber   Вверх
feodorv
Дата 29.2.2012, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(Alca @  29.2.2012,  11:35 Найти цитируемый пост)
Что-то вроде этого

Тут, кстати, ничего сакрального нет. Вот если бы где-то было бы оговорено, что gets считывает не более LINE_MAX символов, или что гарантируется вывод в стрим LINE_MAX символов без перемешивания (при одновременном доступе к стриму нескольких процессов), тогда сокральность была бы smile А так:
Код

_SC LINE MAX - Возвращает максимальную длину в байтах входной строки, обрабатываемой текстовыми утилитами, включая завершающий символ новой строки. 
Следует отметить, что во многих утилитах GNU, используемых в Linux-системах, фактически нет жестко закодированной максимальной длины строки, потому могут применяться входные строки произвольной длины. 
Однако переносимая программа не должна вызывать текстовые утилиты для строк, длина которых превышает _SC_LINE_MAX; 
во многих Unix-системах утилиты работают с фиксированным максимальным размером строки, и его превышение может привести к неопределенным результатам.

По-моему, такая константа с таким смыслом только вредна. То есть в описание утилиты можно вставить пункт о "неопределённых результатах" на длинных строках, но делать из этого стандарт не стоит, кмк.

Это сообщение отредактировал(а) feodorv - 29.2.2012, 14:50


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
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.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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