# FOpen (Kernel)

`FOpen`(filename)

`FOpen`(filename mode)

  Opens the file with the specified mode. Upon success, it returns a handle to the file, otherwise, it returns NULL.

  Important

  This kernel is SCI0 only. For SCI1.1, see `FileIO()`.

  Parameters: | name (string) – The filename. mode (number) – The open mode.

  The modes are as follows:

  Mode | Description
  --- | ---
  fOPENCREATE | open or fail: Try to open file, abort if not possible
  fOPENFAIL | open or create: Try to open file, create it if it doesn’t exist
  fCREATE | create: Create the file, destroying any content it might have had

  Note

  You may note that the mode flags don’t match the descriptions. SCI Studio had the flags defined incorrectly, and this reflects that error. This is not the case for `FileIO()`.

  Example:

      (procedure (Foo &tmp hFile [buffer41])
              ; Open the file and write to it
              (if (!= NULL (= hFile (FOpen "somefile.txt" fCREATE)))
                      (FPuts hFile "Hello World!")
                      (FClose hFile)
              )

              ; Open the file, read it's first string, and print it to the screen
              (if (!= NULL (= hFile (FOpen "somefile.txt" fOPENFAIL)))
                      (FGets buffer 40 hFile)
                      (FClose hFile)

                      (Print buffer)
              )
      )