At a glance

A file descriptor is an abstract value, that contains all the necessary information for the handle of a file:

  • A pointer to the file,

  • the access rights to this file,

  • the access conditions to the file (read, write or read/write),

  • the current position in the file, etc.

Operation

It is possible to use one or more descriptors simultaneously or sequentially on one file in order to create multiple accesses (read, write or read/write) at the same position or at different positions (beginning, end, middle etc...).

A file descriptor is:

  • Allocated (via OPEN_FILE, CREATE_FILE),

  • used (via RD_FILE_TO_DATA, WR_DATA_TO_FILE, SEEK_FILE, GET_FILE_INFO),

  • realesed (via CLOSE_FILE).

It is used to identify a transaction to a file and it is possible to have many transactions on the same file.

EFB instance

The EFB instance is considered as a tool that realize an action on a file in a given context. The instance is represented by the file descriptor.

With the same EFB instance, it is possible to work on many transactions sequentially through one or many file descriptors.

Via these file descriptors, it is posssible to work on the same file or on different files.

NOTE: The file descriptor will be lost and then you won’t be able to close the file. In this case you could reach the maximum number of files opened, as you can’t close the files already open, and for each new opening you will get an error.
NOTE: In case of FILE_DELETED error code (error code 17) you must close the corresponding file to release the associated file descriptor