<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109571</guid>
        <pubDate>Fri, 21 Jun 2002 10:06:27 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109571</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>lamo, 21.06.02, 13:43:25</span><div class='quote '>про проверки ипроч ...<br>задача тривиальная и разовая.<br>писалось все на коленке с жесточайшего похмелья<br>за пять мин.<br>и сразу забылось )<br><br>а про 30 гиг - интересно.<br>правда никогда такой задачи не было.<br>4 гига было.<br>найду сырц - скину.<br></div></div><br><br>Я не говорю что проверки - нечто экзотическое. Эт-так, просто на файлах в 30G это спасает ;) от дополнительной головной боли в тяжкие времена похмелья. &nbsp;;D ;D ;D<br><br>А вот если сырец найдешь - будет очень даже замечательно. Проблему-то я решил, но на Ц++. А вот если бы Перл'овкой все сделать ... Уважаю я Перл, а так досадно даже как-то &nbsp;;D ;D ;D<br>]]></description>
        <author>JoeUser</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109570</guid>
        <pubDate>Fri, 21 Jun 2002 09:43:25 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109570</link>
        <description><![CDATA[lamo: про проверки ипроч ...<br>задача тривиальная и разовая.<br>писалось все на коленке с жесточайшего похмелья<br>за пять мин.<br>и сразу забылось )<br><br>а про 30 гиг - интересно.<br>правда никогда такой задачи не было.<br>4 гига было.<br>найду сырц - скину.<br>]]></description>
        <author>lamo</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109569</guid>
        <pubDate>Fri, 21 Jun 2002 09:40:22 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109569</link>
        <description><![CDATA[lamo: опс.<br>23 мега.<br>а с перепою показалось гиг )<br>]]></description>
        <author>lamo</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109568</guid>
        <pubDate>Thu, 20 Jun 2002 13:45:56 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109568</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>lamo, 20.06.02, 16:24:15</span><div class='quote '>лехко.<br><br>#!/usr/bin/perl<br><br>if ((scalar @ARGV) != 1)<br>{<br> print &quot;use: mlogpars.pl file_mail_logs\n&quot;;<br> exit 1;<br>}<br><br>my $c_fn_mlog = $ARGV[0];<br>my @a_mlog;<br><br>open(F_ML, &quot;$c_fn_mlog&quot;);<br>@a_mlog = &lt;F_ML&gt;;<br>close(F_ML);<br><br>my $i_cnt = 0;<br>my $i_old;<br>my (@a_buf, @a_buf1, $a_mlog, $c_date, $c_to_uid, $c_from_uid, $i_size, $i_msg_num);<br><br>$&#124; = 1;<br><br>while ($i_cnt &lt; scalar(@a_mlog))<br>{<br> $a_mlog = @a_mlog[$i_cnt];<br> $a_mlog =~ s/\r//g;<br> $a_mlog =~ s/\n//g;<br> @a_buf = split (/ +/, $a_mlog);<br><br><br><br><br><br>etc.<br>это часть парса логов.<br>лог был на сколько помнится гиг 30.<br>kernel 2.4.18.<br></div></div><br><br>Стоп-стоп-стоп. &nbsp;&gt;:( Ты &quot;гонишь&quot;. 30Gb этот код не обработает... Я позволю себе коментарии расставить!<br><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;br&#62;# взяли из командной строки имя обрабатываемого файла&#60;br&#62;my $c_fn_mlog = $ARGV[0];&#60;br&#62;&#60;br&#62;# определили массив&#60;br&#62;my @a_mlog;&#60;br&#62;&#60;br&#62;# открыли файл для чтения (а проверять кто будет?)&#60;br&#62;# правильнее было бы так:&#60;br&#62;#&#60;br&#62;# open(F_ML, &quot;$c_fn_mlog&quot;) || die &quot;Shit happiness!&quot;;&#60;br&#62;#&#60;br&#62;#&#60;br&#62;open(F_ML, &quot;$c_fn_mlog&quot;);&#60;br&#62;&#60;br&#62;# опаньки !!! загоняем построчно весь файл в 30G в память!!!!!!!!!! &#60;br&#62;@a_mlog = &#60;F_ML&#62;;&#60;br&#62;&#60;br&#62;# типа хотим еще чего-то закрыть&#60;br&#62;close(F_ML);&#60;br&#62;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br><br>Какие 30G ???]]></description>
        <author>JoeUser</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109567</guid>
        <pubDate>Thu, 20 Jun 2002 13:34:08 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109567</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>lamo, 20.06.02, 16:24:15</span><div class='quote '>лехко.<br><br>#!/usr/bin/perl<br><br>if ((scalar @ARGV) != 1)<br>{<br> print &quot;use: mlogpars.pl file_mail_logs\n&quot;;<br> exit 1;<br>}<br><br>my $c_fn_mlog = $ARGV[0];<br>my @a_mlog;<br><br>open(F_ML, &quot;$c_fn_mlog&quot;);<br>@a_mlog = &lt;F_ML&gt;;<br>close(F_ML);<br><br>my $i_cnt = 0;<br>my $i_old;<br>my (@a_buf, @a_buf1, $a_mlog, $c_date, $c_to_uid, $c_from_uid, $i_size, $i_msg_num);<br><br>$&#124; = 1;<br><br>while ($i_cnt &lt; scalar(@a_mlog))<br>{<br> $a_mlog = @a_mlog[$i_cnt];<br> $a_mlog =~ s/\r//g;<br> $a_mlog =~ s/\n//g;<br> @a_buf = split (/ +/, $a_mlog);<br><br><br><br><br><br>etc.<br>это часть парса логов.<br>лог был на сколько помнится гиг 30.<br>kernel 2.4.18.<br></div></div><br><br>Как-то подозрительно это все ;) У меня ядро 2.4.7-10 если не ошибаюсь. Я еще раз попробовал:<br><br>1) -f на файл в 23Gb возвращает 0<br>2) stat возвращает размер файла undef<br>3) на маленьких файлах - все как положено<br><br>так что легко??? и tar у тебя нормально на таких размерах пашет? Поверять нужно так - не на размер создаваемого таром файла смотри, а попробуй &quot;достать&quot; не битый файл.<br><br>Кстати, мене интереснее как ты сможешь сделать seek на гиг так 11-12? Покажи работающий перловый код.<br><br>И еще...Может чего в в ядре добавили за это время? <br>У тебя ядро то по-новее будет.<br><br>]]></description>
        <author>JoeUser</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109566</guid>
        <pubDate>Thu, 20 Jun 2002 12:24:15 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109566</link>
        <description><![CDATA[lamo: лехко.<br><br>#!/usr/bin/perl<br><br>if ((scalar @ARGV) != 1)<br>{<br> print &quot;use: mlogpars.pl file_mail_logs\n&quot;;<br> exit 1;<br>}<br><br>my $c_fn_mlog = $ARGV[0];<br>my @a_mlog;<br><br>open(F_ML, &quot;$c_fn_mlog&quot;);<br>@a_mlog = &lt;F_ML&gt;;<br>close(F_ML);<br><br>my $i_cnt = 0;<br>my $i_old;<br>my (@a_buf, @a_buf1, $a_mlog, $c_date, $c_to_uid, $c_from_uid, $i_size, $i_msg_num);<br><br>$&#124; = 1;<br><br>while ($i_cnt &lt; scalar(@a_mlog))<br>{<br> $a_mlog = @a_mlog[$i_cnt];<br> $a_mlog =~ s/\r//g;<br> $a_mlog =~ s/\n//g;<br> @a_buf = split (/ +/, $a_mlog);<br><br><br><br><br><br>etc.<br>это часть парса логов.<br>лог был на сколько помнится гиг 30.<br>kernel 2.4.18.<br>]]></description>
        <author>lamo</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109565</guid>
        <pubDate>Thu, 20 Jun 2002 10:39:51 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109565</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>bin, 20.06.02, 12:31:34</span><div class='quote '>если включить <br>#define _LARGEFILE64_SOURCE 1<br>то loff_t должен стать 64 битным (т.е. long long), это даст возможность делать lseek64 за пределы 2G, это все справедливо для block devices, на простых файлах не пробовал.<br>Но это легко проверить до написания прог, надо глянуть драйверы ext3, и проверить размерность loff_t в реализации seek.</div></div><br><br>Извиняюсь. Я уже нашел это и отписАл в форуме по Ц++<br><br>===<br><br>#define __USE_FILE_OFFSET64 <br>#define __USE_LARGEFILE <br>#define __USE_LARGEFILE64 <br> <br>для хранения размеров, смещений и прчего использовать off_t <br><br>===<br><br>Все заработало. Теперь бэкапы скручиваются &quot;на ура&quot; в файл 23G ;) Tar так не может!<br><br>... или может?<br>]]></description>
        <author>JoeUser</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109564</guid>
        <pubDate>Thu, 20 Jun 2002 08:31:34 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109564</link>
        <description><![CDATA[bin: если включить <br>#define _LARGEFILE64_SOURCE 1<br>то loff_t должен стать 64 битным (т.е. long long), это даст возможность делать lseek64 за пределы 2G, это все справедливо для block devices, на простых файлах не пробовал.<br>Но это легко проверить до написания прог, надо глянуть драйверы ext3, и проверить размерность loff_t в реализации seek.]]></description>
        <author>bin</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109563</guid>
        <pubDate>Thu, 23 May 2002 08:49:34 +0000</pubDate>
        <title>Обработка больших файлов</title>
        <link>https://forum.sources.ru/index.php?showtopic=12355&amp;view=findpost&amp;p=109563</link>
        <description><![CDATA[JoeUser: Уважаемые господа! <br> <br>Может быть кто подскажет как работать с большими файлами (порядка 20Gb). Обычные файловые функции не работают или работают но не так. &nbsp;<br> <br>Меня устроит и С/C++, и Free Pascal, &nbsp;и Perl. Обработка файлов нужна под Линакс (ext3) <br> <br>Пожалуйста, помогите! <br><br>P.S. В форуме C/C++ спрашивал - пока никто не ответил :(<br> <br>]]></description>
        <author>JoeUser</author>
        <category>*nix</category>
      </item>
	
      </channel>
      </rss>
	