.\" Man page generated from reStructuredText
.\" by the Docutils 0.23 manpage writer.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "PMIX_ARGV_COPY" "3" "Sep 27, 2026" "" "OpenPMIx"
.sp
\fBPMIx_Argv_copy\fP — Produce a deep copy of a NULL\-terminated
\fBargv\fP\-style array.
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.EX
#include <pmix.h>

char **PMIx_Argv_copy(char **argv);
.EE
.UNINDENT
.UNINDENT
.SS Python Syntax
.sp
No Python equivalent
.SH INPUT PARAMETERS
.INDENT 0.0
.IP \(bu 2
\fBargv\fP: Pointer to a NULL\-terminated \fBargv\fP\-style array, or \fBNULL\fP\&.
.UNINDENT
.SH DESCRIPTION
.sp
Create and return an independent deep copy of \fBargv\fP\&. A new array is
allocated and each contained string is duplicated into it, so the copy shares
no storage with the original; modifying or freeing one array has no effect on
the other. The duplicated entries preserve the order and content of the
source, and the new array is NULL\-terminated.
.sp
If \fBargv\fP points to a valid but empty array (its first element is
\fBNULL\fP), a valid empty array is returned rather than \fBNULL\fP\&.
.sp
The returned array and all of its strings are owned by the caller and must be
released with PMIx_Argv_free(3) \%<#\:man3-pmix-argv-free>\&.
.SH RETURN VALUE
.sp
Returns a newly allocated NULL\-terminated deep copy of the array. Returns
\fBNULL\fP if \fBargv\fP is \fBNULL\fP, or if an internal allocation fails during
the copy.
.SH EXAMPLES
.INDENT 0.0
.INDENT 3.5
.sp
.EX
char **argv = PMIx_Argv_split(\(dqa:b:c\(dq, \(aq:\(aq);
char **dup  = PMIx_Argv_copy(argv);

PMIx_Argv_free(argv);   /* dup remains valid */
PMIx_Argv_free(dup);
.EE
.UNINDENT
.UNINDENT
.sp
\fBSee also:\fP
.INDENT 0.0
.INDENT 3.5
PMIx_Argv_split(3) \%<#\:man3-pmix-argv-split>,
PMIx_Argv_append_nosize(3) \%<#\:man3-pmix-argv-append-nosize>,
PMIx_Argv_count(3) \%<#\:man3-pmix-argv-count>,
PMIx_Argv_free(3) \%<#\:man3-pmix-argv-free>
.UNINDENT
.UNINDENT
.SH Copyright
2014-2026, OpenPMIx Community
.\" End of generated man page.
