Integrated File System
Integrated File System
7.4
IBM
Note
Before using this information and the product it supports, read the information in “Notices” on page
153.
This edition applies to IBM i 7.4 (product number 5770-SS1) and to all subsequent releases and modifications until
otherwise indicated in new editions. This version does not run on all reduced instruction set computer (RISC) models nor
does it run on CISC models.
This document may contain references to Licensed Internal Code. Licensed Internal Code is Machine Code and is
licensed to you under the terms of the IBM License Agreement for Machine Code.
© Copyright International Business Machines Corporation 1999, 2019.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
iii
Use of integrated file system APIs in a user-defined file system..................................................36
Graphical user interface for a user-defined file system................................................................ 37
Creating an integrated file system user-defined file system......................................................... 37
Deleting an integrated file system user-defined file system......................................................... 37
Displaying an integrated file system user-defined file system......................................................38
Mounting an integrated file system user-defined file system....................................................... 38
Unmounting an integrated file system user-defined file system.................................................. 38
Saving and restoring an integrated file system user-defined file system..................................... 38
Object changes journaling in a user-defined file system...............................................................39
User-defined file system and independent auxiliary storage pools..............................................39
Library file system (QSYS.LIB)............................................................................................................. 39
QPWFSERVER authorization list in the QSYS.LIB file system........................................................40
File-handling restrictions in the QSYS.LIB file system.................................................................. 40
Support for user spaces in the QSYS.LIB file system.................................................................... 40
Support for save files in the QSYS.LIB file system.........................................................................40
Case-sensitivity in the QSYS.LIB file system................................................................................. 41
Path names in the QSYS.LIB file system........................................................................................ 41
Links in the QSYS.LIB file system................................................................................................... 41
Use of integrated file system commands and displays in the QSYS.LIB file system.................... 42
Use of integrated file system APIs in the QSYS.LIB file system.................................................... 42
Independent ASP QSYS.LIB.................................................................................................................42
QPWFSERVER authorization list in the independent ASP QSYS.LIB file system.......................... 43
File handling restrictions in the independent ASP QSYS.LIB file system......................................43
Support for user spaces in the independent ASP QSYS.LIB file system....................................... 43
Support for save files in the independent ASP QSYS.LIB file system........................................... 43
Case-sensitivity in the independent ASP QSYS.LIB file system.................................................... 44
Path names in the independent ASP QSYS.LIB file system...........................................................44
Links in the independent ASP QSYS.LIB file system......................................................................44
Use of integrated file system commands and displays in the independent ASP QSYS.LIB file
system........................................................................................................................................45
Use of integrated file system APIs in the independent ASP QSYS.LIB file system.......................45
Document library services file system (QDLS).................................................................................... 46
Integrated file system and HFS in the QDLS file system............................................................... 46
User enrollment in the QDLS file system........................................................................................46
Case sensitivity in the QDLS file system.........................................................................................46
Path names in the QDLS file system...............................................................................................46
Links in the QDLS file system..........................................................................................................47
Use of integrated file system commands and displays in the QDLS file system...........................47
Use of integrated file system APIs in the QDLS file system...........................................................48
Optical file system (QOPT)................................................................................................................... 48
Integrated file system and HFS in the QOPT file system...............................................................48
Case-sensitivity in the QOPT file system....................................................................................... 49
Path names in the QOPT file system.............................................................................................. 49
Links in the QOPT file system......................................................................................................... 49
Use of integrated file system commands and displays in the QOPT file system.......................... 49
Use of integrated file system APIs in the QOPT file system.......................................................... 50
IBM i NetClient file system (QNTC)......................................................................................................50
Authorities and ownership in the QNTC file system...................................................................... 51
Case sensitivity in the QNTC file system........................................................................................ 51
Path names in the QNTC file system.............................................................................................. 51
Links in the QNTC file system......................................................................................................... 52
Use of integrated file system commands and displays in the QNTC file system.......................... 52
Use of integrated file system APIs in the QNTC file system.......................................................... 52
QNTC environment variables..........................................................................................................53
Creating directories in the QNTC file system................................................................................. 54
Use of integrated file system APIs in the Network File System...............................................55
Enabling QNTC file system for Network Authentication Service................................................... 55
IBM i file server file system (QFileSvr.400)......................................................................................... 56
iv
Case-sensitivity in the QFileSvr.400 file system............................................................................56
Path names in the QFileSvr.400 file system...................................................................................56
Communications in the QFileSvr.400 file system.......................................................................... 57
Security and object authority in the QFileSvr.400 file system.......................................................59
Securing QFileSvr.400 file system connections.............................................................................59
Links in the QFileSvr.400 file system............................................................................................. 60
Use of integrated file system commands and displays in the QFileSvr.400 file system.............. 61
Use of integrated file system APIs in the QFileSvr.400 file system.............................................. 61
Network File System (NFS).................................................................................................................. 62
Characteristics of the Network File System................................................................................... 62
Variations of servers and clients in the Network File System....................................................... 62
Links in the Network File System................................................................................................... 63
Use of integrated file system commands in the Network File System..........................................63
Use of integrated file system APIs in the Network File System.................................................... 64
Comparison of Network File System version 4 to Prior Versions.................................................. 65
Setting up a network for RPCSEC-GSS...........................................................................................65
Identity mapping.............................................................................................................................67
Accessing the integrated file system.........................................................................................................67
Accessing using menus and displays...................................................................................................68
Accessing using CL commands............................................................................................................ 69
Path name rules for CL commands and displays........................................................................... 72
Working with output of the RTVDIRINF and PRTDIRINF commands......................................... 74
Accessing the data of RTVDIRINF........................................................................................... 89
Using the data of RTVDIRINF...................................................................................................89
Collecting and analyzing folder attributes with IBM Navigator for i........................................ 90
Accessing using APIs........................................................................................................................... 91
Accessing using IBM i (SQL) services.................................................................................................. 91
Accessing using a PC............................................................................................................................ 91
Accessing using IBM Navigator for i.................................................................................................... 92
Accessing using IBM i NetServer......................................................................................................... 92
Accessing using File Transfer Protocol................................................................................................ 93
Integrated file system conversion.............................................................................................................94
Converting directories from *TYPE1 to *TYPE2.................................................................................. 94
Overview of *TYPE1 to *TYPE2 conversion................................................................................... 94
Directory conversion considerations..............................................................................................95
Conversion status determination..............................................................................................95
User profiles creation................................................................................................................ 96
Objects renamed....................................................................................................................... 96
User profile considerations....................................................................................................... 96
Auxiliary storage requirements.................................................................................................97
Tips: Symbolic link.................................................................................................................... 97
Tips: Independent ASP............................................................................................................. 98
Tips: Saving and restoring......................................................................................................... 98
Tips: Reclaiming integrated file system objects.......................................................................98
Integrated file system scanning................................................................................................98
Converting names to support additional characters........................................................................... 99
Overview of automatic name conversion....................................................................................... 99
Name conversion considerations.................................................................................................100
Conversion status determination........................................................................................... 100
Objects renamed.....................................................................................................................100
User profile considerations.....................................................................................................100
Tips: Symbolic link.................................................................................................................. 100
Tips: Independent ASP........................................................................................................... 100
Tips: Saving and restoring.......................................................................................................101
Tips: Reclaiming integrated file system objects.....................................................................101
Journaling objects................................................................................................................................... 101
Journaling overview........................................................................................................................... 101
Journal management....................................................................................................................101
v
Objects you should journal...........................................................................................................102
Journaled integrated file system objects.....................................................................................102
Journaled operations....................................................................................................................103
Special considerations for journal entries................................................................................... 104
Considerations for multiple hard links and journaling.................................................................105
Starting journaling..............................................................................................................................105
Changing journaling............................................................................................................................106
Ending journaling................................................................................................................................106
Reclaim operation of the "root" (/), QOpenSys, and user-defined file systems.................................... 106
Reclaim Object Links (RCLLNK) and Reclaim Storage (RCLSTG) commands
comparison....................................................................................................................................107
Reclaim Object Links (RCLLNK) command........................................................................................108
Re-creation of integrated file system provided objects....................................................................108
Examples: Reclaim Object Links (RCLLNK) command.........................................................109
Example: Correcting problems for an object............................................................................... 109
Example: Correcting problems that exist in a directory subtree.................................................110
Example: Finding all damaged objects in the "root" (/), QOpenSys, and mounted user-
defined file systems.................................................................................................................110
Example: Deleting all damaged objects in the "root" (/), QOpenSys, and mounted user-
defined file systems.................................................................................................................110
Example: Running multiple RCLLNK commands to quickly reclaim all objects in the "root"
(/), QOpenSys, and mounted user-defined file systems........................................................ 110
Programming support..............................................................................................................................111
Copying data between stream files and database files.................................................................... 111
Copying data using CL commands............................................................................................... 111
Copying data using APIs...............................................................................................................112
Copying data using data-transfer functions.................................................................................112
Transferring data from a database file to a stream file.......................................................... 113
Transferring data from a stream file to a database file.......................................................... 113
Transferring data into a newly created database file definition and file............................... 114
Creating a format description file........................................................................................... 114
Copying data between stream files and save files............................................................................ 114
Performing operations using APIs..................................................................................................... 115
ILE C functions..............................................................................................................................122
Large file support.......................................................................................................................... 122
Path name rules for APIs..............................................................................................................123
File descriptor............................................................................................................................... 124
Security......................................................................................................................................... 125
Socket support................................................................................................................................... 125
Naming and international support.....................................................................................................126
Data conversion..................................................................................................................................126
Example: Integrated file system C functions.................................................................................... 127
Working with files and folders using IBM Navigator for i........................................................................131
Creating a folder.................................................................................................................................131
Removing a file or folder.................................................................................................................... 132
Moving files or folders to another file system................................................................................... 133
Setting permissions............................................................................................................................134
Setting up file text conversion........................................................................................................... 135
Sending a file or folder to another system.........................................................................................135
Changing options for sending a file or folder.....................................................................................136
Creating a file share........................................................................................................................... 136
Changing a file share.......................................................................................................................... 137
Removing a file share......................................................................................................................... 137
Creating a new user-defined file system........................................................................................... 138
Mounting a user-defined file system................................................................................................. 138
Unmounting a user-defined file system............................................................................................ 139
Working with dynamically mounted file systems..............................................................................139
Setting whether objects should be scanned or not...........................................................................141
vi
Checking in objects............................................................................................................................ 142
Checking out objects..........................................................................................................................143
Downloading a file or folder............................................................................................................... 144
Uploading a file...................................................................................................................................145
Navigate directly to an integrated file system folder........................................................................ 145
Save integrated file system folder as a favorite................................................................................ 145
Transport-independent remote procedure call...................................................................................... 146
Network selection APIs..................................................................................................................... 146
Name-to-address translation APIs................................................................................................... 147
eXternal Data Representation (XDR) APIs........................................................................................ 147
Authentication APIs........................................................................................................................... 149
Transport-independent RPC (TI-RPC) APIs...................................................................................... 149
TI-RPC simplified APIs................................................................................................................. 149
TI-RPC top-level APIs.................................................................................................................. 149
TI-RPC intermediate-level APIs...................................................................................................150
TI-RPC expert-level APIs............................................................................................................. 150
Other TI-RPC APIs........................................................................................................................ 150
Related information for integrated file system....................................................................................... 151
Notices..............................................................................................................153
Programming interface information........................................................................................................ 154
Trademarks.............................................................................................................................................. 154
Terms and conditions.............................................................................................................................. 155
vii
viii
Integrated file system
The integrated file system is a part of the IBM i operating system that supports stream input/output and
storage management similar to personal computer and UNIX operating systems, while providing you with
an integrating structure over all information stored in the system.
Note: By using the code examples, you agree to the terms of the “Code license and disclaimer
information” on page 151.
Figure 1. A structure over all information stored in the IBM i operating system
Related concepts
File systems
System i Users
Applications
Directory
A directory is a special object that is used to locate objects by names that you specify. Each directory
contains a list of objects that are attached to it. That list can include other directories.
The integrated file system provides a hierarchical directory structure for you to access all objects in
your system. You might think of this directory structure as an inverse tree where the root is at the top
and the branches below. The branches represent directories in the directory hierarchy. These directory
branches have subordinate branches that are called subdirectories. Attached to the various directory and
subdirectory branches are objects such as files. Locating an object requires specifying a path through the
directories to the subdirectory to which the object is attached. Objects that are attached to a particular
directory are sometimes described as being in that directory.
A particular directory branch, along with all of its subordinate branches (subdirectories) and all of the
objects that are attached to those branches, is referred to as a subtree. Each file system is a major subtree
in the integrated file system directory structure. In the QSYS.LIB and independent ASP QSYS.LIB file
systems' subtrees, a library is handled the same way as a subdirectory. Objects in a library are handled
like objects in a subdirectory. Because database files contain objects (database file members), they
are handled like subdirectories rather than objects. In the document library services file system (QDLS
subtree), folders are handled like subdirectories and documents in folders are handled like objects in a
subdirectory.
Because of differences in file systems, the operations you can perform in one subtree of the directory
hierarchy may not work in another subtree.
The integrated file system directory support is similar to the directory support that is provided by the DOS
file system. In addition, it provides features typical of UNIX systems, such as the ability to store a file only
once but access it through multiple paths by using links.
File systems and objects are branches on the integrated file system directory tree. See the following figure
for an example of an integrated file system directory tree.
Home directory
The home directory is used as the current directory when you sign on to the system. The name of the
home directory is specified in your user profile.
When your job is started, the system looks in your user profile for the name of your home directory. If
a directory by that name does not exist on the system, the home directory is changed to the "root" (/)
directory.
Typically, the system administrator who creates the user profile for a user also creates the user's home
directory. Creating individual home directories for each user under the /home directory is preferable.
The /home directory is a subdirectory under the "root" (/) directory. The system default expects the name
of the home directory of a user to be the same name as the user profile.
For example, the command CRTUSRPRF USRPRF(John) HOMEDIR(*USRPRF) will assign the home
directory for John to /home/JOHN. If the directory /home/JOHN does not exist, the "root" (/) directory
becomes the home directory for John.
You can specify a directory other than the home directory as your current directory at any time after you
sign on by using the Change Current Directory (CHGCURDIR) CL command, the chdir( ) API, or the fchdir()
API.
The home directory chosen during process initiation will remain each thread's home directory by default.
This is true regardless of whether your active user profile for the thread has changed after initiation.
However, there is support provided by the Change Job (QWTCHGJB) API that can be used to change
the home directory being used for a thread to that thread's current user profile's home directory (or the
"root" (/) directory if that home directory does not exist). Secondary threads will always inherit the home
directory of the thread that created it. Note that the process' current directory does not change when
you use QWTCHGJB to change the thread's home directory. The current directory is scoped to the process
level, and the home directory is scoped to the thread level. Changing the current working directory in any
thread changes it for the whole process. Changing the home directory for a thread does not change its
current working directory.
Related information
Change current directory (CHGCURDIR) command
chdir()--Change Current Directory API
fchdir()--Change Current Directory by Descriptor API
Application programming interfaces (APIs)
Provided directories
When the system is restarted, the integrated file system creates the directories listed here if they do not
already exist. These directories should not be moved or renamed after being created by the system.
Note: Do not replace the following system-created directories with symbolic links to other objects. For
example, do not replace /home with a symbolic link to a directory on an independent ASP. Otherwise,
there might be problems on the independent ASP as well as problems when creating new user profiles.
/tmp
The /tmp directory gives applications a place to store temporary objects. This directory is a
subdirectory of the "root" (/) directory, so its path name is /tmp.
Link
A link is a named connection between a directory and an object. A user or a program can tell the system
where to find an object by specifying the name of a link to the object. A link can be used as a path name or
as part of a path name.
For users of directory-based file systems, it is convenient to think of an object, such as a file, as something
that has a name that identifies it to the system. In fact, it is the directory path to the object that identifies
it. You can sometimes access an object by giving just the object's name. You can do this because the
system is designed to assume the directory part of the path under certain conditions. The idea of a link
takes advantage of the reality that it is the directory path that identifies the object. The name is given to
the link rather than the object.
After you get used to the idea that the link has the name rather than the object, you begin to see
possibilities that were hidden before. There can be multiple links to the same object. For example, two
users can share a file by having a link from each user's home directory to the file (see “Home directory”
on page 6). Certain types of links can cross file systems, and can exist without an object existing.
There are two types of links: Hard link and Symbolic link. When using path names in programs, you have
a choice of using a hard link or a symbolic link. Each type of link has advantages and disadvantages. The
conditions under which one type of link has an advantage over the other type is as follows:
Hard links can be removed without affecting the existence of an object as long as there is at least one
remaining hard link to the object. When the last hard link is removed, the object is removed from the
system, unless an application has the object open. Each application that has the object open can continue
to use it until that application closes the object. When the object is closed by the last application using it,
the object is removed from the system. An object cannot be opened after the last hard link is removed.
The concept of a hard link can also be applied to the QSYS.LIB or independent ASP QSYS.LIB file systems
and the document library services (QDLS) file system, but with a restriction. A library, in effect, has one
hard link to each object in the library. Similarly, a folder has one hard link to each document in the folder.
Multiple hard links to the same object are not allowed in QSYS.LIB, independent ASP QSYS.LIB, or in
QDLS, however.
A hard link cannot cross file systems. For example, a directory in the QOpenSys file system cannot have a
hard link to an object in the QSYS.LIB or independent ASP QSYS.LIB file systems or to a document in the
QDLS file system.
You select a menu option to show the status of customer accounts. The program displaying the menu
uses the following path name:
/Customer/Status/Summary
The system follows the Customer link, which leads to a directory 1, and then follows the Status link. The
Status link is a symbolic link, which contains a path name 2. Because the path name begins with a /, the
system returns to the / ("root") directory and follows the links Records and Accounts in sequence. This
path leads to another directory 3. Now the system completes the path in the path name provided by the
program. It follows the Summary link, which leads to a file 4 containing the data you will need.
Unlike a hard link, a symbolic link is an object (of object type *SYMLNK); it can exist without pointing to an
object that exists. You can use a symbolic link, for example, to provide a path to a file that will be added or
replaced later.
Also unlike a hard link, a symbolic link can cross file systems. For example, if you are working in one
file system, you can use a symbolic link to access a file in another file system. Although the QSYS.LIB,
independent ASP QSYS.LIB, and QDLS file systems do not support creating and storing symbolic links, you
can create a symbolic link in the "root" (/) or QOpenSys file system that allows you to:
Path name
A path name (also called a pathname on some systems) tells the system how to locate an object.
The path name is expressed as a sequence of directory names followed by the name of the object.
Individual directories and the object name are separated by a slash (/) character; for example:
directory1/directory2/file
For your convenience, the backslash (\) can be used instead of the slash in integrated file system
commands.
There are two ways of indicating a path name:
• An absolute path name begins at the highest level, or "root" directory (which is identified by the /
character). For example, consider the following path from the / directory to the file named Smith.
/Dept2/Photo/Smith
The absolute path name is also known as the full path name.
• If the path name does not begin with the / character, the system assumes that the path begins at your
current directory. This type of path name is called a relative path name. For example, if your current
directory is Dept2 and it has a subdirectory named Photo containing the file Smith, the relative path
name to the file is:
Photo/Smith
Stream file
A stream file is a randomly accessible sequence of bytes, with no further structure imposed by the system.
The integrated file system provides support for storing and operating on information in the form of stream
files. Documents that are stored in your system's folders are stream files. Other examples of stream files
are PC files and the files in UNIX systems. An integrated file system stream file is a system object that has
an object type of *STMF.
To better understand stream files, it is useful to compare them with IBM i database files. A database
file is record-oriented; it has predefined subdivisions that consist of one or more fields that have specific
characteristics, such as length and data type.
Stream files and record-oriented files are structured differently, and this difference in structure affects
how the files are used. The structure affects how an application is written to interact with the files and
where each type of file is best used in an application. A record-oriented file, for example, is well suited
for storing customer statistics such as name, address, and account balance. A record-oriented file allows
these predefined fields to be individually accessed and manipulated, using the extensive programming
facilities of your system. But a stream file is better suited for storing information, such as a customer's
picture, which is composed of a continuous string of bits representing variations in color. Stream files are
particularly well suited for storing strings of data, such as the text of a document, images, audio, and
video.
Name continuity
When you use the "root" (/), QOpenSys, and user-defined file systems, you can take advantage of system
support that ensures characters in object names remain the same.
This also applies when you use these file systems across systems and connected devices that have
different character encoding schemes (code pages). Your system stores the characters in the names in a
16-bit form that is known as UCS2 Level 1 (also called Unicode) for *TYPE1 directories and UTF-16 for
*TYPE2 directories. UCS2 Level 1 and UTF-16 are subsets of the ISO 10646 standard. When the name is
used, the system converts the stored form of the characters into the appropriate character representation
in the code page being used. The names of extended attributes associated with each object are also
handled the same way.
This support makes it easier to interact with a system from devices using different code pages. For
example, PC users can access an IBM i file using the same file name, even though their PCs do not
have the same code page as your system. The conversion from one code page to another is handled
automatically by your system. Of course, the device must be using a code page that contains the
characters used in the name.
Extended attributes
An extended attribute is information associated with an object that provides additional details about the
object. The extended attribute consists of a name, which is used to refer to it, and a value. The value can
be text, binary data, or another type of data.
The extended attributes for an object exist only as long as the object exists.
Extended attributes come in many varieties and can be used to contain a variety of information. You may
need to be aware of the following three extended attributes, in particular:
.SUBJECT
A brief description of the content or purpose of the object.
.TYPE
The type of data in the object. The type of data might be text, binary, source for a program, a compiled
program, or other information.
.CODEPAGE
The code page to be used for the object. The code page used for the object is also used for the
extended attribute associated with the object.
A period (.) as the first character of the name means that the extended attribute is a standard system
extended attribute (SEA), which is reserved for system use.
Various objects in the various file systems may or may not have extended attributes. The QSYS.LIB and
independent ASP QSYS.LIB file systems support three predefined extended attributes: .SUBJECT, .TYPE,
and .CODEPAGE. In the document library services (QDLS) file system, folders and documents can have
any kind of extended attribute. Some folders and documents may have extended attributes, and some
may not. In the "root" (/), QOpenSys, and user-defined file systems, all directories, stream files, and
symbolic links can have extended attributes of any kind. Some, however, may not have any extended
attributes at all.
The Work with Object Links (WRKLNK) command and Display Object Links (DSPLNK)
command can be used to display the .SUBJECT extended attribute for an object. There is no other
integrated file system support through which applications or users can access and change extended
attributes. The only exceptions to this rule are the Display a UDFS (DSPUDFS) and the Display
Mounted File System Information (DSPMFSINF) CL commands, which present extended
attributes to users.
Extended attributes associated with some objects in the QDLS can, however, be changed through
interfaces provided by the hierarchical file system (HFS).
If a client PC is connected to a IBM i platform through the Windows operating systems, the programming
interfaces of the respective operating system (such as DosQueryFileInfo and DosSetFileInfo) can be used
to query and set the extended attributes of any file object.
If you define extended attributes, use the following naming guidelines:
• The name of an extended attribute can be up to 255 characters long.
• Do not use a period (.) as the first character of the name. An extended attribute whose name begins with
a period is interpreted as a standard system extended attribute.
CompanyNameProductName.Attribute_Name
Scanning support
With the IBM i operating system, you can scan integrated file system objects.
This support creates flexibility for users by allowing scans for various items; users decide when the scan
should occur and what actions to take based on the results of their scans.
The two exit-points related to this support are:
• QIBM_QP0L_SCAN_OPEN - Integrated File System Scan on Open Exit Program
For this exit point, the integrated file system scan on open exit program is called to do scan processing
when an integrated file system object is opened under certain conditions.
• QIBM_QP0L_SCAN_CLOSE - Integrated File System Scan on Close Exit Program
For this exit point, the integrated file system scan on close exit program is called to do scan processing
when an integrated file system object is closed under certain conditions.
Note: Only objects in file systems that have been fully converted to *TYPE2 directories will be scanned.
Related tasks
Setting whether objects should be scanned or not
You can specify whether objects should be scanned or not in the "root" (/), QOpenSys and user-defined
file systems. Follow these steps to set the scanning options.
Related information
Integrated File System Scan on Open Exit Program
Integrated File System Scan on Close Exit Program
Scanning occurrences
Scanning can occur for a variety of reasons. Here is some information about when and why a scan might
occur.
To see the current scan status and attribute of an object, you can use the Work with Object Links
(WRKLNK) command, the Display Object Links (DSPLNK) command, the Get Attributes
(Qp0lGetAttr()) API, or the Properties page in IBM Navigator for i.
Related information
Work with Object Links (WRKLNK) command
Display Object Links (DSPLNK) command
Qp0lGetAttr()--Get Attributes API
Object change
A scan would occur if the object is accessed after an object has changed or has been modified.
Normally, the modification occurs in the object's data. Examples of modifications to an object are writing
to the object directly, or through memory mapping, truncating the object, or clearing the object. If the
object's CCSID attribute changes, this will also trigger a scan on the next access.
Different CCSID
If an object is accessed with a different coded character set identifier (CCSID) than was previously
scanned for that object, a scan would be triggered.
An example of this scan is when a file with data stored in CCSID 819 is opened in CCSID 1200, and
scanned successfully. As long as the file's data is not changed, then every time that file is opened in
CCSID 1200, a scan is not triggered. However, if that file is opened in a different CCSID, for example, 37,
a scan is triggered for that CCSID 37. If that scan is also successful, then any subsequent accesses with
CCSID 1200 and 37 will not trigger an additional scan.
Only two CCSIDs and one binary indication are kept in an effort to minimize data stored on the system. If
you typically access the same object with many different CCSIDs, then this can cause a lot of additional
scanning to occur.
File systems
A file system provides you with the support to access specific segments of storage that are organized as
logical units. These logical units on your system are files, directories, libraries, and objects.
Each file system has a set of logical structures and rules for interacting with information in storage. These
structures and rules may be different from one file system to another. In fact, from the perspective of
structures and rules, the IBM i support for accessing database files and various other object types through
libraries can be thought of as a file system. Similarly, the IBM i support for accessing documents (which
are really stream files) through the folders structure might be thought of as a separate file system.
The integrated file system treats the library support and folders support as separate file systems. Other
types of file management support that have differing capabilities are also treated as separate file systems.
You can interact with any of the file systems through a common interface. This interface is optimized
for the input and output of stream data, in contrast to the record input and output that is provided
Figure 9. File systems, file servers, and the integrated file system interface
Using Network File Systems through the integrated file system interface
The Network File System (NFS) is accessible through the integrated file system interface. Be aware of
these considerations and limitations.
Related information
Optical storage
Plan integrated file system security
Planning integrated file system security
Notes:
1. The file server I/O processor is hardware used by the LAN Server.
2. The speed applies when the file system is accessed through the IBM i file server.
3. For certain CCSID values, the maximum length can be less than 255 characters.
4. The QSYS.LIB file system has a maximum path name length of 55 characters. The independent ASP
QSYS.LIB file system has a maximum path length of 66 characters.
5. See “Document library services file system (QDLS)” on page 46 for details.
6. This value can be up to 10 characters for the object name and up to 6 characters for the object type.
7. This value can be up to 8 characters for the name and 1 to 3 characters for the file type extension (if any).
8. The values are based on the assumption that an absolute path name begins with / followed by the file
system name (such as /QDLS...).
9. The QSYS.LIB and independent ASP QSYS.LIB file systems support three predefined extended
attributes: .SUBJECT, .CODEPAGE, and .TYPE. The maximum length is determined by the combined length
of these three extended attributes.
10. In practice, directory levels are limited by program and system space limits.
11. An exception to this is a directory that can have only one link to another directory.
12. The user spaces in QSYS.LIB and independent ASP QSYS.LIB file systems support stream file input and
output.
13. Integrated file system APIs are threadsafe when the operation is directed to an object that resides in a
threadsafe file system. When these APIs are operating on objects in file systems that are not threadsafe
when multiple threads are running in the job, the API will fail.
14. QSYS.LIB and independent ASP QSYS.LIB file systems support journaling different object types than the
"root" (/), UDFS, and QOpenSys file systems.
15. *TYPE2 directories have a limit of one million links per object and a limit of 999 998 subdirectories.
*TYPE1 directories have a limit of 32 767 links per object.
16. Data in this column refers to both the QSYS.LIB file system and the independent ASP QSYS.LIB file system.
17. This limit depends on the system being accessed.
18. QNTC does not support extended attributes.
Abbreviations
• T1 = *TYPE1 *STMF
• T2 = *TYPE2 *STMF
• B = bytes KB = kilobytes MB = megabytes GB = gigabytes TB = terabytes
Notes:
1. The file server I/O processor is hardware used by the LAN Server.
2. This value depends on which remote file system is being accessed.
3. When connected to a system earlier than V6R1, the file size limit is 2 GB-1. Otherwise, the file size limit
depends on the file system being accessed.
4. See “Optical file system (QOPT)” on page 48 for details.
5. The values are based on the assumption that an absolute path name that begins with / followed by the file
system name.
6. The QFileSvr.400 file system does not return extended attributes even if the file system being accessed
supports extended attributes.
7. In practice, directory levels are limited by program and system space limits.
8. An exception to this is a directory that can have only one link to another directory.
9. The file system being accessed might support object owners.
10. The maximum length of extended attributes for the UDFS itself cannot exceed 40 bytes.
11. Case sensitivity can be specified when a UDFS is created. If the *MIXED parameter is used when creating a
UDFS, it will allow a case-sensitive search.
12. Integrated file system APIs are threadsafe when they are accessed in a multithread capable process. The
file system does not allow accesses to the file systems that are not threadsafe.
13. *TYPE2 directories have a limit of one million links per object. *TYPE1 directories have a limit of 32 767
links per object.
14. This limit depends on the system being accessed.
15. For certain CCSID values, the maximum length can be less than 255 characters.
16. 9,999,999,827,968 bytes when accessing through integrated file system. 4,294,705,152 bytes when
accessing through hierarchical file system (HFS).
Abbreviations
• T1 = *TYPE1 *STMF
• T2 = *TYPE2 *STMF
• B = bytes KB = kilobytes MB = megabytes GB = gigabytes TB = terabytes
Related reference
"root" (/) file system
The "root" (/) file system takes full advantage of the stream file support and hierarchical directory
structure of the integrated file system. It also has some characteristics of the DOS file system.
Open systems file system (QOpenSys)
The QOpenSys file system is compatible with open system standards based on UNIX, such as POSIX and
X/Open Portability Guide (XPG). Like the "root" (/) file system, this file system takes advantage of the
stream file and directory support that is provided by the integrated file system.
User-defined file systems (UDFSs)
The user-defined file systems (UDFSs) reside on the auxiliary storage pool (ASP) or independent auxiliary
storage pool (ASP) of your choice. You can create and manage these file systems.
Library file system (QSYS.LIB)
The QSYS.LIB file system supports the IBM i library structure.
Independent ASP QSYS.LIB
/Directory/Directory . . . /Object
• Each component of the path name can be up to 255 characters long, much longer than in the QSYS.LIB
or QDLS file systems. The full path name can be extremely long, up to 16 megabytes.
• There is no limit to the depth of the directory hierarchy other than program and system space limits.
• The characters in names are converted to UCS2 Level 1 form (for *TYPE1 directories) and UTF-16 (for
*TYPE2 directories) when the names are stored.
Related concepts
Name continuity
When you use the "root" (/), QOpenSys, and user-defined file systems, you can take advantage of system
support that ensures characters in object names remain the same.
*TYPE2 directories
The "root" (/), QOpenSys, and user-defined file systems (UDFS) in the integrated file system support the
*TYPE2 directory format. The *TYPE2 directory format is an enhancement of the original *TYPE1 directory
format.
Path name
A path name (also called a pathname on some systems) tells the system how to locate an object.
Use of integrated file system commands in the "root" (/) file system
All of the commands listed in the Accessing using CL commands topic and the displays described in the
Accessing using menus and displays topic can operate on the "root" (/) file system. However, it might not
be safe to use these commands in a multithread-capable process.
Related tasks
Accessing using menus and displays
You can perform operations on files and other objects in the integrated file system by using a set of menus
and displays provided by your system.
Related reference
Accessing using CL commands
Use of integrated file system APIs in the "root" (/) file system
All of the APIs listed in the Performing operations using APIs topic can operate on the "root" (/) file
system.
Related reference
Performing operations using APIs
Many of the application programming interfaces (APIs) that perform operations on integrated file system
objects are in the form of C language functions.
Related information
Application programming interfaces (APIs)
Related information
i5/OS PASE
Accessing QOpenSys
QOpenSys can be accessed through the integrated file system interface using either the IBM i file server
or the integrated file system commands, user displays, and APIs.
/QOpenSys/Directory/Directory/ . . . /Object
• Each component of the path name can be up to 255 characters long. The full path name can be up to 16
MB long.
• There is no limit to the depth of the directory hierarchy other than program and system space limits.
• The characters in names are converted to UCS2 Level 1 form (for *TYPE1 directories) and UTF-16 (for
*TYPE2 directories) when the names are stored.
Related concepts
Name continuity
When you use the "root" (/), QOpenSys, and user-defined file systems, you can take advantage of system
support that ensures characters in object names remain the same.
*TYPE2 directories
Use of integrated file system commands and displays in the QOpenSys file
system
All of the commands that are listed in the Accessing using CL commands topic and the displays that are
described in the Accessing using menus and displays topic can operate on the QOpenSys file system.
However, it may not be safe to use these commands in a multithread capable process.
Related tasks
Accessing using menus and displays
You can perform operations on files and other objects in the integrated file system by using a set of menus
and displays provided by your system.
Related reference
Accessing using CL commands
All of the operations that you can do through the integrated file system menus and displays can be done
by entering control language (CL) commands. These commands can operate on files and other objects in
any file system that are accessible through the integrated file system interface.
Accessing a user-defined file system through the integrated file system interface
A user-defined file system (UDFS) can be accessed through the integrated file system interface using
either the IBM i file server or the integrated file system commands, user displays, and APIs.
In using the integrated file system interface, you should be aware of the following considerations and
limitations.
Related concepts
Link
A link is a named connection between a directory and an object. A user or a program can tell the system
where to find an object by specifying the name of a link to the object. A link can be used as a path name or
as part of a path name.
Stream file
A stream file is a randomly accessible sequence of bytes, with no further structure imposed by the system.
Related information
Create User-Defined FS (CRTUDFS) command
CRTUDFS UDFS('/dev/QASP01/new.tmpudfs')
The creator of a temporary UDFS must have *ALLOBJ special authority. Temporary UDFSs can only be
created in the system auxiliary storage pool (ASP). That is, they can only be created in '/dev/QASP01'.
After it is created, the temporary UDFS can then be mounted and used much like a permanent UDFS, with
the following restrictions:
• Temporary objects cannot be secured by authorization lists.
• User journaling of temporary objects is not allowed.
• Objects cannot be saved from, nor restored into, a temporary file system.
• Extended attributes are not supported for temporary objects.
• Object signing of temporary objects is not allowed.
• You cannot mount a temporary UDFS as a read-only file system.
Users of temporary file systems need to be aware of the following considerations:
/dev/QASPXX/udfs_name.udfs
where XX is the ASP number where you store the UDFS, and udfs_name is the unique name of the UDFS
within that ASP. Note that the UDFS name must end with the .udfs extension.
If your UDFS is a temporary UDFS, block special file names must be of the form
/dev/QASP01/udfs_name.tmpudfs
where udfs_name is the unique name of the UDFS. Because temporary UDFSs can only exist on the
system ASP, the block special file can only be created in /dev/QASP01. Note that the temporary UDFS
name must end with the .tmpudfs extension.
If your UDFS resides on an independent ASP, block special file names must be of the form
/dev/asp_name/udfs_name.udfs
where asp_name is the name of independent ASP where you store the UDFS and udfs_name is the
unique name of the UDFS within that independent ASP. Note that the UDFS name must end with
the .udfs extension.
Path names for objects within a UDFS are relative to the directory over which you mount a UDFS. For
example, if you mount the UDFS /dev/qasp01/wysocki.udfs over /home/dennis, then the path
names for all objects within the UDFS will begin with /home/dennis.
Additional path name rules:
• Each component of the path name can be up to 255 characters long. The full path name can be up to 16
MB long.
• There is no limit to the depth of the directory hierarchy other than program and server space limits.
• The characters in names are converted to UCS2 Level 1 form (for *TYPE1 directories) and UTF-16 (for
*TYPE2 directories) when the names are stored.
Related concepts
Name continuity
When you use the "root" (/), QOpenSys, and user-defined file systems, you can take advantage of system
support that ensures characters in object names remain the same.
*TYPE2 directories
The "root" (/), QOpenSys, and user-defined file systems (UDFS) in the integrated file system support the
*TYPE2 directory format. The *TYPE2 directory format is an enhancement of the original *TYPE1 directory
format.
Path name
A path name (also called a pathname on some systems) tells the system how to locate an object.
Note: You must mount a UDFS before any integrated file system commands can operate on the objects
that are stored in that UDFS.
Related tasks
Accessing using menus and displays
You can perform operations on files and other objects in the integrated file system by using a set of menus
and displays provided by your system.
Related reference
Accessing using CL commands
All of the operations that you can do through the integrated file system menus and displays can be done
by entering control language (CL) commands. These commands can operate on files and other objects in
any file system that are accessible through the integrated file system interface.
/QSYS.LIB/QGPL.LIB/PRT1.OUTQ
/QSYS.LIB/EMP.LIB/PAY.FILE/TAX.MBR
The object name and object type are separated by a period (.). Objects in a library can have the same
name if they are different object types, so the object type must be specified to uniquely identify the
object.
• The object name in each component can be up to 10 characters long, and the object type can be up to 6
characters long.
• The directory hierarchy within QSYS.LIB can be either two or three levels deep (two or three
components in the path name), depending on the type of object being accessed. If the object is a
database file, the hierarchy can contain three levels (library, file, member); otherwise, there can be only
two levels (library, object). The combination of the length of each component name and the number of
directory levels determines the maximum length of the path name.
If "root" (/) and QSYS.LIB are included as the first two levels, the directory hierarchy for QSYS.LIB can
be up to five levels deep.
• The characters in names are converted to CCSID 37 when the names are stored. Quoted names,
however, are stored using the CCSID of the job.
For more information about CCSIDs, see the i5/OS globalization topic.
Related concepts
Path name
A path name (also called a pathname on some systems) tells the system how to locate an object.
Use of integrated file system commands and displays in the QSYS.LIB file
system
Many integrated file system commands and displays are valid in the QSYS.LIB file system.
The commands listed in “Accessing using CL commands” on page 69 can operate on the QSYS.LIB file
system, except for the following restrictions:
• The Add Link (ADDLNK) command can be used only to create a symbolic link to an object in
QSYS.LIB.
• File operations can be done only on program-described physical files and source physical files.
• The Start Journal (STRJRN) and End Journal (ENDJRN) commands cannot be used on
database physical files or libraries.
• These commands are not supported:
– Check In Object (CHKIN)
– Check Out Object (CHKOUT)
– Reclaim Object Links (RCLLNK)
The same restrictions apply to the user displays described in “Accessing using menus and displays” on
page 68.
Support for user spaces in the independent ASP QSYS.LIB file system
Independent ASP QSYS.LIB supports stream input and output operations to user space objects.
For example, a program can write stream data to a user space and read data from a user space. The
maximum size of a user space is 16 776 704 bytes.
Be aware that user spaces are not tagged with a CCSID (coded character set identifier). Therefore, the
CCSID returned is the default CCSID of the job.
Support for save files in the independent ASP QSYS.LIB file system
The independent ASP QSYS.LIB supports stream I/O operations to save file objects.
For example, an existing save file has data that may be read out or copied to another file until it is
necessary to place the data into a different, existing, and empty save file object. When a save file is open
for writing, no other open instances of the file are allowed. A save file does allow multiple open instances
for reading, provided no job has more than one open instance of the file for reading. A save file may not
be opened for read/write access. Stream I/O operations to save file data are not allowed when multiple
threads are running in a job.
Stream I/O operations on a save file are not supported when the save file or its directory are being
exported through the Network File System. They may, however, be accessed from PC clients and through
the QFileSvr.400 file system.
/asp_name/QSYS.LIB/QGPL.LIB/PRT1.OUTQ
/asp_name/QSYS.LIB/EMP.LIB/PAY.FILE/TAX.MBR
where asp_name is the name of the independent ASP. The object name and object type are separated
by a period (.). Objects in a library can have the same name if they are different object types, so the
object type must be specified to uniquely identify the object.
• The object name in each component can be up to 10 characters long, and the object type can be up to 6
characters long.
• The directory hierarchy within independent ASP QSYS.LIB can be either two or three levels deep (two or
three components in the path name), depending on the type of object being accessed. If the object is a
database file, the hierarchy can contain three levels (library, file, member); otherwise, there can be only
two levels (library, object). The combination of the length of each component name and the number of
directory levels determines the maximum length of the path name.
If /, asp_name, and QSYS.LIB are included as the first three levels, the directory hierarchy for the
Independent ASP QSYS.LIB file system can be up to six levels deep.
• The characters in names are converted to coded character set identifier (CCSID) 37 when the names are
stored. Quoted names, however, are stored using the CCSID of the job.
For more information about CCSID, see the i5/OS globalization topic in the IBM i Information Center.
Related concepts
Path name
A path name (also called a pathname on some systems) tells the system how to locate an object.
Use of integrated file system commands and displays in the independent ASP
QSYS.LIB file system
Many integrated file system commands and displays are valid in the independent ASP QSYS.LIB file
system.
Nearly all the commands listed in “Accessing using CL commands” on page 69 can operate on the
independent ASP QSYS.LIB file system. But there are a few exceptions:
• The Add Link (ADDLNK) command can be used only to create a symbolic link to an object in
independent ASP QSYS.LIB.
• File operations can be done only on program-described physical files and source physical files.
• The Start Journal (STRJRN) and End Journal (ENDJRN) commands cannot be used on
database physical files or libraries.
• You cannot move libraries in the independent ASP QSYS.LIB file system to basic auxiliary storage pools
(ASPs) using the Move Object (MOV) command. However, you can move libraries in independent ASP
QSYS.LIB to the system ASP or other independent ASPs.
• If you use Save Object (SAV) or Restore Object (RST) to save or restore library objects on an
independent ASP, then that independent ASP must be associated with the job doing the SAV or RST
operation, or the independent ASP must be specified on the ASPDEV parameter. The path name naming
convention of /asp_name/QSYS.LIB/object.type is not supported on SAV and RST.
• These commands are not supported:
– Check In Object (CHKIN)
– Check Out Object (CHKOUT)
– Reclaim Object Links (RCLLNK)
The same restrictions apply to the user displays described in “Accessing using menus and displays” on
page 68.
Use of integrated file system APIs in the independent ASP QSYS.LIB file
system
Many integrated file system APIs are valid in the independent ASP QSYS.LIB file system
The APIs listed in “Performing operations using APIs” on page 115 can operate on the independent ASP
QSYS.LIB file system, except for the following situations:
• File operations can be done only on program-described physical files and source physical files.
• The symlink() function can be used only to link to an object in independent ASP QSYS.LIB from
another file system that supports symbolic links.
• The QjoStartJournal() and QjoEndJournal() APIs cannot be used on database physical files or
libraries.
• If you use QsrSave() or QsrRestore() APIs to save or restore library objects on an independent
ASP, this independent ASP must be associated with the job doing the save or restore operation, or
the independent ASP must be specified on the ASPDEV key. The naming convention of path name
(/asp_name/QSYS.LIB/object.type) is not supported on QsrSave() and QsrRestore() APIs.
Related information
Application programming interfaces (APIs)
/QDLS/FLR1/DOC1
/QDLS/FLR1/DOC1.TXT
Use of integrated file system commands and displays in the QDLS file system
Many integrated file system commands and displays are valid in the QDLS file system.
The commands listed in “Accessing using CL commands” on page 69 can operate on the QDLS file
system, except for the following commands:
• The ADDLNK command can be used only to link to an object in QDLS from another file system that
supports symbolic links.
• The CHKIN and CHKOUT commands are supported for documents, but not for folders.
• These commands are not supported:
– APYJRNCHG
– CHGJRNOBJ
– DSPJRN
– ENDJRN
– RCLLNK
– RCVJRNE
– RTVJRNE
– SNDJRNE
– STRJRN
The same restrictions apply to the user displays described in “Accessing using menus and displays” on
page 68.
/QOPT/VOLUMENAME/DIRECTORYNAME/SUBDIRECTORYNAME/FILENAME
Use of integrated file system commands and displays in the QOPT file system
Many integrated file system commands and displays are valid in the QOPT file system.
Most commands listed in “Accessing using CL commands” on page 69 can operate on the QOPT file
system. There are, however, a few exceptions in the QOPT file system. Keep in mind that it may not
be safe to use these CL commands in a multithread capable process; Certain restrictions may apply,
depending on the optical media format. The same restrictions apply to the user displays described in
“Accessing using menus and displays” on page 68.
The following integrated file system commands are not supported by the QOPT file system:
/QNTC/Servername/Sharename/Directory/ . . . /Object
(QNTC is a required part of the path name.)
• The server name is a required portion of the QNTC path name. The server name can be a TCP/IP
hostname, a NetBIOS name, or a TCP/IP address. Starting in V6R1, IPv6 addresses are supported in
addition to IPv4 addresses.
• The share name can be up to 255 characters long.
• Each component of the path name after the share name can be up to 255 characters long.
• Within QNTC, 130 levels of hierarchy are generally available. If all components of the path name are
included as hierarchy levels, the directory hierarchy can be as many as 132 levels deep.
• Names are stored in the Unicode CCSID.
• By default, each supported server that is functional in the local subnet automatically appears as a
directory under /QNTC. Use the Create Directory (CRTDIR) command or mkdir() API to add accessible
systems located outside the local subnet.
Related concepts
Path name
A path name (also called a pathname on some systems) tells the system how to locate an object.
Related information
Create Directory (MKDIR) command
mkdir()--Make Directory API
i5/OS glossary
Use of integrated file system commands and displays in the QNTC file system
Many integrated file system commands and displays are valid in the QNTC file system
The commands listed in “Accessing using CL commands” on page 69 can operate on the QNTC file
system, except for the following commands:
• ADDLNK
• APYJRNCHG
• CHGJRNOBJ
• CHGOWN
• CHGAUT
• CHGPGP
• CHKIN
• CHKOUT
• DSPAUT
• DSPJRN
• ENDJRN
• RCLLNK
• RCVJRNE
• RTVJRNE
• RST (available with Integrated xSeries Servers)
• SAV (available with Integrated xSeries Servers)
• SNDJRNE
• STRJRN
• WRKAUT
• WRKOBJOWN
• WRKOBJPGP
The same restrictions apply to the user displays that are described in “Accessing using menus and
displays” on page 68.
QZLC_SERVERLIST
When this environment variable is set to "2", all servers that appear in the /QNTC directory in the
integrated file system can be accessed by QNTC. This was the default behavior before V5R4. When this
variable is not set to "2" or has not been created, some servers that appear in the /QNTC directory might
not be accessible.
QIBM_ZLC_NO_BROWSE
When this environment variable is set to "1", the /QNTC directory will only contain servers that were
created with the CRTDIR CL command or mkdir() API. The performance of many operations against the
QNTC file system will improve when this environment variable has been set. But all /QNTC directories
need to be created using the CL command.
QIBM_ZLC_SMB_VERS
Valid QIBM_ZLC_SMB_VERS settings:
• When the environment variable does not exist or is set to “0”, the QNTC file system will negotiate a
suitable protocol version with the server.
CRTDIR '/QNTC/NTSRV1'
adds the NTSRV1 server into the QNTC file system directory structure to enable accessing of files and
directories on that server.
You can also add a new server to the directory structure by using the TCP/IP address. The server name
can be either an IPv4 address or an IPv6 address. For example:
CRTDIR '/QNTC/9.130.67.24'
or:
CRTDIR '/QNTC/2001:0db8:3c4d:0015:0000:0000:abcd:ef12'
adds the server into the QNTC file system directory structure.
Notes:
• By configuring IBM i NetServer for WINS, it is possible to automatically create directories for servers
beyond your subnet.
• If you use the CRTDIR CL command or the mkdir() API to add directories to the directory structure,
the directories do not remain visible after performing a system IPL or after running a Reclaim Storage
(RCLSTG) command. The CRTDIR command or mkdir() API must be reissued after performing a
system IPL or running a RCLSTG command on the directories.
If you prefer to add directories using the API or CL command, you can improve the performance of these
commands by adding the environment variable QIBM_ZLC_NO_BROWSE, as in the following example:
ADDENVVAR ENVVAR(QIBM_ZLC_NO_BROWSE) VALUE(1) LEVEL(*SYS)
This environment variable causes the file system to bypass all network browsing when performing file
operations.
Related information
Create Directory (MKDIR) command
mkdir()--Make Directory API
/QFileSvr.400/RemoteLocationName/Directory/Directory . . . /Object
The first-level directory (that is, RemoteLocationName in the previous example) represents both of the
following attributes:
– The name of the target system that is used to establish a communications connection. The target
system name can be either of the following names:
- A TCP/IP host name (for example, beowulf.newyork.corp.com)
Note: The host name can be one that resolves to either an IPv4 or an IPv6 address provided
that the target system is also at V6R1. For releases earlier than V6R1, only IPv4 addresses are
supported.
- An SNA LU 6.2 name (for example. appn.newyork)
– The "root" (/) directory of the target system
Because of this representation, any attributes specified when the first-level directory is created are
ignored.
To use this file system, the first-level directory must be created. This can be done by using any
integrated file system interface that creates directories.
APPC Programming .
• File server requests that use TCP as the communications protocol are performed within the context of
the job that is issuing the request. File server requests that use SNA as the communications protocol are
performed by the IBM i system job Q400FILSVR.
• If a connection is not yet established with the target server, the QFileSvr.400 file system assumes that
the first-level directory represents a TCP/IP host name. The QFileSvr.400 file system goes through the
following steps to establish a connection with the target server:
1. Resolve the remote location name to an IP address.
Note: The remote location name can be one that resolves to either an IPv4 or an IPv6 address
provided that the target system is also at V6R1. In releases earlier than V6R1, only IPv4 addresses
are supported.
2. Connect to the host server's server mapper on well-known port 449 using the resolved IP address.
Then send a query to the server mapper for the service name "as-file." One of the following occurs as
result of the query:
– If "as-file" is in the service table on the target server, the server mapper returns the port on which
the IBM i file server daemon is listening.
– If the server mapper is not active on the target server, the default port number for "as-file" (8473)
is used.
The QFileSvr.400 file system then tries to establish a TCP connection with the IBM i file server
daemon on the target server. When the connection is established, QFileSvr.400 exchanges requests
and replies with the file server. Within the QSERVER subsystem, the QPWFSERVSO prestart requests
take control of the connection. Each prestart job runs under its own user profile.
/QFileSvr.400/Remote2/QFileSvr.400/Remote1/QFileSvr.400/Remote2/...
where Remote1 is the local system. When the path name that contains a loop is specified, the
QFileSvr.400 file system returns an error after a brief period of time. The error indicates that a time-out
has occurred.
• The QFileSvr.400 file system will use an existing free session when communicating over SNA. It is
necessary to start the mode and establish a session for the QFileSvr.400 to successfully connect to the
remote communications system.
• QFileSvr.400 connections may be secured with Transport Layer Security. See "Securing QFileSvr.400
using Transport Layer Security " for additional information and configuration details.
You can use Transport Layer Security (TLS) connections to encrypt data transferred through the
QFileSvr.400 file system to IBM i hosting server by performing a few tasks.
– Use Digital Certificate manager (DCM) to assign a certificate to the server application.
– Import the Certificate Authority (CA) certificate that issued the server certificate into the QFileSvr.400
client system certificate store.
– Since the secure environment cannot be shared between jobs, you must define and set the
QIBM_P0A_FILESYS_SEC_ENABLE environment variable to a value of ‘1’.
– Set the QIBM_RFS_CONNECTION_POLICY environment variable to value of ‘1’ to use the multiple
connection policy.
Once configured, all users of QFileSvr.400 file system will be using secure connections. See section
“Configuration details for securing the QFileSvr.400 file system” for additional information.
Note: The file server should be set up before using secure connections. For more detail on
configuring the file server see section https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/
rzahh/sslreq.htm
Use of integrated file system commands and displays in the QFileSvr.400 file
system
Many integrated file system commands and displays are valid in the QFileSvr.400 file system.
The commands listed in “Accessing using CL commands” on page 69 can operate on the QFileSvr.400
file system, except for the following commands:
• ADDLNK
• APYJRNCHG
• CHGAUT
• CHGJRNOBJ
• CHGOWN
• DSPAUT
• DSPJRN
• ENDJRN
• RCLLNK
• RCVJRNE
• RST
• RTVJRNE
• SAV
• SNDJRNE
• STRJRN
• WRKOBJOWN
• WRKOBJPGP
The same restrictions apply to the user displays described in “Accessing using menus and displays” on
page 68.
Accessing NFS file systems through the integrated file system interface
The NFS is accessible through the integrated file system interface. Be aware of these considerations and
limitations.
Note: A Network File System must be mounted before any commands can be used on it.
Related information
i5/OS Network File System Support PDF
Procedure
1. Sign on to your system.
2. Press Enter to continue.
3. From the main menu, select the Files, Libraries, and Folders option.
4. From the Files, Libraries, and Folders menu, select the Integrated File System option.
Results
From here, you can work with Directory commands, Object commands, or Security commands in the
integrated file system, depending on your needs. However, if you know the CL command you will be using,
you can type it at the command line at the bottom of the screen and press Enter, bypassing the menu of
options.
Additionally, you can access the integrated file system from any menu on your system by performing the
following steps:
1. Type GO DATA on any command line to display the Files, Libraries, and Folders menu.
2. Select Integrated file system.
To see a menu of Network File System commands, type GO CMDNFS on any command line. To see a menu
of user-defined file system commands, type GO CMDUDFS on any command line.
From the integrated file system menus, you can request displays or commands on which you can do the
following operations:
• Create, convert, and remove a directory
• Display and change the name of the current directory
• Add, display, change, and remove object links
• Copy, move, and rename objects
• Check out and check in objects
• Save (back up) and restore objects
• Display and change object owners and user authorities
• Display and change attributes of objects
• Copy data between stream files and database file members
• Create, delete, and display the status of user-defined file systems
• Export file systems from a server
• Mount and unmount file systems on a client
Some file systems do not support all of these operations.
Related concepts
File systems
A file system provides you with the support to access specific segments of storage that are organized as
logical units. These logical units on your system are files, directories, libraries, and objects.
Related reference
Path name rules for CL commands and displays
Notes:
1. The WRKOBJOWN and WRKOBJPGP commands can display all object types but may not be fully
functional in all file systems.
2. See Journal management in the IBM i Information Center for more information.
3. These commands are Unicode-enabled. See Unicode support in control language in the IBM i
Information Center for more information.
Related concepts
File systems
A file system provides you with the support to access specific segments of storage that are organized as
logical units. These logical units on your system are files, directories, libraries, and objects.
Related tasks
Accessing using menus and displays
You can perform operations on files and other objects in the integrated file system by using a set of menus
and displays provided by your system.
Related information
Control language (CL)
'"/Dir1/Dir/A*Smith"'
or
'''/Dir1/Dir/A*Smith'''
If the component name itself contains single quotation marks or double quotation marks, you must
specify two such marks in a row to represent them; for example:
‘”/Dir1/Dir/Smith’’s Directory”’
or
‘”/Dir1/Dir/This is an “”example”””’
• Even though the various file systems, commands, and displays may allow certain special characters in
component names, you should avoid using those characters because they make it difficult or impossible
to work with objects using other interfaces. The slash (/), backslash (\), asterisk (*), question mark (?),
single quotation mark ('), double quotation mark ("), tilde (~), and colon (:) all have special significance
to certain interfaces. For example, the CL commands treat both the slash (/) and backslash (\) as
delimiters and can not properly interpret a path where component names contain either of those
characters. Similarly, the presence of backslash (\) or colon (:) characters may make some objects
unusable from PC client interfaces.
Related concepts
File systems
A file system provides you with the support to access specific segments of storage that are organized as
logical units. These logical units on your system are files, directories, libraries, and objects.
Related information
Control language (CL)
QEZCCSID INTEGER The CCSID of the data and extended attributes of the object.
QEZALCSIZE 1 BIGINT The number of bytes that have been allocated for this object.
QEZDTASIZE BIGINT The size in bytes of the data in this object. This size does not include
object headers or the size of extended attributes associated with the
object.
QEZEAS BIGINT Number of extended attributes associated with this object.
QEZCEAS BIGINT Number of critical extended attributes associated with this object.
QEZEXTATRS BIGINT Total number of bytes for all the extended attribute data.
QEZCRTTIM TIMESTAMP The date and time at which the object was created.
QEZACCTIM TIMESTAMP The date and time that the object's data was last accessed.
QEZCHGTIMA TIMESTAMP The date and time that the object's attributes were last changed.
1
QEZCHGTIMD TIMESTAMP The date and time that the object's data was last changed.
QEZSTGFREE SMALLINT Whether the object's data has been moved offline, freeing its online
1 storage. Valid values are:
0 - The object's data is not offline.
1 - The object's data is offline.
QEZCHKOWN GRAPHIC (10) The user who has the object checked out. This field is blank if it is not
checked out.
QEZCHKTIM TIMESTAMP The date and time the object was checked out. If the object is not
checked out, this field will have NULL as its value.
QEZLOCAL SMALLINT Whether an object is stored locally or stored on a remote system. The
decision of whether an object is local or remote varies according to
the respective file system rules. Objects in file systems that do not
carry either a local or remote indicator are treated as remote. Valid
values are:
1 - The object's data is stored locally.
2 - The object's data is on a remote system.
QEZOWN 1 GRAPHIC (10) The name of the user profile that is the owner of the object or the
following special value:
*NOUSRPRF - This special value is used by the Network File System
to indicate that there is no user profile on the local iSeries server with
a user ID (UID) matching the UID of the remote object.
QEZUID INTEGER Each user on the system must have a unique numeric user
identification number (UID).
QEZOWNPGP GRAPHIC (10) The name of the user profile that is the primary group of the object or
the following special values:
*NONE - The object does not have a primary group
*NOUSRPRF - This special value is used by the Network File System
to indicate that there is no user profile on the local server with a
group ID (GID) matching the GID of the remote object.
QEZGID INTEGER Group profiles are identified by a unique numeric group identification
number (GID).
QEZAUTLST GRAPHIC (10) The name of the authorization list that is used to secure the named
object. The value *NONE indicates that no authorization list is used in
determining authority to the object.
QEZASP SMALLINT The auxiliary storage pool in which the object is stored.
QEZJRNSTS 1 SMALLINT Current journaling status of the object. This field will be one of the
following values:
0 (NOT_JOURNALED) - The object is currently not being journaled.
1 (JOURNALED) - The object is currently being journaled.
QEZJOPTENT SMALLINT When journaling is active, entries that are considered optional are
journaled. The list of optional journal entries varies for each object
type.
0 - Object is not journaled with optional entries.
1 - Object is journaled with optional entries.
QEZJAFTERI SMALLINT When journaling is active, the image of the object after a change is
journaled.
0 - Object is not journaled with after images.
1 - Object is journaled with after images.
QEZJBEFORI SMALLINT When journaling is active, the image of the object before a change is
journaled.
0 - Object is not journaled with before images.
1 - Object is journaled with before images.
QEZJRNID GRAPHIC (10) This field associates the object being journaled with an identifier that
can be used on various journaling-related commands and APIs. This
field is blank if the object has never been journaled.
QEZJRNNAM GRAPHIC (10) If the value of the journaling status is JOURNALED, then this field
contains the name of the journal currently being used. If the value of
the journaling status is NOT_JOURNALED, then this field contains the
name of the journal last used for this object. All bytes in this field will
be set to binary zero if this object has never been journaled. This field
is blank if the object has never been journaled.
QEZJRNLIB GRAPHIC (10) If the value of the journaling status is JOURNALED, then this field
contains the name of the library containing the currently used
journal. If the value of the journaling status is NOT_JOURNALED, then
this field contains the name of the library containing the last used
journal. All bytes in this field will be set to binary zero if this object
has never been journaled. This field is blank if the object has never
been journaled.
QEZJRNSTR TIMESTAMP The number of seconds since the Epoch that corresponds to the last
date and time for which the object had journaling started for it. This
field will be set to binary zero if this object has never been journaled.
This field has NULL as its value if the object has never been journaled.
QEZSCN GRAPHIC (1) Whether the object will be scanned when exit programs are
registered with any of the integrated file system scan-related exit
points.
Valid values are:
x'00' (SCANNING_NO) - The object will not be scanned according to
the rules described in the scan-related exit programs.
Note: If the Scan file systems control (QSCANFSCTL) value
*NOPOSTRST is not specified when an object with this attribute is
restored, the object will be scanned at least once after the restore.
x'01' (SCANNING_YES) - The object will be scanned according to the
rules described in the scan-related exit programs if the object has
been modified or if the scanning software has been updated since the
last time the object was scanned.
x'02' (SCANNING_CHGONLY) - The object will be scanned according
to the rules described in the scan-related exit programs only if the
object has been modified since the last time the object was scanned.
It will not be scanned if the scanning software has been updated.
This attribute only takes effect if the Scan file systems control
(QSCANFSCTL) system value has *USEOCOATR specified. Otherwise,
it will be treated as if the attribute is SCANNING_YES.
Note: If the Scan file systems control (QSCANFSCTL) value
*NOPOSTRST is not specified when an object with this attribute is
restored, the object will be scanned at least once after the restore.
QEZSSIGDF GRAPHIC (1) The scan signatures give an indication of the level of the scanning
software support.
When an object is in an independent ASP group, the object scan
signature is compared to the associated independent ASP group scan
signature. When an object is not in an independent ASP group, the
object scan signature is compared to the global scan signature value.
This field will be one of the following values:
x'00' - The compared signatures are not different.
x'01' - The compared signatures are different.
QEZSBINARY GRAPHIC (1) This indicates if the object has been scanned in binary mode when it
was previously scanned. This field will be one of the following values:
x'00' - The object was not scanned in binary mode.
x'01' - The object was scanned in binary mode. If the object scan
status is SCAN_SUCCESS, then the object was successfully scanned
in binary. If the object scan status is SCAN_FAILURE, then the object
failed the scan in binary.
QEZSIG 1 SMALLINT Whether an object has anIBM i digital signature. Valid values are:
0 - The object does not have anIBM i digital signature.
1 - The object does have anIBM i digital signature.
QEZSYSSIG SMALLINT Whether the object was signed by a source that is trusted by the
system. Valid values are:
0 - None of the signatures came from a source that is trusted by the
system.
1 - The object was signed by a source that is trusted by the system.
If the object has multiple signatures, at least one of the signatures
came from a source that is trusted by the system.
QEZDSTGOPT SMALLINT This option should be used to determine how auxiliary storage is
allocated by the system for the specified object. This option can
only be specified for stream files in the "root" (/), QOpenSys and
user-defined file systems. This option will be ignored for *TYPE1 byte
stream files. Valid values are:
0 - The auxiliary storage will be allocated normally. That is, as
additional auxiliary storage is required, it will be allocated in logically
sized extents to accommodate the current space requirement, and
anticipated future requirements, while minimizing the number of disk
I/O operations.
1 - The auxiliary storage will be allocated to minimize the space used
by the object. That is, as additional auxiliary storage is required, it
will be allocated in small sized extents to accommodate the current
space requirement. Accessing an object composed of many small
extents may increase the number of disk I/O operations for that
object.
2 - The system will dynamically determine the optimum auxiliary
storage allocation for the object, balancing space used versus disk
I/O operations. For example, if a file has many small extents, yet
is frequently being read and written, then future auxiliary storage
allocations will be larger extents to minimize the number of disk I/O
operations. Or, if a file is frequently truncated, then future auxiliary
storage allocations will be small extents to minimize the space used.
Additionally, information will be maintained on the stream file sizes
for this system and its activity. This file size information will also be
used to help determine the optimum auxiliary storage allocations for
this object as it relates to the other objects sizes.
QEZDIRTYP2 SMALLINT The format of the specified directory object. Valid values are:
0 - The directory format is *TYPE1.
1 - The directory format is *TYPE2.
QEZFILTYP2 1 SMALLINT The format of the stream file (*STMF). Valid values are:
0 - The stream file format is *TYPE1.
1 - The stream file format is *TYPE2.
QEZUDFTYP2 SMALLINT The default file format of stream files (*STMF) created in the user-
defined file system. Valid values are:
0 - The stream file format is *TYPE1.
1 - The stream file format is *TYPE2.
QEZNONSAV SMALLINT Whether the object can be saved or not. Valid values are:
0 - Object will be saved.
1 - Object will not be saved. Additionally, if this object is a
directory, none of the objects in the directory's subtree will be
saved unless they were explicitly specified as an object to be saved.
The subtree includes all subdirectories and the objects within those
subdirectories.
QEZCASE SMALLINT Indicates the Case Sensitivity of the file system that contains this
object.
0 - File system is not case sensitive.
1 - File system is case sensitive.
QEZOFLOW SMALLINT Indicates if the object has overflowed the auxiliary storage pool it
resides in. Valid values are:
0 - Auxiliary storage pool is not overflowed.
1 - Auxiliary storage pool is overflowed.
QEZPCREAD SMALLINT Whether the object can be written to or deleted, have its extended
attributes changed or deleted, or have its size changed. Valid values
are:
0 - The object can be changed.
1 - The object cannot be changed.
QEZPCHID 1 SMALLINT Whether the object can be displayed using an ordinary directory
listing.
0 - The object is not hidden.
1 - The object is hidden.
QEZPCSYS SMALLINT Whether the object is a system file and is excluded from normal
directory searches.
0 - The object is not a system file.
1 - The object is a system file.
QEZPCARC SMALLINT Whether the object has changed since the last time the object was
examined.
0 - The object has not changed.
1 - The object has changed.
QEZSYSARC SMALLINT Whether the object has changed and needs to be saved. It is set on
when an object's change time is updated, and set off when the object
has been saved.
0 - The object has not changed and does not need to be saved.
1 - The object has changed and does need to be saved.
QEZJTRNI GRAPHIC(1) This field describes information about the current state of the object
as it relates to commitment control boundaries. The valid values are:
x'00' (NONE) - There are no partial transactions.
x'01' (PARTIAL_TRANSACTION) - The object was restored with
partial transactions. This object cannot be used until the Apply
Journaled Changes (APYJRNCHG) or Remove Journaled
Changes (RMVJRNCHG) command is used to complete or rollback
the partial transactions.
x'02' (ROLLBACK_ENDED) - The object had a rollback operation
ended using the "End Rollback" option on the Work with Commitment
Definition (WRKCMTDFN) screen. It is recommended that the object
be restored as it cannot be used. As a last option, the Change
Journaled Object (CHGJRNOBJ) command can be used to allow
the object to be used. Doing this, however, can leave the object in an
inconsistent state.
QEZTMPOBJ SMALLINT Whether the object is a temporary object. Possible values are:
• 0 - The object is a permanent object.
• 1 - The object is a temporary object.
QEZTMPUDFS SMALLINT Whether the objects in the user-defined file system (UDFS) are
temporary objects. Possible values are:
• 0 - The objects in the UDFS are permanent objects.
• 1 - The objects in the UDFS are temporary objects.
QEZUNIT GRAPHIC(10) The preferred storage media for the objects in the UDFS. Possible
values are:
• *SSD - Storage should be allocated from solid state drive storage
media, if available.
• *ANY - Storage will be allocated from any available storage media.
• *NOTAVL - The storage media preference can not be determined.
QEZSYSRSSV SMALLINT Whether the system prevents the object from being saved. Possible
values are:
• 0 - The system does not prevent the object from being saved.
• 1 - The system prevents the object from being saved.
Notes:
1. This field is included in the subset of fields used by the PRTDIRINF command.
2. In this field, only the object name is stored. The rest of the path name is stored in field QEZDIRNAM1
if the length of the directory name is below 1 KB or in QEZDIRNAM2 if the directory names are above
1 KB.
The following table is an example of a table that lists the directories processed by the RTVDIRINF
command.
Note:
1. This field is included in the subset of fields used by the PRTDIRINF command.
The following table shows the information that the RTVDIRINF command stores regarding the files it has
created when it runs. If the file that contains this information does not exist, the RTVDIRINF command
creates it; when the command runs on subsequent occasions, the information is appended to the existing
file. The PRTDIRINF command uses this information to determine which database files were used to
store information that was retrieved by different instances of the RTVDIRINF command.
QEZDIRFILE VARGRAPHIC (20) The name of the file generated to store the directory's indexes.
1
Note:
1. This field is included in the subset of fields used by the PRTDIRINF command.
Related tasks
Collecting and analyzing folder attributes with IBM Navigator for i
You can collect and analyze attributes for objects in the integrated file system with IBM Navigator for
i. This easy-to-use interface provides the same function as the Retrieve Directory Information
(RTVDIRINF) command does. You can examine and query data collected by this interface as well as that
collected by the RTVDIRINF command.
Related information
Retrieve Directory Information (RTVDIRINF) command
Qp0lGetPathFromFileID()--Get Path Name of Object from Its File ID API
Qp0lSetAttr()--Set Attributes API
Apply Journaled Changed (APYJRNCHG) command
Remove Journaled Changes (RMVJRNCHG) command
• You can make your own programs and access the database tables by using any valid DB methods.
• Instead of running various queries by issuing commands, you can easily use the IBM Navigator for i to
retrieve, display, and analyze the directory information data (which is known as folder attribute data in
IBM Navigator for i). See Collecting and analyzing folder attributes with IBM Navigator for i for more
information.
Related tasks
Collecting and analyzing folder attributes with IBM Navigator for i
You can collect and analyze attributes for objects in the integrated file system with IBM Navigator for
i. This easy-to-use interface provides the same function as the Retrieve Directory Information
(RTVDIRINF) command does. You can examine and query data collected by this interface as well as that
collected by the RTVDIRINF command.
Related information
Print Directory Information (PRTDIRINF) command
Start SQL Interactive Session (STRSQL) command
Embedded SQL programming
SQL call level interface
• Table 10 on page 88 is mostly used by the PRTDIRINF command to obtain specific data about
RTVDIRINF runs. Examples of this are: The names of the tables created, the library where the tables
reside, and the starting and ending time of processing. You might use this table to know when a
RTVDIRINF was issued or what tables must be searched in order to query them.
Procedure
1. In IBM Navigator for i, expand File Systems > Integrated File System.
2. Right-click the folder containing the objects of interest, and select Folder Attribute Information >
Collect Attributes.
3. In the Collect Attributes window, specify your preferences. Select Include the contents of subfolders
contained in this folder if you want to collect the attributes of subfolders as well. Optionally, you can
specify the File prefix and Library. Click OK to start collecting object attributes.
This data collection process might take a while. You need to wait a few seconds before the Display
Collected Attributes windows is displayed.
4. In the Display Collected Attributes window, clicking the arrowhead next to the entry you want to
analyze and select Analyze information.
Note: If you have performed the Collect Attributes operation from IBM Navigator for i or run the
Retrieve Directory Information (RTVDIRINF) command before, you can enter Display
Collected Attributes directly by right-clicking on the folder and selecting Folder Attribute Information
> Display Collect Attributes.
5. In the Analyze Folder Information window, customize the attributes you want to view on the Columns,
Filter, and Order tabs. Then click OK to generate the Folder Attribute Information Report.
Here is an example. Suppose you want to display the files that are larger than 10 MB in size and their
owners, with the results sorted first by size and then by owner.
• On the Columns tab, select Owner and click Add. Select Parent folder path and click Add. Select
Object name and click Add. Select Allocated size and click Add.
• On the Filter tab, select Allocated size in Field, select Sizes greater than in Condition, type 10 in
Size, and select Megabytes in Unit. Click Add to create the filter.
• On the Order tab, select Allocated size and Descending for First sort, and select Owner and
Descending for Second sort.
• Click OK. Then the Folder Attribute Information Report displays the tailored information.
6. In the Folder Attribute Information Report Window, you could select the delete action to remove
Integrated File System objects listed in the report without leaving the report window.
Accessing using a PC
If your PC is connected to an IBM iproduct, you can interact with the directories and objects of the
integrated file system as if they were stored on your PC.
You can copy objects between directories by using the drag-and-drop capability of Windows Explorer. As
needed, you can actually copy an object from your system to the PC by selecting the object in the system
drive and dragging the object to the PC drive.
Any objects that are copied between an IBM i product and PCs by using the Windows interface can
be automatically converted between EBCDIC (extended binary-coded decimal interchange code) and
ASCII (American National Standard Code for Information Interchange). The IBM i Access Family can
be configured to automatically perform this conversion, and can even specify that the conversion be
performed on files with a specific extension.
Depending on the type of object, you can use PC interfaces and PC applications to work with it. For
example, a stream file containing text can be edited using a PC editor.
If you are connected to an IBM iproduct using your PC, the integrated file system makes your system's
directories and objects available to the PC. PCs can work with files in the integrated file system by using
file sharing clients built into the Windows operating systems, an FTP client, or IBM Navigator for i. Your PC
uses Windows file sharing clients to access IBM i NetServer, which runs on your system.
Related concepts
Accessing using IBM Navigator for i
IBM Navigator for i is a web interface for managing and administering your systems. IBM Navigator for i
makes operation and administration of your system easier and more productive.
Related tasks
Accessing using IBM i NetServer
IBM i Support for Windows Network Neighborhood (IBM i NetServer) is a function that enables Windows
clients to access IBM i shared directory paths and shared output queues. IBM i NetServer allows PCs that
run Windows software to seamlessly access data and printers that are managed by your IBM i platform.
Related reference
Accessing using File Transfer Protocol
Journaling objects
• “Starting journaling” on page 105
• “Ending journaling” on page 106
Procedure
1. Right-click Start, and select Explore to open Windows Explorer on your Windows PC.
2. Open the Tools menu, and select Map network drive.
3. Select a letter of a free drive for the file share (such as the I:\ drive).
4. Enter the name of anIBM i NetServer file share.
For example, you can enter the following syntax: \\QSYSTEM1\Sharename
Note: QSYSTEM1 is the system name of IBM i NetServer, and Sharename is the name of the file share
you want to use.
5. Click OK.
Results
Note: When connecting using IBM i NetServer, the system name might be different from the name
used by the IBM i Access Family. For example the IBM i NetServer name might be QAS400X,
and the path to work with files might be \\QAS400X\QDLS\MYFOLDER.FLR\MYFILE.DOC. However,
the IBM i Access Family name might be AS400X, and the path to work with files might be \
\AS400X\QDLS\MYFOLDER.FLR\MYFILE.DOC.
You choose which directories to share with the network using IBM i NetServer. Those directories appear
as the first level under the system name. For example, if you share the /home/fred directory with the
name fredsdir, a user can access that directory from the PC with the name \\QAS400X\FREDSDIR, or
from a Linux client with the name //qas400x/fredsdir.
The "root" (/) file system provides much better performance for PC file serving than other IBM i file
systems. You might want to move files to the "root" (/) file system. See “Moving files or folders to another
file system” on page 133 for more information.
Related information
i5/OS NetServer
i5/OS NetServer file shares
CVTDIR OPTION(*CHECK)
This invocation of the CVTDIR command lists the current directory format for the "root" (/), QOpenSys
and UDFS file systems and if the file system is currently being converted. Additionally, it lists the current
priority of the conversion function, the file system currently being converted by the system, the number
of links that have been processed for that file system, and the percentage of directories which have been
processed for that file system. The system starts the conversion function with a very low priority (99) so
that the conversion function does not significantly impact system activity. However, you can change the
priority of the conversion function by using the *CHGPTY value for the OPTION parameter of the CVTDIR
command. See CVTDIR for additional information about this parameter specification.
Because the QFILESYS1 job is processing the conversion, you can display the QFILESYS1 job log for
messages indicating any problems with the conversion. Additionally, various progress messages are
sent about the file system conversions. These messages include information such as: the file system
being converted, the number of links which have been processed in the file system, the percentage of
directories that have been processed in the file system, and so on. All of the error and many of the
progress messages are also sent to the QSYSOPR message queue. Therefore, for future reference, it is
good practice to ensure that the QHST logs or QFILESYS1 job logs are preserved, which contain these
messages. After the file systems have been fully converted, and the integrated file system is working as
expected, you can delete this historical information.
Related information
Convert Directory (CVTDIR) command
Objects renamed
*TYPE2 directories require the link names to be valid UTF-16 names.
The naming rule of *TYPE2 directories differs from *TYPE1 directories, which have UCS2 Level 1 names.
For this reason, invalid or duplicate names might be found during a directory conversion. When a name
is found to be invalid or a duplicate, the name is changed to a unique, valid, UTF-16 name, and message
CPIA08A is sent to the QFILESYS1 job log and the QSYSOPR message queue listing the original name and
the new name. Combined characters or invalid surrogate character pairs contained in a name might cause
an object to be renamed.
For more information about UTF-16, refer to the Unicode home page (www.unicode.org ).
Combined characters
Some characters can be made up of more than one Unicode character.
For example, characters that have an accent (for example, é or à) or an umlaut (for example, ä or ö) need
to be changed, or normalized, to a common format before they are stored in the directory, so that all
objects have a unique name. Normalizing a combined character is a process by which the character is put
in a known and predictable format. The format chosen for *TYPE2 directories is the canonical composed
form. If there are two objects in a *TYPE1 directory that contain the same combined characters, they are
normalized to the same name. This causes a collision, even if one object contains composed combined
characters and the other object contains decomposed combined characters. Therefore, one of them has
its name changed before it is linked in the *TYPE2 directory.
Surrogate characters
Some characters do not have a valid representation in Unicode.
These characters have some special values; they are made up of two Unicode characters in two specific
ranges such that the first Unicode character is in one range (for example 0xD800-0xD8FF) and the second
Unicode character is in the second range (for example 0xDC00-0xDCFF). This is called a surrogate pair.
If one of the Unicode characters are missing or if they are out of order, (only a partial character), it is an
invalid name. Names of this type have been allowed in *TYPE1 directories, but are not allowed in *TYPE2
directories. In order for the conversion function to continue, the name is changed before the object is
linked into the *TYPE2 directory if a name containing one of these invalid names is found.
Objects renamed
In a file system that is not case sensitive, the system does not distinguish between uppercase and
lowercase characters during searches for names. Any change in the casing rules will affect the characters
that are considered the same when not distinguishing between uppercase and lowercase.
During the automatic name conversion, names that were not considered to be the same in Unicode
Standard 2.0 might now be considered the same in Unicode Standard 4.0. Thus, one of the objects has to
be renamed. When a name is changed to be unique, message CPDA0BC is sent to QHST listing the original
name and the new name.
For more information about different versions of the Unicode standard, refer to the Unicode home page
(www.unicode.org ).
Journaling objects
The primary purpose of journaling is to enable you to recover the changes to an object that have occurred
since the object was last saved. Additionally, a key use of journaling is to assist in the replication of object
changes to another system either for high availability or workload balancing.
This information will provide a brief overview of journal management, as well as provide considerations
for journaling integrated file system objects and a description of journaling support for integrated file
system objects.
Related information
Journal management
Journaling overview
These topics introduce journaling support for integrated file system objects.
Related information
Journal management
Journal management
The main purpose for journal management is to enable you to recover the changes to an object that have
occurred since the object was last saved.
You can also use journal management for:
• An audit trail of activity that occurs for objects on the system
• Recording activity that has occurred for objects other than those you can journal
• Quicker recovery when restoring from save-while-active media
• Assist in the replication of object changes to another system either for high availability or workload
balancing
• Assistance in testing application programs
Journaled operations
These operations are only journaled when the type of the object or link that the operation is using is a type
that can also be journaled.
• Create an object.
• Add a link to an existing object.
Starting journaling
To start journaling, do these steps on an object through the IBM Navigator for i.
Procedure
1. Start IBM Navigator for i.
2. Expand File Systems.
3. Right-click the object that you want to journal in the right work space, and select Journaling.
4. After selecting the appropriate journaling options, click Start.
Results
To start journaling on an object through the character-based interface, you can use either the Start
Journal (STRJRN) command or the QjoStartJournal API.
Changing journaling
After journaling has started on an object and, for whatever reasons, you want to change the journal
attributes on the object without having to end and restart journaling, you can use the Change
Journaled Object (CHGJRNOBJ) command to change journaled objects.
Related tasks
Starting journaling
To start journaling, do these steps on an object through the IBM Navigator for i.
Ending journaling
After journaling has started on an object and, for whatever reasons, you want to end journaling on this
object, you can use the steps described in this topic.
Related information
Change Journaled Object (CHGJRNOBJ) command
Ending journaling
After journaling has started on an object and, for whatever reasons, you want to end journaling on this
object, you can use the steps described in this topic.
Procedure
1. Start IBM Navigator for i.
2. Expand File Systems.
3. Right-click the object that you want to stop journaling in the right work space, and select Journaling.
4. Click End.
Results
To end journaling on an object through the character-based interface, you can use either the End
Journal (ENDJRN) command or the QjoEndJournal API.
Related tasks
Starting journaling
To start journaling, do these steps on an object through the IBM Navigator for i.
Related information
End Journal (ENDJRN) command
End Journal (QjoEndJournal) API
Journal management
Is the command
Yes No No
threadsafe?
How many instances of
the command can be
Multiple instances Single instance Single instance
performed at the same
time?
What applicable Most (See “Re-creation
integrated file system of integrated file
provided objects All system provided None
are re-created if objects” on page 108
necessary? for more information.)
Can damaged objects
be identified without Yes No No
being reclaimed?
Related concepts
Examples: Reclaim Object Links (RCLLNK) command
These examples describe situations in which the Reclaim Object Links (RCLLNK) command can be
used to reclaim objects in the "root" (/), QOpenSys, and mounted user-defined file systems.
Related reference
Re-creation of integrated file system provided objects
This table shows the objects provided by the integrated file system that the Reclaim Object Links
(RCLLNK) command re-creates if they do not exist. These objects are normally created during the initial
program load (IPL). You can also re-create some of these objects, if necessary, using the Reclaim
Storage (RCLSTG) command.
Related information
Reclaim Storage (RCLSTG) command
Reclaim Object Links (RCLLNK) command
Table 12. Objects provided by the integrated file system and re-created by the RCLLNK and RCLSTG
commands
Recreated by RCLSTG
Path name Type Recreated by RCLLNK ASPDEV(*SYSBASE)
/dev/zero *CHRSF Yes Yes
/dev/null *CHRSF Yes Yes
/dev/xti/tcp *CHRSF Yes No
/dev/xti/udp *CHRSF Yes No
/etc/vfs *STMF Yes No
In order for the RCLLNK command to re-create an object provided by the integrated file system that
does not exist, it must be run with the SUBTREE parameter set to *DIR or *ALL while specifying the
parent directory. The command must successfully reclaim the parent directory of the system object. For
example,
re-creates the /dev/zero and /dev/null *CHRSF objects if they do not exist.
In order for the RCLSTG command to re-create an integrated file system provided object that does not
exist, it must be run with the ASPDEV parameter set to *SYSBASE and the directory recovery portion of
reclaim must not be omitted.
Related concepts
Provided directories
When the system is restarted, the integrated file system creates the directories listed here if they do not
already exist. These directories should not be moved or renamed after being created by the system.
Related information
Reclaim Object Links (RCLLNK) command
where MyApplicationInstallDirectory is the name of the directory containing the problem objects.
Example: Finding all damaged objects in the "root" (/), QOpenSys, and
mounted user-defined file systems
In this situation, a disk failure has caused damage to a number of objects. You must identify the damaged
objects before determining how to properly recover them.
You need a solution to identify the damaged objects, but not take action against them. You must not
disrupt normal file system operations.
To identify the damaged objects, use this command:
In addition, this command will also correct problems other than damaged objects as it identifies damaged
objects.
Example: Deleting all damaged objects in the "root" (/), QOpenSys, and
mounted user-defined file systems
In this situation, a disk failure caused a number of objects to become damaged. You must delete the
damaged objects so that a backup copy of the objects can be restored from media.
To delete the damaged objects, use this command:
The damaged objects are deleted without disruption to normal file system operations. In addition,
problems other than damage are corrected as the damaged objects are being deleted.
Programming support
To take advantage of the stream files, directories, and other support of the integrated file system, you
need to use a set of application programming interfaces (APIs) provided for accessing integrated file
system functions.
Additionally, the addition of the integrated file system allows you to copy data between physical database
files and stream files. You can perform this copy using CL commands, the data transfer function of IBM i
Access Family, or APIs.
The DTAFMT parameter specifies that the input stream (import) file is delimited; the other choice is
DTAFMT(*FIXED), which requires an field definition file to be specified. The FLDDLM, RCDDLM and
STRDLM parameters identify the characters that act as the delimiters, or separators for fields, records,
and strings.
The DATFMT and TIMFMT parameters indicate the format for any date and time information that is copied
to the import file.
The commands are useful because they can be placed into a program, and they run entirely on your
system. However, the interfaces are complex.
Related information
Copy to Stream File (CPYTOSTMF) command
Copy from Stream File (CPYFRMSTMF) command
Copy to Import File (CPYTOIMPF) command
Copy from Import File (CPYFRMIMPF) command
Control language (CL)
Transferring data into a newly created database file definition and file
You can follow these directions to transfer data into a newly created database file definition and file.
1. Establish a connection to the system.
2. Map a network drive to the appropriate path in the IBM i file system.
3. From the IBM i Access for Windows window, click Data Transfer to IBM i.
4. Open Tools of the Data Transfer to IBM i application.
5. Click Create IBM i database file.
A wizard appears that allows you to create a new IBM i database file from an existing PC file. You need
to specify the name of the PC file from which the IBM i file will be based, the name of the IBM i file
to create, and several other necessary details. This tool parses a given stream file to determine the
number, type, and size of the fields that are required in the resulting database file. The tool can then
create the database file definition on your system.
Note: Some of these functions are also used for IBM i sockets.
Related concepts
File systems
A file system provides you with the support to access specific segments of storage that are organized as
logical units. These logical units on your system are files, directories, libraries, and objects.
Related reference
Example: Integrated file system C functions
This simple C language program illustrates the use of several integrated file system functions.
Copying data using APIs
ILE C functions
ILE C provides the standard C functions defined by the American National Standards Institute (ANSI).
These functions can operate through either the data management I/O support or the integrated file
system stream I/O support, depending on what you specify when you create the C program. The compiler
uses the data management I/O unless you tell it differently.
To tell the compiler to use the integrated file system stream I/O, you must specify *IFSIO for the System
interface option (SYSIFCOPT) parameter in the Create ILE C Module (CRTCMOD) or Create Bound C
Program (CRTBNDC) command. When you specify *IFSIO, the integrated file system I/O functions are
bound instead of the data management I/O functions. In effect, the C functions of ILE C use the integrated
file system functions to perform I/O.
Figure 10. ILE C functions use the integrated file system stream I/O functions
For more information about using ILE C functions with integrated file system stream I/O, see the
publication WebSphere® Development Studio: ILE C/C++ Programmer's Guide . For details on each C
function of ILE C, see the publication WebSphere Development Studio: C/C++ Language Reference .
File descriptor
When using ILE C stream I/O functions as defined by the American National Standards Institute (ANSI) to
perform operations on a file, you identify the file through the use of pointers. When using the integrated
file system C functions, you identify the file by specifying a file descriptor. A file descriptor is a positive
integer that must be unique in each job.
The job uses a file descriptor to identify an open file when performing operations on the file. The file
descriptor is represented by the variable fildes in C functions that operate on the integrated file system
and by the variable descriptor in C functions that operate on sockets.
Each file descriptor refers to an open file description, which contains information such as a file offset,
status of the file, and access modes for the file. The same open file description can be referred to by more
than one file descriptor, but a file descriptor can refer to only one open file description.
If an ILE C stream I/O function is used with the integrated file system, the ILE C runtime support converts
the file pointer to a file descriptor.
When using the "root" (/), QOpenSys, or user-defined file systems, you can pass access to an open
file description from one job to another, thus allowing the job to access the file. You do this by using
the givedescriptor(), takedescriptor(), sendmsg(), or recvmsg() function to pass the file
descriptor between jobs.
Security
When using the integrated file system APIs, you can restrict access to objects as you can when using data
management interfaces. Be aware, however, that adopting authorities is not supported. An integrated file
system API uses the authority of the user profile under which the job is running.
Each file system may have its own special authority requirements. NFS server and file server jobs have
special considerations. These jobs are generally performing functions on behalf of users who do not
necessarily own the user profile for the job. NFS server requests run under the profile of the user whose
user identification (UID) number was received by the NFS server at the time of the request. Other file
server jobs perform requests for the user that are connected to the server.
Authorities on your system are the equivalent of permissions on UNIX systems. The types of permissions
are read and write (for a file or a directory) and execute (for a file) or search (for a directory). The
permissions are indicated by a set of permission bits, which make up the mode of access of the file
or directory. You can change the permission bits by using the change mode functions chmod() or
fchmod(). You can also use the umask() function to control which file permission bits are set each
time a job creates a file.
Related information
chmod()--Change File Authorizations API
fchmod()--Change File Authorizations by Descriptor API
umask()--Set Authorization Mask for Job API
Integrated file system APIs
Security reference
Socket support
If your application is using the "root" (/), QOpenSys, or user-defined file systems, you can take advantage
of the integrated file system local socket support. A local socket object (object type *SOCKET) allows two
jobs running on the same system to establish a communications connection with each other.
One of the jobs establishes a connection point by using the bind() C language function to create a local
socket object. The other job specifies the name of the local socket object on the connect(), sendto(),
or sendmsg() function.
After the connection is established, the two jobs can send data to and receive data from each other using
the integrated file system functions such as write() and read(). None of the data that is transferred
actually goes through the socket object. The socket object is just a meeting point where the two jobs can
find each other.
When the two jobs are finished communicating, each job uses the close() function to close the socket
connection. The local socket object remains in the system until it is removed using the unlink() function
or the Remove Link (RMVLNK) command.
A local socket object cannot be saved.
Related information
Sockets programming
write()--Write to Descriptor API
read()--Read from Descriptor API
Data conversion
When you access files through the integrated file system, data in the files may or may not be converted,
depending on the open mode requested when the file is opened.
An open file can be in one of two open modes:
Binary
The data is read from the file and written to the file without conversion. The application is responsible
for handling the data.
Text
The data is read from the file and written to the file, assuming it is in textual form. When the data
is read from the file, it is converted from the coded character set identifier (CCSID) of the file to
the CCSID of the application, job, or system receiving the data. When data is written to the file, it is
converted from the CCSID of the application, job, or system to the CCSID of the file. For true stream
files, any line-formatting characters (such as carriage return, tab, and end-of-file) are just converted
from one CCSID to another.
When reading from record files that are being used as stream files, end-of-line characters (carriage
return and line feed) are appended to the end of the data in each record. When writing to record files:
• End-of-line characters are removed.
• Tab characters are replaced by the appropriate number of blanks to the next tab position.
• Lines are padded with either blanks (for a source physical file member) or nulls (for a data physical
file member) to the end of the record.
On an open request, one of the following can be specified:
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
char InitialFile[BUFFER_SIZE];
char LinkName[BUFFER_SIZE];
char InitialDirectory[BUFFER_SIZE] = ".";
char Buffer[32];
int FilDes = -1;
int BytesRead;
int BytesWritten;
uid_t UserID;
int main ()
{
1
/* Get and print the real user id with the getuid() function. */
UserID = getuid();
printf("The real user id is %u. \n",UserID);
2
/* Get the current working directory and store it in InitialDirectory. */
if ( NULL == getcwd(InitialDirectory,BUFFER_SIZE) )
{
perror("getcwd Error");
CleanUpOnError(1);
return 0;
}
printf("The current working directory is %s. \n",InitialDirectory);
3
/* Create the file TEST_FILE for writing, if it does not exist.
Give the owner authority to read, write, and execute. */
FilDes = open(TEST_FILE, O_WRONLY | O_CREAT | O_EXCL, S_IRWXU);
if ( -1 == FilDes )
{
perror("open Error");
CleanUpOnError(2);
return 0;
}
printf("Created %s in directory %s.\n",TEST_FILE,InitialDirectory);
4
/* Write TEST_DATA to TEST_FILE via FilDes */
BytesWritten = write(FilDes,TEST_DATA,strlen(TEST_DATA));
if ( -1 == BytesWritten )
{
perror("write Error");
CleanUpOnError(3);
return 0;
}
printf("Wrote %s to file %s.\n",TEST_DATA,TEST_FILE);
6
/* Make a new directory in the current working directory and
grant the owner read, write and execute authority */
if ( -1 == mkdir(NEW_DIRECTORY, S_IRWXU) )
{
perror("mkdir Error");
CleanUpOnError(5);
return 0;
}
printf("Created directory %s in directory %s.\n",NEW_DIRECTORY,InitialDirectory);
7
/* Change the current working directory to the
directory NEW_DIRECTORY just created. */
if ( -1 == chdir(NEW_DIRECTORY) )
{
perror("chdir Error");
CleanUpOnError(6);
return 0;
}
printf("Changed to directory %s/%s.\n",InitialDirectory,NEW_DIRECTORY);
8
/* Create a link to the InitialFile name with the LinkName. */
if ( -1 == link(InitialFile,LinkName) )
{
perror("link Error");
CleanUpOnError(7);
return 0;
}
printf("Created a link %s to %s.\n",LinkName,InitialFile);
9
/* Open the LinkName file for reading only. */
if ( -1 == (FilDes = open(LinkName,O_RDONLY)) )
{
perror("open Error");
CleanUpOnError(8);
return 0;
}
printf("Opened %s for reading.\n",LinkName);
10
/* Read from the LinkName file, via FilDes, into Buffer. */
BytesRead = read(FilDes,Buffer,sizeof(Buffer));
if ( -1 == BytesRead )
{
perror("read Error");
CleanUpOnError(9);
return 0;
}
printf("Read %s from %s.\n",Buffer,LinkName);
if ( BytesRead != BytesWritten )
{
printf("WARNING: the number of bytes read is "\
"not equal to the number of bytes written.\n");
}
12
/* Unlink the LinkName link to InitialFile. */
if ( -1 == unlink(LinkName) )
{
perror("unlink Error");
CleanUpOnError(11);
return 0;
}
printf("%s is unlinked.\n",LinkName);
13
/* Change the current working directory
back to the starting directory. */
if ( -1 == chdir(PARENT_DIRECTORY) )
{
perror("chdir Error");
CleanUpOnError(12);
return 0;
}
printf("changing directory to %s.\n",InitialDirectory);
14
/* Remove the directory NEW_DIRECTORY */
if ( -1 == rmdir(NEW_DIRECTORY) )
{
perror("rmdir Error");
CleanUpOnError(13);
return 0;
}
printf("Removing directory %s.\n",NEW_DIRECTORY);
15
/* Unlink the file TEST_FILE */
if ( -1 == unlink(TEST_FILE) )
{
perror("unlink Error");
CleanUpOnError(14);
return 0;
}
printf("Unlinking file %s.\n",TEST_FILE);
Creating a folder
To create a folder, follow these steps.
Procedure
1. Save a copy of all objects that you are planning to move.
Having a backup copy allows you to restore the objects to the original file system if you find that
applications cannot access the objects in the file system to which you have moved them.
Note: You cannot save objects from one file system and restore them to another.
2. Create the directories in the file system that you want to move the objects to using the Create
Directory (CRTDIR) command.
You should carefully examine the attributes of the directory the objects are currently in to determine if
you want to duplicate those attributes on the directories you create. For example, the user who creates
the directory is its owner, rather than the user who owned the old directory. You may want to transfer
ownership of the directory after you have created it, if the file system supports setting the owner of a
directory.
3. Move the files to the file system that you have chosen using the Move Object (MOV) command.
Setting permissions
Adding permissions to an object allows you to control the ability of others to manipulate that object. With
permissions, you can allow some users to only view objects, while allowing others to actually edit the
objects.
Procedure
1. In IBM Navigator for i, expand File systems > All tasks.
2. Expand Integrated File System and select Properties.
3. Enter the file extension that you want to convert automatically in the File extensions for automatic
text file conversion text box.
4. Click OK.
Results
Procedure
1. In System i Navigator, expand My Connections > your system > File Systems > Integrated File
System. Continue to expand until the object that you want to send is visible.
2. Right-click the file or folder and select Send. The file or folder appears in the Selected Files and
Folders list of the Send Files from dialog.
3. Expand the list of available systems and groups.
4. Select a system and click Add to add the system to the Target systems and groups list. Repeat this
step for all the systems you want to send this file or folder.
5. Click OK to send the file or folder.
Procedure
1. Complete the steps for “Sending a file or folder to another system” on page 135.
2. Click the Options tab. The default options are to include subfolders when packaging and sending files
and to replace an existing file with the file being sent.
3. Change these options as required.
4. Click Advanced to set advanced save and restore options.
5. Click OK to save the advanced options.
6. Click OK to send the file or folder, or click Schedule to set a time for sending the file or folder.
7. Select the options for when you want to send the file or folder.
The schedule function gives you the flexibility to do your work at a convenient time.
Results
For more information about the options, see the following sections. The descriptions for these options are
for files. Only files may be scanned. With folders and user-defined file systems, you can specify what scan
attribute should be given to files created in that folder or user-defined file system.
• Yes
The object will be scanned according to the rules described in the scan-related exit programs if the
object has been modified or if the scanning software has been updated since the last time the object
was scanned.
• No
The object will not be scanned by the scan-related exit programs.
Note: If the Scan on next access after object has been restored option is selected in the
system values when an object with this attribute is restored, the object will be scanned at least once
after the restore.
• Only when the object has changed
The object will be scanned according to the rules described in the scan-related exit programs only if
the object has been modified since the last time the object was scanned. It will not be scanned if the
scanning software has been updated.
If the Use only when objects have changed attribute to control scan option is not
specified in the system values, this object change only attribute will not be used, and the object
will be scanned after it is modified and when scan software indicates an update.
Checking in objects
You can check in a file or all eligible objects within a folder by using the Check In option on the pop-up
menu or the Properties page.
Procedure
1. In IBM Navigator for i, under the IBM i Management node, expand File Systems > Integrated File
System.
2. Navigate through the file system folders until you locate the folder that contains the file or folder you
want to download.
3. Click on this folder to display its contents in the console work space.
4. Right-click the file or folder in the console work space and select Download.
5. A confirmation panel showing the list of items you selected for downloading is displayed. Select
Compress selected files if you want selected items get compressed before downloading.
6. Click Download on the confirmation panel.
Procedure
1. In IBM Navigator for i, under the IBM i Management node, expand File Systems > Integrated File
System.
2. Navigate through the file system folders until you locate the folder that contains the folder to which
you wish to upload a file.
3. Click on this folder to display its contents in the console work space.
4. Right-click the folder to which you want to upload a file in the console work space and select Upload.
5. Select a file from your local file system by clicking Browse button. Input CCSID for the file to be
uploaded or leave it to System Default (1252).
6. Click Upload.
Procedure
1. In IBM Navigator for i, under the IBM i Management node, expand File Systems > Integrated File
System.
2. Click on the Go to Integrated File System folder node.
3. A panel is shown in the work space, where you can enter the path of the folder you wish to work with,
or, you can select from previously accessed folders by choosing the path from the drop-down choices.
4. Click on the Go button once you have entered or selected the folder you wish to work with.
5. Any folder path for which you enter into the path combo box and press Go, will be automatically saved
in the list of previously accessed folders.
6. Click Close to exit the panel.
Procedure
1. In IBM Navigator for i, under the IBM i Management node, expand File Systems > Integrated File
System.
2. Navigate to any integrated file system folder.
API Description
endnetconfig() Releases the pointer to the records stored in the netconfig file
freenetconfigent() Frees the netconfig structure that is returned from the call to the
getnetconfigent() function
getnetconfig() Returns the pointer to the current record in the netconfig file and
increments its pointer to the next record
getnetconfigent() Returns the pointer to the netconfig structure that corresponds to
the input netid
setnetconfig() Initializes the record pointer to the first entry in the netconfig file.
The setnetconfig() function must be used before the first use of
getnetconfig() function. The setnetconfig() function returns
a unique handle (a pointer to the records stored in the netconfig file)
to be used by the getnetconfig() function.
Related information
API finder
API Description
netdir_free() Frees structures that are allocated by name-to-address translation
APIs
netdir_getbyaddr() Maps addresses into host names and service names
netdir_getbyname() Maps the host name and service name that are specified in the
service parameter to a set of addresses that are consistent with the
transport identified in the netconfig structure
netdir_options() Provides interfaces to transport-specific capabilities such as the
broadcast address and reserved port facilities of TCP and UDP
netdir_sperror() Issues an informational message that states why one of the name-
to-address translation APIs failed
taddr2uaddr() Translates a transport-specific (local) address to a transport-
independent (universal) address
uaddr2taddr() Translates a transport-independent (universal) address to a
transport-specific (local) address (netbuf structure)
Related information
API finder
API Description
xdr_array() A filter primitive that translates between variable-length arrays and
their corresponding external representations. This function is called
to encode or decode each element of the array
xdr_bool() A filter primitive that translates between Booleans (C integers)
and their external representations. When encoding data, this filter
produces values of either 1 or 0.
xdr_bytes() A filter primitive that translates between counted byte arrays and
their external representations. This function treats a subset of
generic arrays in which the size of array elements is known to
be 1 and the external description of each element is built-in. The
length of the byte sequence is explicitly located in an unsigned
integer. The byte sequence is not ended by a null character. The
external representation of the bytes is the same as their internal
representation.
xdr_char() A filter primitive that translates between C-language characters and
their external representation
xdr_double() A filter primitive that translates between C-language double-
precision numbers and their external representations
xdr_double_char() A filter primitive that translates between C-language 2-byte
characters and their external representation
Related information
API finder
Authentication APIs
These APIs provide authentication to the TI-RPC applications.
API Description
auth_destroy() Destroys the authentication information structure that is pointed to
by the auth parameter
authnone_create() Creates and returns a default RPC authentication handle that passes
null authentication information with each remote procedure call.
authsys_create() Creates and returns an RPC authentication handle that contains
authentication information
Related information
API finder
API Description
rpc_call() Call a remote procedure on the specified system
rpc_reg() Register a procedure with RPC service package
Related information
API finder
API Description
clnt_call() Call a remote procedure associated with the client
clnt_control() Change information about a client object
clnt_create() Create a generic client handle
Related information
API finder
API Description
clnt_tp_create() Create a client handle
svc_tp_create() Create a server handle
Related information
API finder
API Description
clnt_tli_create() Create a client handle
rpcb_getaddr() Find the universal address of a service
rpcb_set() Register the server address with the RPCbind
rpcb_unset() Used by the servers to unregister their addresses
svc_reg() Associate program and version with dispatch
svc_tli_create() Create a server handle
svc_unreg() Delete an association set by svc_reg()
Related information
API finder
API Description
clnt_freeres() Free data allocated by the RPC or XDR system
clnt_geterr() Get the error structure from the client handle
svc_freeargs() Free data allocated by the RPC or XDR system
Related information
API finder
Manuals
• IBM i Network File System Support . (2105 KB) This book describes the Network File System
through a series of real-life applications. Included is information about exporting, mounting, file locking,
and security considerations. From this book, you can learn how to use NFS to construct and develop a
secure network namespace.
• WebSphere Development Studio: ILE C/C++ Language Reference . (4490 KB) This book provides
information needed to design, edit, compile, run, and debug ILE C programs on the IBM i platform.
• APPC Programming . (1497 KB) This book describes the advanced program-to-program
communications (APPC) support for IBM i platforms. It guides in developing application programs that
use APPC and in defining the communications environment for APPC.
• Recovering your system . (8404 KB) This book provides general information about recovery and
availability options for IBM i platforms.
Other information
• Backing up the integrated file system
• Control language
• i5/OS globalization
• Application programming interfaces
• Journal management
• Commitment control
• Security reference
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of
the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM Corporation
Software Interoperability Coordinator, Department YBWA
3605 Highway 52 N
Rochester, MN 55901
U.S.A.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at
"Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.
154 Notices
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or
trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other product and service names might be trademarks of IBM or other companies.
Notices 155
156 IBM i: Integrated file system
IBM®