✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/doc/libxml2-devel//xmlio.html
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
TD {font-family: Verdana,Arial,Helvetica}
BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>I/O Interfaces</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>I/O Interfaces</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Developer Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html" style="font-weight:bold">Main Menu</a></li><li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="ChangeLog.html">ChangeLog</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="https://libxmlplusplus.github.io/libxmlplusplus/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="https://gitlab.gnome.org/GNOME/libxml2/issues">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Table of Content:</p><ol>
  <li><a href="#General1">General overview</a></li>
  <li><a href="#basic">The basic buffer type</a></li>
  <li><a href="#Input">Input I/O handlers</a></li>
  <li><a href="#Output">Output I/O handlers</a></li>
  <li><a href="#entities">The entities loader</a></li>
  <li><a href="#Example2">Example of customized I/O</a></li>
</ol><h3><a name="General1" id="General1">General overview</a></h3><p>The module <code><a href="http://xmlsoft.org/html/libxml-xmlio.html">xmlIO.h</a></code> provides
the interfaces to the libxml2 I/O system. This consists of 4 main parts:</p><ul>
  <li>Entities loader, this is a routine which tries to fetch the entities
    (files) based on their PUBLIC and SYSTEM identifiers. The default loader
    don't look at the public identifier since libxml2 do not maintain a
    catalog. You can redefine you own entity loader by using
    <code>xmlGetExternalEntityLoader()</code> and
    <code>xmlSetExternalEntityLoader()</code>. <a href="#entities">Check the
    example</a>.</li>
  <li>Input I/O buffers which are a commodity structure used by the parser(s)
    input layer to handle fetching the information to feed the parser. This
    provides buffering and is also a placeholder where the encoding
    converters to UTF8 are piggy-backed.</li>
  <li>Output I/O buffers are similar to the Input ones and fulfill similar
    task but when generating a serialization from a tree.</li>
  <li>A mechanism to register sets of I/O callbacks and associate them with
    specific naming schemes like the protocol part of the URIs.
    <p>This affect the default I/O operations and allows to use specific I/O
    handlers for certain names.</p>
  </li>
</ul><p>The general mechanism used when loading http://rpmfind.net/xml.html for
example in the HTML parser is the following:</p><ol>
  <li>The default entity loader calls <code>xmlNewInputFromFile()</code> with
    the parsing context and the URI string.</li>
  <li>the URI string is checked against the existing registered handlers
    using their match() callback function, if the HTTP module was compiled
    in, it is registered and its match() function will succeeds</li>
  <li>the open() function of the handler is called and if successful will
    return an I/O Input buffer</li>
  <li>the parser will the start reading from this buffer and progressively
    fetch information from the resource, calling the read() function of the
    handler until the resource is exhausted</li>
  <li>if an encoding change is detected it will be installed on the input
    buffer, providing buffering and efficient use of the conversion
  routines</li>
  <li>once the parser has finished, the close() function of the handler is
    called once and the Input buffer and associated resources are
  deallocated.</li>
</ol><p>The user defined callbacks are checked first to allow overriding of the
default libxml2 I/O routines.</p><h3><a name="basic" id="basic">The basic buffer type</a></h3><p>All the buffer manipulation handling is done using the
<code>xmlBuffer</code> type define in <code><a href="http://xmlsoft.org/html/libxml-tree.html">tree.h</a> </code>which is a
resizable memory buffer. The buffer allocation strategy can be selected to be
either best-fit or use an exponential doubling one (CPU vs. memory use
trade-off). The values are <code>XML_BUFFER_ALLOC_EXACT</code> and
<code>XML_BUFFER_ALLOC_DOUBLEIT</code>, and can be set individually or on a
system wide basis using <code>xmlBufferSetAllocationScheme()</code>. A number
of functions allows to manipulate buffers with names starting with the
<code>xmlBuffer...</code> prefix.</p><h3><a name="Input" id="Input">Input I/O handlers</a></h3><p>An Input I/O handler is a simple structure
<code>xmlParserInputBuffer</code> containing a context associated to the
resource (file descriptor, or pointer to a protocol handler), the read() and
close() callbacks to use and an xmlBuffer. And extra xmlBuffer and a charset
encoding handler are also present to support charset conversion when
needed.</p><h3><a name="Output" id="Output">Output I/O handlers</a></h3><p>An Output handler <code>xmlOutputBuffer</code> is completely similar to an
Input one except the callbacks are write() and close().</p><h3><a name="entities" id="entities">The entities loader</a></h3><p>The entity loader resolves requests for new entities and create inputs for
the parser. Creating an input from a filename or an URI string is done
through the xmlNewInputFromFile() routine.  The default entity loader do not
handle the PUBLIC identifier associated with an entity (if any). So it just
calls xmlNewInputFromFile() with the SYSTEM identifier (which is mandatory in
XML).</p><p>If you want to hook up a catalog mechanism then you simply need to
override the default entity loader, here is an example:</p><pre>#include &lt;libxml/xmlIO.h&gt;

xmlExternalEntityLoader defaultLoader = NULL;

xmlParserInputPtr
xmlMyExternalEntityLoader(const char *URL, const char *ID,
                               xmlParserCtxtPtr ctxt) {
    xmlParserInputPtr ret;
    const char *fileID = NULL;
    /* lookup for the fileID depending on ID */

    ret = xmlNewInputFromFile(ctxt, fileID);
    if (ret != NULL)
        return(ret);
    if (defaultLoader != NULL)
        ret = defaultLoader(URL, ID, ctxt);
    return(ret);
}

int main(..) {
    ...

    /*
     * Install our own entity loader
     */
    defaultLoader = xmlGetExternalEntityLoader();
    xmlSetExternalEntityLoader(xmlMyExternalEntityLoader);

    ...
}</pre><h3><a name="Example2" id="Example2">Example of customized I/O</a></h3><p>This example come from <a href="http://xmlsoft.org/messages/0708.html">a
real use case</a>,  xmlDocDump() closes the FILE * passed by the application
and this was a problem. The <a href="http://xmlsoft.org/messages/0711.html">solution</a> was to redefine a
new output handler with the closing call deactivated:</p><ol>
  <li>First define a new I/O output allocator where the output don't close
    the file:
    <pre>xmlOutputBufferPtr
xmlOutputBufferCreateOwn(FILE *file, xmlCharEncodingHandlerPtr encoder) {
    xmlOutputBufferPtr ret;
    
    if (xmlOutputCallbackInitialized == 0)
        xmlRegisterDefaultOutputCallbacks();

    if (file == NULL) return(NULL);
    ret = xmlAllocOutputBuffer(encoder);
    if (ret != NULL) {
        ret-&gt;context = file;
        ret-&gt;writecallback = xmlFileWrite;
        ret-&gt;closecallback = NULL;  /* No close callback */
    }
    return(ret);
} </pre>
  </li>
  <li>And then use it to save the document:
    <pre>FILE *f;
xmlOutputBufferPtr output;
xmlDocPtr doc;
int res;

f = ...
doc = ....

output = xmlOutputBufferCreateOwn(f, NULL);
res = xmlSaveFileTo(output, doc, NULL);
    </pre>
  </li>
</ol><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
22 Aug 2026 4.57 AM
root / root
0755
examples
--
1 Sep 2026 4.57 AM
root / root
0755
html
--
1 Sep 2026 4.57 AM
root / root
0755
tutorial
--
1 Sep 2026 4.57 AM
root / root
0755
APIchunk0.html
29.427 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk1.html
36.489 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk10.html
62.725 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk11.html
31.885 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk12.html
85.548 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk13.html
60.372 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk14.html
44.521 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk15.html
43.243 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk16.html
35.443 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk17.html
47.261 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk18.html
41.937 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk19.html
35.713 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk2.html
39.811 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk20.html
32.051 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk21.html
36.692 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk22.html
56.297 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk23.html
62.358 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk24.html
91.829 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk25.html
40.265 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk26.html
30.105 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk27.html
32.989 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk28.html
56.875 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk29.html
13.169 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk3.html
35.264 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk4.html
35.355 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk5.html
29.066 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk6.html
28.527 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk7.html
32.086 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk8.html
29.587 KB
19 Feb 2022 6.26 PM
root / root
0644
APIchunk9.html
28.027 KB
19 Feb 2022 6.26 PM
root / root
0644
APIconstructors.html
58.107 KB
19 Feb 2022 6.26 PM
root / root
0644
APIfiles.html
321.15 KB
19 Feb 2022 6.26 PM
root / root
0644
APIfunctions.html
212.15 KB
19 Feb 2022 6.26 PM
root / root
0644
APIsymbols.html
318.455 KB
19 Feb 2022 6.26 PM
root / root
0644
DOM.gif
3.092 KB
17 Jan 2022 9.56 PM
root / root
0644
DOM.html
6.464 KB
19 Feb 2022 6.26 PM
root / root
0644
FAQ.html
20.643 KB
19 Feb 2022 6.26 PM
root / root
0644
Libxml2-Logo-180x168.gif
8.003 KB
17 Jan 2022 9.56 PM
root / root
0644
Libxml2-Logo-90x34.gif
2.998 KB
17 Jan 2022 9.56 PM
root / root
0644
XMLinfo.html
6.64 KB
19 Feb 2022 6.26 PM
root / root
0644
XSLT.html
5.642 KB
19 Feb 2022 6.26 PM
root / root
0644
architecture.html
6.704 KB
19 Feb 2022 6.26 PM
root / root
0644
bugs.html
9.995 KB
19 Feb 2022 6.26 PM
root / root
0644
catalog.gif
5.962 KB
17 Jan 2022 9.56 PM
root / root
0644
catalog.html
23.094 KB
19 Feb 2022 6.26 PM
root / root
0644
contribs.html
7.5 KB
19 Feb 2022 6.26 PM
root / root
0644
docs.html
7.448 KB
19 Feb 2022 6.26 PM
root / root
0644
downloads.html
8.096 KB
19 Feb 2022 6.26 PM
root / root
0644
encoding.html
18.961 KB
19 Feb 2022 6.26 PM
root / root
0644
entities.html
9.224 KB
19 Feb 2022 6.26 PM
root / root
0644
example.html
12.8 KB
19 Feb 2022 6.26 PM
root / root
0644
guidelines.html
17.247 KB
17 Jan 2022 9.56 PM
root / root
0644
help.html
6.167 KB
19 Feb 2022 6.26 PM
root / root
0644
index.html
10.421 KB
19 Feb 2022 6.26 PM
root / root
0644
interface.html
8.021 KB
19 Feb 2022 6.26 PM
root / root
0644
intro.html
7.04 KB
19 Feb 2022 6.26 PM
root / root
0644
library.html
14.646 KB
19 Feb 2022 6.26 PM
root / root
0644
libxml.gif
7.512 KB
17 Jan 2022 9.56 PM
root / root
0644
libxml2-api.xml.gz
158.116 KB
31 Aug 2026 10.12 AM
root / root
0644
namespaces.html
8.144 KB
19 Feb 2022 6.26 PM
root / root
0644
news.html
199.008 KB
19 Feb 2022 6.26 PM
root / root
0644
python.html
19.439 KB
19 Feb 2022 6.26 PM
root / root
0644
redhat.gif
0.681 KB
17 Jan 2022 9.56 PM
root / root
0644
searches.html
7.382 KB
17 Jan 2022 9.56 PM
root / root
0644
smallfootonly.gif
2.707 KB
17 Jan 2022 9.56 PM
root / root
0644
structure.gif
5.429 KB
17 Jan 2022 9.56 PM
root / root
0644
threads.html
6.948 KB
19 Feb 2022 6.26 PM
root / root
0644
tree.html
7.728 KB
19 Feb 2022 6.26 PM
root / root
0644
upgrade.html
12.37 KB
19 Feb 2022 6.26 PM
root / root
0644
w3c.png
1.98 KB
17 Jan 2022 9.56 PM
root / root
0644
xml.html
336.801 KB
19 Feb 2022 6.26 PM
root / root
0644
xmlcatalog_man.html
13.742 KB
19 Feb 2022 6.26 PM
root / root
0644
xmldtd.html
13.327 KB
19 Feb 2022 6.26 PM
root / root
0644
xmlio.html
12.497 KB
19 Feb 2022 6.26 PM
root / root
0644
xmllint.html
22.765 KB
19 Feb 2022 6.26 PM
root / root
0644
xmlmem.html
14.104 KB
19 Feb 2022 6.26 PM
root / root
0644
xmlreader.html
19.666 KB
17 Jan 2022 9.56 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF