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.
You have a choice of two sets of functions, either of which you can use in programs that are created using Integrated Language Environment® (ILE) C:
- Integrated file system C functions that are included in the IBM® i operating system.
- C functions provided by the ILE C licensed program.
For information about the exit programs that the integrated file system supports, see Table 2.
The integrated file system functions operate only through the integrated file system stream I/O support. The following APIs are supported:
| Function | Description |
|---|---|
| access() | Determine file accessibility |
| accessx() | Determine file accessibility for a class of users |
| chdir() | Change current directory |
| chmod() | Change file authorizations |
| chown() | Change owner and group of file |
| close() | Close file descriptor |
| closedir() | Close directory |
| creat() | Create new file or rewrite existing file |
| creat64() | Create new file or rewrite existing file (large file enabled) |
| DosSetFileLocks() | Lock and unlock byte range of a file |
| DosSetFileLocks64() | Lock and unlock byte range of a file (large file enabled) |
| DosSetRelMaxFH() | Change the maximum number of file descriptors |
| dup() | Duplicate open file descriptor |
| dup2() | Duplicate open file descriptor to another descriptor |
| faccessx() | Determine file accessibility for a class of users by descriptor |
| fchdir() | Change current directory by descriptor |
| fchmod() | Change file authorizations by descriptor |
| fchown() | Change owner and group of file by descriptor |
| fclear() | Clear a file |
| fclear64() | Clear a file (large file enabled) |
| fcntl() | Perform file control action |
| fpathconf() | Get configurable path name variables by descriptor |
| fstat() | Get file information by descriptor |
| fstat64() | Get file information by descriptor (large file enabled) |
| fstatvfs() | Get information by descriptor |
| fstatvfs64() | Get information by descriptor (64-bit enabled) |
| fsync() | Synchronize changes to file |
| ftruncate() | Truncate file |
| ftruncate64() | Truncate file (large file enabled) |
| getcwd() | Get path name of current directory |
| getegid() | Get effective group ID |
| geteuid() | Get effective user ID |
| getgid() | Get real group ID |
| getgrgid() | Get group information using group ID |
| getgrnam() | Get group information using group name |
| getgroups() | Get group IDs |
| getpwnam() | Get user information for user name |
| getpwuid() | Get user information for user ID |
| getuid() | Get real user ID |
| givedescriptor() | Give file access to another job |
| ioctl() | Perform file I/O control action |
| link() | Create link to file |
| lseek() | Set file read/write offset |
| lseek64() | Set file read/write offset (large file enabled) |
| lstat() | Get file or link information |
| lstat64() | Get file or link information (large file enabled) |
| mkdir() | Make directory |
| mkfifo() | Make FIFO special file |
| mmap() | Create a memory map |
| mmap64() | Create a memory map (large file enabled) |
| mprotect() | Change a memory map protection |
| msync() | Synchronize a memory map |
| munmap() | Remove a memory map |
| open() | Open file |
| open64() | Open file (large file enabled) |
| opendir() | Open directory |
| pathconf() | Get configurable path name variables |
| pread() | Read from descriptor with offset |
| pread64() | Read from descriptor with offset (large file enabled) |
| pwrite() | Write to descriptor with offset |
| pwrite64() | Write to descriptor with offset (large file enabled) |
| QjoEndJournal() | End journaling |
| QjoRetrieveJournal Information() | Retrieve journal information |
| QjoRetrieveJournalEntries() | Retrieve Journal Entries |
| QJORJIDI() | Retrieve journal identifier information |
| QJOSJRNE() | Send journal entry |
| QjoStartJournal() | Start journaling |
| QlgAccess() | Determine file accessibility (using NLS-enabled path name) |
| QlgAccessx() | Determine file accessibility for a class of users (using NLS-enabled path name) |
| QlgChdir() | Change current directory (using NLS-enabled path name) |
| QlgChmod() | Change file authorizations (using NLS-enabled path name) |
| QlgChown() | Change owner and group of file (using NLS-enabled path name) |
| QlgCreat() | Create new file or rewrite existing file (using NLS-enabled path name) |
| QlgCreat64() | Create new file or rewrite existing file (large file enabled and using NLS-enabled path name) |
| QlgCvtPathToQSYSObjName() | Resolve Integrated File System path name into QSYS Object Name (using NLS-enabled path name) |
| QlgGetAttr() | Get system attributes for an object (using NLS-enabled path name) |
| QlgGetcwd() | Get path name of current directory (using NLS-enabled path name) |
| QlgGetPathFromFileID() | Get path name of object from its file ID (using NLS-enabled path name) |
| QlgGetpwnam() | Get user information for user name (using NLS-enabled path name) |
| QlgGetpwnam_r() | Get user information for user name (using NLS-enabled path name) |
| QlgGetpwuid() | Get user information for user ID (using NLS-enabled path name) |
| QlgGetpwuid_r() | Get user information for user ID (using NLS-enabled path name) |
| QlgLchown() | Change owner and group of symbolic link (using NLS-enabled path name) |
| QlgLink() | Create link to file (using NLS-enabled path name) |
| QlgLstat() | Get file or link information (using NLS-enabled path name) |
| QlgLstat64() | Get file or link information (large file enabled and using NLS-enabled path name) |
| QlgMkdir() | Make directory (using NLS-enabled path name) |
| QlgMkfifo() | Make FIFO special file (using NLS-enabled path name) |
| QlgOpen() | Open file (using NLS-enabled path name) |
| QlgOpen64() | Open file (large file enabled and using NLS-enabled path name) |
| QlgOpendir() | Open directory (using NLS-enabled path name) |
| QlgPathconf() | Get configurable path name variables (using NLS-enabled path name) |
| QlgProcessSubtree() | Process directories or objects within a directory tree (using NLS-enabled path name) |
| QlgReaddir() | Read directory entry (using NLS-enabled path name) |
| QlgReaddir_r() | Read directory entry (threadsafe and using NLS-enabled path name) |
| QlgReadlink() | Read value of symbolic link (using NLS-enabled path name) |
| QlgRenameKeep() | Rename file or directory, keep new if it exists (using NLS-enabled path name) |
| QlgRenameUnlink() | Rename file or directory, unlink new if it exists (using NLS-enabled path name) |
| QlgRmdir() | Remove directory (using NLS-enabled path name) |
| QlgSaveStgFree() | Save objects data and free its storage (using NLS-enabled path name) |
| QlgSetAttr() | Set system attributes for an object (using NLS-enabled path name) |
| QlgStat() | Get file information (using NLS-enabled path name) |
| QlgStat64() | Get file information (large file enabled and using NLS-enabled path name) |
| QlgStatvfs() | Get file system information (using NLS-enabled path name) |
| QlgStatvfs64() | Get file system information (large file enabled and using NLS-enabled path name) |
| QlgSymlink() | Make symbolic link (using NLS-enabled path name) |
| QlgUnlink() | Unlink file (using NLS-enabled path name) |
| QlgUtime() | Set file access and modification times (using NLS-enabled path name) |
| QP0FPTOS() | Perform miscellaneous file system functions |
| QP0LCHSG() | Change scan signature |
| Qp0lCvtPathToSYSObjName() | Resolve integrated file system path name into QSYS Object Name |
| QP0LFLOP() | Perform miscellaneous operations on objects |
| Qp0lGetAttr() | Get system attributes for an object |
| Qp0lGetPathFromFileID() | Get path name of object from its file ID |
| Qp0lOpen() | Open file with NLS-enabled path name |
| Qp0lProcessSubtree() | Process directories or objects within a directory tree |
| Qp0lRenameKeep() | Rename file or directory, keep new if it exists |
| Qp0lRenameUnlink() | Rename file or directory, unlink new if it exists |
| QP0LROR() | Retrieve object references |
| QP0LRRO() | Retrieve referenced objects |
| QP0LRTSG() | Retrieve scan signature |
| Qp0lSaveStgFree() | Save objects data and free its storage |
| Qp0lSetAttr() | Set system attributes for an object |
| Qp0lUnlink() | Unlink file with NLS-enabled path name |
| Qp0zPipe() | Create interprocess channel with sockets |
| qsysetegid() | Set effective group ID |
| qsyseteuid() | Set effective user ID |
| qsysetgid() | Set group ID |
| qsysetregid() | Set real and effective group IDs |
| qsysetreuid() | Set real and effective user IDs |
| qsysetuid() | Set user ID |
| QZNFRTVE() | Retrieve NFS export information |
| read() | Read from file |
| readdir() | Read directory entry |
| readdir_r() | Read directory entry (threadsafe) |
| readlink() | Read value of symbolic link |
| readv() | Read from file (vector) |
| rename() | Rename file or directory. Can be defined to have the semantics of Qp0lRenameKeep() or Qp0lRenameUnlink(). |
| rewinddir() | Reset directory stream |
| rmdir() | Remove directory |
| select() | Check I/O status of multiple file descriptors |
| stat() | Get file information |
| stat64() | Get file information (large file enabled) |
| statvfs() | Get file system information |
| statvfs64() | Get file system information (large file enabled) |
| symlink() | Make symbolic link |
| sysconf() | Get system configuration variables |
| takedescriptor() | Take file access from another job |
| umask() | Set authorization mask for job |
| unlink() | Remove link to file |
| utime() | Set file access and modification times |
| write() | Write to file |
| writev() | Write to file (vector) |
| Function | Description |
|---|---|
| Integrated File System Scan on Close Exit Program | Called during close processing such as with the close() API. This exit program must be provided by the user. |
| Integrated File System Scan on Open Exit Program | Called during open processing such as with the open() API. This exit program must be provided by the user. |
| Process a Path Name | Called by the Qp0lProcessSubtree() API for each object in the API's search that meets the caller's selection criteria. This exit program must be provided by the user. |
| Save Storage Free | Called by the Qp0lSaveStgFree() API to save an *STMF object type. This exit program must be provided by the user. |