<!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>QlgPathconf()--Get Configurable Path Name Variables (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--> <!-- Change History: --> <!-- 011022 JTROUS Changes from API Review 1, V5R2 --> <!-- 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>QlgPathconf()--Get Configurable Path Name Variables (using NLS-enabled path name)</h2> <div class="box" style="width: 60%;"> <br> Syntax<br> <pre> #include <unistd.h> long QlgPathconf(Qlg_Path_Name_T <em>*path</em>, int <em>name</em>); </pre> Service Program Name: QP0LLIB1<br> <!-- iddvc RMBR --> <br> Default Public Authority: *USE<br> <!-- iddvc RMBR --> <br> Threadsafe: Conditional; see Usage Notes for <a href="pathconf.htm">pathconf()</a>.<br> <!-- iddvc RMBR --> <br> </div> <p>The <strong>QlgPathconf()</strong> function, like the <strong> pathconf()</strong> function, lets an application determine the value of a configuration variable (<em>name</em>) associated with a particular file or directory (<em>path</em>). The difference is that the <strong> QlgPathconf()</strong> function takes a pointer to a Qlg_Path_Name_T structure, while <strong>pathconf()</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, return values, and related information, see <a href="pathconf.htm">pathconf()</a>--Get Configurable Path Name Variables.</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 for which the value of the configuration variable is requested. 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="fpathcon.htm">fpathconf()</a>--Get Configurable Path Name Variables by Descriptor<br> <br> </li> <li><a href="pathconf.htm">pathconf()</a>--Get Configurable Path Name Variables<br> <br> </li> <li><a href="chownu.htm">QlgChown()</a>--Change Owner and Group of File (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 determines the maximum number of bytes in a file name:</p> <pre> #include <stdio.h> #include <unistd.h> #include <errno.h> main() { long result; #define mypath "/" const char US_const[3]= "US"; const char Language_const[4] ="ENU"; typedef struct pnstruct { Qlg_Path_Name_T qlg_struct; char pn[100]; /* This array size must be >= the */ /* length of the path name or must */ /* be a pointer to the path name. */ }; struct pnstruct path; /***************************************************************/ /* Initialize Qlg_Path_Name_T parameters */ /***************************************************************/ memset((void*)&path, 0x00, sizeof(struct pnstruct)); path.qlg_struct.CCSID = 37; memcpy(path.qlg_struct.Country_ID,US_const,2); memcpy(path.qlg_struct.Language_ID,Language_const,3); path.qlg_struct.Path_Type = QLG_CHAR_SINGLE; path.qlg_struct.Path_Length = sizeof(mypath)-1; path.qlg_struct.Path_Name_Delimiter[0] = '/'; memcpy(path.pn,mypath,sizeof(mypath)-1); errno = 0; puts("examining NAME_MAX limit for root filesystem"); if ((result = QlgPathconf((Qlg_Path_Name_T *)&path, _PC_NAME_MAX)) == -1) if (errno == 0) puts("There is no limit to NAME_MAX."); else perror("QlgPathconf() error"); else printf("NAME_MAX is %ld\n", result); } </pre> <p><strong>Output:</strong></p> <pre> examining NAME_MAX limit for root filesystem NAME_MAX is 255 </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>