# FS_OpenFileDirect

## Syntax

  `#include <nitro/fs.h>`
  `BOOL FS_OpenFileDirect(FSFile *p_file, FSArchive *p_arc, u32 image_top, u32 image_bottom, u32 file_index);`

## Arguments

p_file | Address of the `FSFile` structure.
p_arc | Address of the `FSArchive` structure to be associated
image_top | Offset for the beginning of the file region (memory space) specified by `p_arc`
image_bottom | Offset for the end of the file region (memory space) specified by `p_arc`
file_index | Index value to be allocated to the file

## Return Values

`TRUE` if the file opens properly; `FALSE` otherwise.

## Description

- This function cannot be called from the interrupt handler (IRQ mode).
  Also note that in some cases processing may not end if interrupts are left prohibited.
- Because the structures of opened files are linked with system resources, you cannot move or duplicate the information in these structures by copying them into other structures. For details, see the `FSFile` structure.

## Note

This function cannot be called from the interrupt handler (IRQ mode).
Also note that in some cases processing may not end if interrupts are left prohibited.

## See Also

`FSFile`
`FSArchive`
`FS_GetFileImageTop`
`FS_GetFileImageBottom`

## Revision History

2009/07/29 Added mention that copying structure values is not guaranteed.
2004/09/24 Added description in Note regarding the conditions for calling this function.
2004/07/13 Initial version.

CONFIDENTIAL