---
title: "fopen | open.mp"
description: "Open a file (to read from or write to)."
canonical: https://omp.itsneufox.com/pl/docs/scripting/functions/fopen
language: pl
---

# fopen

## Description

Open a file (to read from or write to).

| Name | Description |
| --- | --- |
| const filename\[\] | The path to the file to open (if just a filename is specified, it will open the file with the name specified in the 'scriptfiles' folder). |
| [filemode:mode](https://omp.itsneufox.com/pl/docs/scripting/resources/file-modes) | The mode to open the file with (default: io\_readwrite). |

## Returns

Returns the file handle. This handle is used for reading and writing.

0 if failed to open file.

## Examples

**io\_read mode:**

```c
// Open "file.txt" in "read only" mode
new File:handle = fopen("file.txt", io_read);

// Initialize "buf"
new buf[128];

// Check, if the file is opened
if (handle)
{
    // Success

    // Read the whole file
    while (fread(handle, buf))
    {
        print(buf);
    }

    // Close the file
    fclose(handle);
}
else
{
    // Error
    print("The file \"file.txt\" does not exists, or can't be opened.");
}
```

  

**io\_write mode:**

```c
// Open "file.txt" in "write only" mode
new File:handle = fopen("file.txt", io_write);

// Check, if file is open
if (handle)
{
    // Success

    // Write "I just wrote here!" into this file
    fwrite(handle, "I just wrote here!");

    // Close the file
    fclose(handle);
}
else
{
    // Error
    print("Failed to open file \"file.txt\".");
}

```

  

**io\_readwrite mode:**

```c
// Open "file.txt" in "read and write" mode

new File:handle = fopen("file.txt", io_readwrite);

// Initialize "buf"
new buf[128];

// Check, if file is open
if (handle)
{
    // Success

    // Read the whole file
    while (fread(handle, buf))
    {
        print(buf);
    }

    // Set the file pointer to the first byte
    fseek(handle, _, seek_begin);

    // Write "I just wrote here!" into this file
    fwrite(handle, "I just wrote here!");

    // Close the file
    fclose(handle);
}
else
{
    // Error
    print("The file \"file.txt\" does not exists, or can't be opened.");
}
```

  

**io\_append mode:**

```c
// Open "file.txt" in "append only" mode
new File:handle = fopen("file.txt", io_append);

// Check, if file is open
if (handle)
{
    // Success

    // Append "This is a text.\r\n"
    fwrite(handle, "This is a text.\r\n");

    // Close the file
    fclose(handle);
}
else
{
    // Error
    print("Failed to open file \"file.txt\".");
}
```

## Notes

ostrzeżenie

-   This function can't access files outside the `scriptfiles` folder!
-   If you use `io_read` and the file doesn't exist, it will return a NULL reference. Using invalid references on file functions will crash your server!

## Related Functions

-   [fclose](https://omp.itsneufox.com/pl/docs/scripting/functions/fclose): Close a file.
-   [ftemp](https://omp.itsneufox.com/pl/docs/scripting/functions/ftemp): Create a temporary file stream.
-   [fremove](https://omp.itsneufox.com/pl/docs/scripting/functions/fremove): Remove a file.
-   [fwrite](https://omp.itsneufox.com/pl/docs/scripting/functions/fwrite): Write to a file.
-   [fread](https://omp.itsneufox.com/pl/docs/scripting/functions/fread): Read a file.
-   [fputchar](https://omp.itsneufox.com/pl/docs/scripting/functions/fputchar): Put a character in a file.
-   [fgetchar](https://omp.itsneufox.com/pl/docs/scripting/functions/fgetchar): Get a character from a file.
-   [fblockwrite](https://omp.itsneufox.com/pl/docs/scripting/functions/fblockwrite): Write blocks of data into a file.
-   [fblockread](https://omp.itsneufox.com/pl/docs/scripting/functions/fblockread): Read blocks of data from a file.
-   [fseek](https://omp.itsneufox.com/pl/docs/scripting/functions/fseek): Jump to a specific character in a file.
-   [flength](https://omp.itsneufox.com/pl/docs/scripting/functions/flength): Get the file length.
-   [fexist](https://omp.itsneufox.com/pl/docs/scripting/functions/fexist): Check, if a file exists.
-   [fmatch](https://omp.itsneufox.com/pl/docs/scripting/functions/fmatch): Check, if patterns with a file name matches.
-   [ftell](https://omp.itsneufox.com/pl/docs/scripting/functions/ftell): Get the current position in the file.
-   [fflush](https://omp.itsneufox.com/pl/docs/scripting/functions/fflush): Flush a file to disk (ensure all writes are complete).
-   [fstat](https://omp.itsneufox.com/pl/docs/scripting/functions/fstat): Return the size and the timestamp of a file.
-   [frename](https://omp.itsneufox.com/pl/docs/scripting/functions/frename): Rename a file.
-   [fcopy](https://omp.itsneufox.com/pl/docs/scripting/functions/fcopy): Copy a file.
-   [filecrc](https://omp.itsneufox.com/pl/docs/scripting/functions/filecrc): Return the 32-bit CRC value of a file.
-   [fattrib](https://omp.itsneufox.com/pl/docs/scripting/functions/fattrib): Set the file attributes.
-   [fcreatedir](https://omp.itsneufox.com/pl/docs/scripting/functions/fcreatedir): Create a directory.

## Related Resources

-   [File Modes](https://omp.itsneufox.com/pl/docs/scripting/resources/file-modes)
