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

156 lines
4.1 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!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>_STRNCPY_SPP()--Copy Character String for i5/OS PASE</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 V2DCIJB on 23 Nov 1999 -->
<!-- Edited by Kersten Jan 02 -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<a name="Top_Of_Page"></a>
<h2>_STRNCPY_SPP()--Copy Character String for i5/OS PASE</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;Syntax
<pre>
#include &lt;as400_protos.h&gt;
void _STRNCPY_SPP(const ILEpointer *<em>target</em>,
const ILEpointer *<em>source</em>,
size_t <em>length</em>);
</pre>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Library: Standard C Library (libc.a)<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p><strong>Note:</strong> This function can only be used in an i5/OS PASE
program. See <a href="../rzalf/rzalfintro.htm">i5/OS PASE</a> for more
information about creating i5/OS PASE programs.</p>
<p>The <strong>_STRNCPY_SPP()</strong> function copies a null-terminated
character string. It performs the same operation as the
<strong>strncpy</strong> function, but uses 16-byte tagged space pointers to
locate the source and target strings.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong>target</strong></dt>
<dd>(Output) Pointer to target buffer. Target is the 16-byte aligned address of
a tagged space pointer to the target buffer.<br>
<br>
</dd>
<dt><strong>source</strong></dt>
<dd>(Input) Pointer to source string. source is the 16-byte aligned address of
a tagged space pointer to the source character string.<br>
<br>
</dd>
<dt><strong>length</strong></dt>
<dd>(Input) Specifies the maximum number of bytes to copy between the source
and target. If the source string is too long, then only the specified number of
bytes are copied and the target string is not terminated with a null. If the
source string is too short, the copy is padded with nulls to fill the target
buffer.<br>
<br>
</dd>
</dl>
<br>
<h3>Authorities</h3>
<p><strong>_STRNCPY_SPP</strong> requires no authority.</p>
<br>
<h3>Error Conditions</h3>
<p>Any error is reported with an i5/OS exception message that the system
converts to an i5/OS PASE signal. See <a href="pase_signals.htm">i5/OS PASE
Signal Handling</a> for information about handling i5/OS exceptions.</p>
<br>
<h3>Usage Notes</h3>
<ol>
<li><strong>_STRNCPY_SPP</strong> can copy between any memory areas addressable
through tagged space pointers, which need not be in the i5/OS PASE address
space.<br>
<br>
</li>
<li><strong>_STRNCPY_SPP</strong> is implemented with a kernel system call, so
it generally runs slower than <strong>strncpy</strong>.</li>
</ol>
<br>
<h3>Related Information</h3>
<ul>
<li><a href="pase__cvtspp.htm">_CVTSPP()--Convert Space Pointer for i5/OS
PASE</a><br>
</li>
<li><a href="pase__setspp.htm">_SETSPP()--Set Space Pointer for i5/OS
PASE</a>
</li>
<li><a href="pase__setsppm.htm">_SETSPPM()--Set Multiple Space Pointers for i5/OS
PASE</a></li>
</ul>
<br>
<hr>
API introduced: V4R5
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"pase1.htm">i5/OS PASE APIs</a> | <a href="aplist.htm">APIs by category</a>
</td>
</tr>
</table>
</center>
</body>
</html>