ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/openu.htm

165 lines
4.7 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>QlgOpen()--Open a File (using NLS-enabled path name)</title>
<!-- Begin Header Records -->
<!-- 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. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- Created by Yvonne Griffin for V5R1-->
<!-- This file has undergone html cleanup June 2002 by JET -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!--Java sync-link-->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<a name="Top_Of_Page"></a>
<h2>QlgOpen()--Open a File (using NLS-enabled path name)</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;Syntax<br>
<pre>
#include &lt;fcntl.h&gt;
#include &lt;stdio.h&gt;
#include &lt;Qp0lstdi.h&gt;
int QlgOpen(Qlg_Path_Name_T <em>*Path_Name</em>,
int <em>oflag</em>, . . .);
</pre>
&nbsp;&nbsp;Service Program Name: QP0LLIB1<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Conditional; see Usage Notes for <a href="open.htm">open()</a> API.<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>QlgOpen()</strong> function, like the <strong>open()</strong>
function, opens a file or creates a new, empty file whose name is defined by
<em>path</em> and returns a number called a <strong>file descriptor</strong>.
The difference is that the <strong>QlgOpen()</strong> function takes a pointer
to a Qlg_Path_Name_T structure, while <strong>open()</strong> takes a pointer
to a character string.</p>
<p>Limited information on the <em>path</em> parameter is provided here. For
more information on the <em>path</em> parameter and for a discussion of other
parameters, authorities required, usage notes, return values, and related
information, see <a href="open.htm">open()</a>--Open a File.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong><em>path</em></strong></dt>
<dd>(Input) A pointer to a Qlg_Path_Name_T structure that contains a path name
or a pointer to a path name of the file to be opened. For more information on
the Qlg_Path_Name_T structure, see <a href="../apiref/pns.htm">Path name format</a>.</dd>
</dl>
<br>
<h3>Related Information</h3>
<ul>
<li><a href="open.htm">open()</a>--Open a File<br>
<br>
</li>
<li><a href="creatu.htm">QlgCreat()</a>--Create or Rewrite File (using
NLS-enabled path name)<br>
<br>
</li>
<li><a href="open64u.htm">QlgOpen64()</a>--Open File (large file enabled and
using NLS-enabled path name)<br>
<br>
</li>
<li><a href="statu.htm">QlgStat()</a>--Get File Information (using
NLS-enabled path name)</li>
</ul>
<br>
<h3>Example</h3>
<p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a>
for information pertaining to code examples.</p>
<p>The following example creates and opens an output file for exclusive access.
This program was stored in a source file with CCSID 37, so the constant string
"newfile" will be compiled in CCSID 37. Therefore, the language and country or
region specified are United States English, and the CCSID specified is 37.</p>
<pre>
#include &lt;fcntl.h&gt;
#include &lt;stdio.h&gt;
#include &lt;Qp0lstdi.h&gt;
main()
{
int fildes;
const char US_const[3]= "US";
const char Language_const[4]="ENU";
struct pnstruct
{
Qlg_Path_Name_T qlg_struct;
char pn[7];
};
struct pnstruct pns;
struct pnstruct *pns_ptr = NULL;
char fn[]="newfile";
memset((void*)&amp;pns, 0x00, sizeof(struct pnstruct));
pns.qlg_struct.CCSID = 37;
memcpy(pns.qlg_struct.Country_ID,US_const,2);
memcpy(pns.qlg_struct.Language_ID,Language_const,3);;
pns.qlg_struct.Path_Type = 0;
pns.qlg_struct.Path_Length = sizeof(fn) - 1;
pns.qlg_struct.Path_Name_Delimiter[0] = '/';
memcpy(pns.pn,fn,sizeof(fn)-1);
pns_ptr = &amp;pns;
if(fildes = QlgOpen((Qlg_Path_Name_T *)pns_ptr,
O_WRONLY|O_CREAT|O_EXCL, S_IRWXU)) == -1)
{
perror("QlgOpen() error");
}
}
</pre>
<hr>
API introduced: V5R1
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>