ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzahw_5.4.0.1/rzahwfscco.htm

62 lines
3.9 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="File system considerations for multithreaded programming" />
<meta name="abstract" content="You should consider several topics when working with file systems in multithreaded programs." />
<meta name="description" content="You should consider several topics when working with file systems in multithreaded programs." />
<meta name="DC.Relation" scheme="URI" content="rzahwas4co.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzahwfsc-fscco" />
<meta name="DC.Language" content="en-us" />
<!-- 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. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>File system considerations for multithreaded programming</title>
</head>
<body id="rzahwfsc-fscco"><a name="rzahwfsc-fscco"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">File system considerations for multithreaded programming</h1>
<div><p>You should consider several topics when working with file systems
in multithreaded programs. </p>
<div class="section"><ul><li>Threadsafe file systems:<p>The Root, QOpenSys, User-Defined (UDFS), QNTC,
QSYS.LIB, QOPT, and QLANSrv file systems are threadsafe and do not have any
restrictions. The QDLS, NFS, QFileSvr.400, and QNetWare file systems are not
threadsafe. If you try to use an integrated file system application programming
interface (API) or command on a file or file descriptor that represents an
object in a file system that is not threadsafe, it fails with ENOTSAFE. This
failure occurs only when multiple threads are in a job.</p>
<p>An attempt to
spawn a program from a job that has multiple threads fails with ENOTSAFE if
you inherit the current working directory or open file descriptors that represent
files in a file system that is not threadsafe.</p>
</li>
<li>Integrated file system APIs:<p>All of the integrated file system APIs
are threadsafe when directed to an object that resides in a threadsafe file
system. If you do not know the file system where an object resides, you can
query the path to see if the threadsafe integrated file system interfaces
can safely access it. You can use the <span class="apiname">pathconf()</span>, <span class="apiname">fpathconf()</span>, <span class="apiname">statvfs()</span>,
and <span class="apiname">fstatvfs()</span> APIs to determine whether a path or file
descriptor refers to an object in one of the threadsafe file systems.</p>
</li>
</ul>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzahwas4co.htm" title="All programs have at least one thread, referred to as the initial thread. In a program with multiple threads, each thread runs its code independently of the other threads in the program.">Threads on i5/OS</a></div>
</div>
</div>
</body>
</html>