ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzalf_5.4.0.1/rzalffilesystems.htm

118 lines
7.9 KiB
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 lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="File systems" />
<meta name="abstract" content="i5/OS PASE programs can access any file or resource that is accessible through the integrated file system, including objects in the QSYS.LIB and QOPT file systems." />
<meta name="description" content="i5/OS PASE programs can access any file or resource that is accessible through the integrated file system, including objects in the QSYS.LIB and QOPT file systems." />
<meta name="DC.Relation" scheme="URI" content="rzalfinteract.htm" />
<meta name="DC.Relation" scheme="URI" content="rzalfdataconv.htm" />
<meta name="DC.Relation" scheme="URI" content="../ifs/rzaaxkickoff.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2000, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2000, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzalffilesystems" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>File systems</title>
</head>
<body id="rzalffilesystems"><a name="rzalffilesystems"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">File systems</h1>
<div><p><span class="keyword">i5/OS™</span> PASE programs
can access any file or resource that is accessible through the integrated
file system, including objects in the QSYS.LIB and QOPT file systems.</p>
<div class="section"><h4 class="sectiontitle">Buffered input and output</h4><p>Input
and output to and from external devices is buffered on <span class="keyword">i5/OS</span>;
it is handled by input and output processors that deal with blocks of data.
Conversely, operating systems, such as AIX<sup>®</sup> and Linux<sup>®</sup>, typically operate with character-by-character
(unbuffered) input and output. On <span class="keyword">i5/OS</span>,
only certain input and output signals (for example, the Enter key, function
keys, and system request) send an interrupt to the system.</p>
</div>
<div class="section"><h4 class="sectiontitle">Data conversion support</h4><p><span class="keyword">i5/OS</span> PASE programs pass ASCII (or
UTF-8) path names to the <span class="apiname">open()</span> function to open byte stream
files, where the name is automatically converted to the encoding scheme used
by <span class="keyword">i5/OS</span>, but any data
read or written from the open file is not converted.</p>
</div>
<div class="section"><h4 class="sectiontitle">Use of file descriptors</h4><p>The <span class="keyword">i5/OS</span> PASE run time normally uses
ILE C run time support for files stdin, stdout, and stderr, which provide
consistent behavior for <span class="keyword">i5/OS</span> PASE
and ILE programs.</p>
</div>
<div class="section"><p><span class="keyword">i5/OS</span> PASE
and ILE C use the same streams for standard input and output (stdin, stdout,
and stderr). <span class="keyword">i5/OS</span> PASE
programs always access standard input and output using file descriptors 0,
1, and 2. ILE C, however, does not always use integrated file descriptors
for stdin, stdout, and stderr, so <span class="keyword">i5/OS</span> PASE
provides a mapping between <span class="keyword">i5/OS</span> PASE
file descriptors and descriptors in the integrated file system. Because of
this mapping, <span class="keyword">i5/OS</span> PASE
programs and ILE C programs can use different descriptor numbers to access
the same open file.</p>
<p>You can use the <span class="keyword">i5/OS</span> PASE
extension on the <tt>fcntl</tt> function, F_MAP_XPFFD, to assign an <span class="keyword">i5/OS</span> PASE descriptor to an ILE
number. This is useful if your <span class="keyword">i5/OS</span> PASE
application needs to do file operations for an ILE descriptor that was not
created by <span class="keyword">i5/OS</span> PASE.</p>
<p>An i5/OS system-unique
extension to the <span class="apiname">fstatx()</span> function, STX_XPFFD_PASE, allows
an <span class="keyword">i5/OS</span> PASE program to
determine the integrated file system descriptor number for an <span class="keyword">i5/OS</span> PASE
file descriptor. Special values (negative numbers) are returned for any <span class="keyword">i5/OS</span> PASE descriptor attached to
ILE C runtime support for files stdin, stdout, and stderr.</p>
<p>If the ILE
environment variable QIBM_USE_DESCRIPTOR_STDIO is set to Y or I when the Qp2RunPase()
API is called, <span class="keyword">i5/OS</span> PASE
synchronizes file descriptors 0, 1, and 2 with the integrated file system
so that both <span class="keyword">i5/OS</span> PASE
and ILE C programs use the same descriptor numbers for files stdin, stdout,
and stderr. When operating in this mode, if either <span class="keyword">i5/OS</span> PASE
code or ILE C code closes or reopens file descriptor 0, 1, or 2, the change
affects stdin, stdout, and stderr processing for both environments.</p>
<p><span class="keyword">i5/OS</span> PASE run time generally does
no character encoding conversion for data read or written through <span class="keyword">i5/OS</span> PASE file descriptors (including
sockets), except that ASCII-to-EBCDIC conversion is done (between the <span class="keyword">i5/OS</span> PASE CCSID and job default
CCSID) for data read from ILE C stdin or written to ILE C stdout and stderr.</p>
<p>Two
environment variables control the automatic translation of stdin, stdout,
and stderr:</p>
<ul><li>The variable that generally applies is QIBM_USE_DESCRIPTOR_STDIO. When
set to Y, the ILE runtime uses file descriptor 0, 1, or 2 for these files.</li>
<li>The <span class="keyword">i5/OS</span> PASE
system-specific environment variable is QIBM_PASE_DESCRIPTOR_STDIO. It has
values of B for binary and T for text.</li>
</ul>
<p>ASCII-to-EBCDIC conversion for <span class="keyword">i5/OS</span> PASE
stdin, stdout, and stderr is disabled if the ILE environment variable QIBM_USE_DESCRIPTOR_STDIO
is set to Y and QIBM_PASE_DESCRIPTOR_STDIO is set to B (allowing binary data
to be read from stdin and written to stdout or stderr). The default for QIBM_PASE_DESCRIPTOR_STDIO
is T for text. This value causes translation of EBCDIC to ASCII.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzalfinteract.htm" title="As you customize your i5/OS PASE programs to use i5/OS functions, you need to consider the ways in which your program will interact with them.">How i5/OS PASE programs interact with i5/OS</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzalfdataconv.htm" title="Most operating systems, such as AIX and Linux, use ASCII character encoding. Most i5/OS functions use EBCDIC character encoding. You can specify a coded character set identifier (CCSID) value for some i5/OS object types to identify a specific encoding for character data in the object.">Data encoding</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="../ifs/rzaaxkickoff.htm">Integrated file system</a></div>
</div>
</div>
</body>
</html>