# MX\_FILEPOS > [HTML Version](mx_filepos.htm) _Updated May 2023_ **xcall MIAMEX, MX\_FILEPOS, chan, opcode, pos \{,filidx\}** MX\_FILEPOS (MIAMEX 118) allows you to get or set the current file position within a sequential file which is open for input or output. **Parameters** _chan_ ([Num](num.htm.md)) \[in\] should be set to the channel number of the open sequential file. _opcode_ ([Num](num.htm.md)) \[in\] 0 (mxop\_get) to get the current file position or 1 (mxop\_set) to set it. _pos_ ([Num](num.htm.md)) \[in/out\] is the position (offset in bytes from the start of file). For _opcode_ 0 (get), the current position is returned in this parameter. For _opcode_ 1 (set), _pos_ must be set to the desired new file position. Note that to support files larger than 2 GB you must use a variable type capable of it: F6 or I6 or B6. _filidx_ (B,4) \[in\] is an optional handle to a "file index" which can be created and passed back to you by [XTREE](xtree_sbr.htm.md)[xs](keyword-types.htm.md). If _filidx_ is specified and _opcode_ = 1, then rather than setting the file pointer to the byte position specified by _pos_, it instead interprets pos as the desired line number, and uses the index referenced by _filidx_ to locate that line number directly (without having to scan the file sequentially). If there is an error in the operation, _pos_ will be returned as -1. **History** 2023 May, A-Shell 6.5.1731.0: Support extended to files beyond the 32 bit 2GB limit.