<!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>QlgAccessx()--Determine File Accessibility for a Class of Users (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 --> <!-- Change History: --> <!-- 010314 JKUGEL: created in V5R2, DCR 98686 --> <!-- 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>QlgAccessx()--Determine File Accessibility for a Class of Users (using NLS-enabled path name)</h2> <div class="box" style="width: 70%;"> <br> Syntax<br> <pre> #include <unistd.h> int QlgAccessx(const Qlg_Path_Name_T <em>*path</em>, int <em>amode</em>, int <em>who</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="accessx.htm">accessx()</a>.<br> <!-- iddvc RMBR --> <br> </div> <p>The <strong>QlgAccessx()</strong> function, like the <strong> accessx()</strong> function, determines whether a file can be accessed in a particular manner by a specified class of users. The difference is that the <strong>QlgAccessx()</strong> function takes a pointer to a Qlg_Path_Name_T structure, while <strong>accessx()</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="accessx.htm">accessx()</a>--Determine File Accessibility for a Class of Users.</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 the file to be checked for accessibility. 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="access.htm">access()</a>--Determine File Accessiblity </li> <li><a href="accessx.htm">accessx()</a>--Determine File Accessibility for a Class of Users </li> <li><a href="faccessx.htm">faccessx()</a>--Determine File Accessibility for a Class of Users </li> <li><a href="accessu.htm">QlgAccess()</a>--Determine File Accessibility (using NLS-enabled path name) </li> <li><a href="chmodu.htm">QlgChmod()</a>--Change File Authorizations (using NLS-enabled path name) </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 determines how a file is accessed:</p> <pre> #include <stdio.h> #include <unistd.h> main() { /****************************************************************/ /* Defininitons */ /****************************************************************/ #define mypath "/myfile" 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 this 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); if (QlgAccessx((Qlg_Path_Name_T *)&path, R_OK, ACC_OTHERS) == 0) printf("Someone besides the owner has read access to '%s'\n", mypath); if (QlgAccessx((Qlg_Path_Name_T *)&path, W_OK, ACC_OTHERS) == 0) printf("Someone besides the owner has write access to '%s'\n", mypath); if (QlgAccessx((Qlg_Path_Name_T *)&path, X_OK, ACC_OTHERS) == 0) printf("Someone besides the owner has search access to '%s'\n", mypath); } </pre> <p><strong>Output:</strong></p> <p>In this example <strong>QlgAccessx()</strong> was called on '/myfile'. The following would be the output if someone other than the owner has *R authority, someone besides the owner has *W authority, and noone other than the owner has *X authority.</p> <pre> Someone besides the owner has read access to '/' Someone besides the owner has write access to '/' </pre> <hr> API introduced: V5R2 <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>