<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ejudge.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Libchecker%3Achecker_read_file_by_line_ex</id>
	<title>Libchecker:checker read file by line ex - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ejudge.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Libchecker%3Achecker_read_file_by_line_ex"/>
	<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Libchecker:checker_read_file_by_line_ex&amp;action=history"/>
	<updated>2026-04-21T07:36:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Libchecker:checker_read_file_by_line_ex&amp;diff=2910&amp;oldid=prev</id>
		<title>Cher at 19:48, 4 July 2010</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Libchecker:checker_read_file_by_line_ex&amp;diff=2910&amp;oldid=prev"/>
		<updated>2010-07-04T19:48:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:48, 4 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Эта переменная представляет из себя массив указателей на строки, всего в массиве элементов на 1 больше, чем строк в файле, и последний элемент массива всегда равен NULL. Каждая строка завершается нулевым байтом. Никаких других преобразований над входным файлом не выполняется. Пробелы и символы &amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt; в конце текстовых строк входного файла сохраняются.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Эта переменная представляет из себя массив указателей на строки, всего в массиве элементов на 1 больше, чем строк в файле, и последний элемент массива всегда равен NULL. Каждая строка завершается нулевым байтом. Никаких других преобразований над входным файлом не выполняется. Пробелы и символы &amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt; в конце текстовых строк входного файла сохраняются.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Функция не предназначена для работы с бинарными файлами. Если в файле встречается символ, который недопустим в текстовом файле, вызывается функция &amp;lt;tt&amp;gt;error_func&amp;lt;tt&amp;gt; для выдачи сообщения об ошибке. Функция должна завершить выполнение программы. Параметр &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; &amp;amp;mdash; это имя файла, которое используется в тексте сообщения об ошибке.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Функция не предназначена для работы с бинарными файлами. Если в файле встречается символ, который недопустим в текстовом файле, вызывается функция &amp;lt;tt&amp;gt;error_func&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/&lt;/ins&gt;tt&amp;gt; для выдачи сообщения об ошибке. Функция должна завершить выполнение программы. Параметр &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; &amp;amp;mdash; это имя файла, которое используется в тексте сообщения об ошибке.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Память для содержимого файла выделяется на куче с помощью функций [[libchecker:xmalloc|xmalloc]], [[libchecker:xcalloc|xcalloc]] и [[libchecker:xrealloc|xrealloc]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Память для содержимого файла выделяется на куче с помощью функций &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;tt&amp;gt;&lt;/ins&gt;[[libchecker:xmalloc|xmalloc]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/tt&amp;gt;&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;tt&amp;gt;&lt;/ins&gt;[[libchecker:xcalloc|xcalloc]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/tt&amp;gt; &lt;/ins&gt;и &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;tt&amp;gt;&lt;/ins&gt;[[libchecker:xrealloc|xrealloc]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/tt&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Функция не возвращает никакого значения. Если при чтении произошла ошибка ввода, программа завершается, и диагностируется [[внутренняя ошибка проверки]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Функция не возвращает никакого значения. Если при чтении произошла ошибка ввода, программа завершается, и диагностируется [[внутренняя ошибка проверки]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Для этого используется функция &amp;lt;tt&amp;gt;[[libchecker:fatal_CF|fatal_CF]]&amp;lt;/tt&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Libchecker:checker_read_file_by_line_ex&amp;diff=2909&amp;oldid=prev</id>
		<title>Cher: Created page with 'Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/[[Libchecker:Функци…'</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Libchecker:checker_read_file_by_line_ex&amp;diff=2909&amp;oldid=prev"/>
		<updated>2010-07-04T19:46:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;Навигация: &lt;a href=&quot;/wiki/index.php/Main_Page&quot; title=&quot;Main Page&quot;&gt;Главная страница&lt;/a&gt;/&lt;a href=&quot;/wiki/index.php/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_ejudge&quot; title=&quot;Система ejudge&quot;&gt;Система ejudge&lt;/a&gt;/&lt;a href=&quot;/wiki/index.php/%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&quot; title=&quot;Проверяющие программы&quot;&gt;Проверяющие программы&lt;/a&gt;/&lt;a href=&quot;/wiki/index.php/Libchecker&quot; title=&quot;Libchecker&quot;&gt;libchecker&lt;/a&gt;/[[Libchecker:Функци…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Функции|Функции]]/[[Libchecker:Чтение файла как текста|Чтение файла как текста]]/[[Libchecker:checker read file by line_ex|checker_read_file_by_line_ex]]&lt;br /&gt;
&lt;br /&gt;
Функция &amp;lt;tt&amp;gt;checker_read_file_by_line_ex&amp;lt;/tt&amp;gt; &amp;amp;mdash; построчное чтение [[текстовый файл|текстового файла]] в память.&lt;br /&gt;
&lt;br /&gt;
 void&lt;br /&gt;
 checker_read_file_by_line_ex(&lt;br /&gt;
         FILE *f,&lt;br /&gt;
         [[libchecker:checker_error_func_t|checker_error_func_t]] error_func,&lt;br /&gt;
         const char *name,&lt;br /&gt;
         char ***out_lines,&lt;br /&gt;
         size_t *out_lines_num);&lt;br /&gt;
&lt;br /&gt;
Функция считывает содержимое текстового файла &amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt; в память.&lt;br /&gt;
В переменную, на которую указывает &amp;lt;tt&amp;gt;out_lines_num&amp;lt;/tt&amp;gt;, будет записано число строк в считанном файле.&lt;br /&gt;
В переменную, на которую указывает &amp;lt;tt&amp;gt;out_lines&amp;lt;/tt&amp;gt;, будут записаны считанные строки текста.&lt;br /&gt;
Эта переменная представляет из себя массив указателей на строки, всего в массиве элементов на 1 больше, чем строк в файле, и последний элемент массива всегда равен NULL. Каждая строка завершается нулевым байтом. Никаких других преобразований над входным файлом не выполняется. Пробелы и символы &amp;lt;tt&amp;gt;\n&amp;lt;/tt&amp;gt; в конце текстовых строк входного файла сохраняются.&lt;br /&gt;
&lt;br /&gt;
Функция не предназначена для работы с бинарными файлами. Если в файле встречается символ, который недопустим в текстовом файле, вызывается функция &amp;lt;tt&amp;gt;error_func&amp;lt;tt&amp;gt; для выдачи сообщения об ошибке. Функция должна завершить выполнение программы. Параметр &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; &amp;amp;mdash; это имя файла, которое используется в тексте сообщения об ошибке.&lt;br /&gt;
&lt;br /&gt;
Память для содержимого файла выделяется на куче с помощью функций [[libchecker:xmalloc|xmalloc]], [[libchecker:xcalloc|xcalloc]] и [[libchecker:xrealloc|xrealloc]].&lt;br /&gt;
&lt;br /&gt;
Функция не возвращает никакого значения. Если при чтении произошла ошибка ввода, программа завершается, и диагностируется [[внутренняя ошибка проверки]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
</feed>