---
title: "fopen | open.mp"
description: "باز کردن یک فایل (برای خوندن یا نوشتن)."
canonical: https://omp.itsneufox.com/fa/docs/scripting/functions/fopen
language: fa
---

# fopen

## توضیحات

باز کردن یک فایل (برای خوندن یا نوشتن).

| نام | توضیحات |
| --- | --- |
| const filename\[\] | مسیر فایلی که باز میشه (اگر فقط نام فایل مشخص بشه، فایل با همون نام در پوشه 'scriptfiles' باز میشه). |
| [filemode:mode](https://omp.itsneufox.com/fa/docs/scripting/resources/file-modes) | حالتی که فایل با اون باز میشه (پیش‌فرض: io\_readwrite). |

## برگشتی

handle فایل رو برمیگردونه. این handle برای خوندن و نوشتن استفاده میشه.

0 اگر باز کردن فایل موفق نبود.

## مثال‌ها

**حالت io\_read:**

```c
// "file.txt" رو در حالت "read only" باز کن
new File:handle = fopen("file.txt", io_read);

// "buf" رو initialize کن
new buf[128];

// چک کن که آیا فایل باز شده
if (handle)
{
    // موفق

    // کل فایل رو بخون
    while (fread(handle, buf))
    {
        print(buf);
    }

    // فایل رو ببند
    fclose(handle);
}
else
{
    // خطا
    print("The file \"file.txt\" does not exists, or can't be opened.");
}
```

  

**حالت io\_write:**

```c
// "file.txt" رو در حالت "write only" باز کن
new File:handle = fopen("file.txt", io_write);

// چک کن که آیا فایل باز شده
if (handle)
{
    // موفق

    // "I just wrote here!" رو توی این فایل بنویس
    fwrite(handle, "I just wrote here!");

    // فایل رو ببند
    fclose(handle);
}
else
{
    // خطا
    print("Failed to open file \"file.txt\".");
}

```

  

**حالت io\_readwrite:**

```c
// "file.txt" رو در حالت "read and write" باز کن

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

// "buf" رو initialize کن
new buf[128];

// چک کن که آیا فایل باز شده
if (handle)
{
    // موفق

    // کل فایل رو بخون
    while (fread(handle, buf))
    {
        print(buf);
    }

    // pointer فایل رو روی اولین byte بگذار
    fseek(handle, _, seek_begin);

    // "I just wrote here!" رو توی این فایل بنویس
    fwrite(handle, "I just wrote here!");

    // فایل رو ببند
    fclose(handle);
}
else
{
    // خطا
    print("The file \"file.txt\" does not exists, or can't be opened.");
}
```

  

**حالت io\_append:**

```c
// "file.txt" رو در حالت "append only" باز کن
new File:handle = fopen("file.txt", io_append);

// چک کن که آیا فایل باز شده
if (handle)
{
    // موفق

    // "This is a text.\r\n" رو append کن
    fwrite(handle, "This is a text.\r\n");

    // فایل رو ببند
    fclose(handle);
}
else
{
    // خطا
    print("Failed to open file \"file.txt\".");
}
```

## نکات

هشدار

اگر از `io_read` استفاده کنی و فایل وجود نداشته باشه، یک reference NULL برمیگردونه. استفاده از reference های نامعتبر در توابع فایل سرورت رو crash میکنه!

## توابع مرتبط

-   [fclose](https://omp.itsneufox.com/fa/docs/scripting/functions/fclose): بستن یک فایل.
-   [ftemp](https://omp.itsneufox.com/fa/docs/scripting/functions/ftemp): ایجاد یک stream فایل موقت.
-   [fremove](https://omp.itsneufox.com/fa/docs/scripting/functions/fremove): حذف کردن یک فایل.
-   [fwrite](https://omp.itsneufox.com/fa/docs/scripting/functions/fwrite): نوشتن در فایل.
-   [fread](https://omp.itsneufox.com/fa/docs/scripting/functions/fread): خواندن فایل.
-   [fputchar](https://omp.itsneufox.com/fa/docs/scripting/functions/fputchar): قرار دادن یک کاراکتر در فایل.
-   [fgetchar](https://omp.itsneufox.com/fa/docs/scripting/functions/fgetchar): گرفتن یک کاراکتر از فایل.
-   [fblockwrite](https://omp.itsneufox.com/fa/docs/scripting/functions/fblockwrite): نوشتن بلوک‌های داده در فایل.
-   [fblockread](https://omp.itsneufox.com/fa/docs/scripting/functions/fblockread): خواندن بلوک‌های داده از فایل.
-   [fseek](https://omp.itsneufox.com/fa/docs/scripting/functions/fseek): پرش به یک کاراکتر خاص در فایل.
-   [flength](https://omp.itsneufox.com/fa/docs/scripting/functions/flength): گرفتن طول فایل.
-   [fexist](https://omp.itsneufox.com/fa/docs/scripting/functions/fexist): چک کردن وجود فایل.
-   [fmatch](https://omp.itsneufox.com/fa/docs/scripting/functions/fmatch): چک کردن pattern ها با نام فایل.
-   [ftell](https://omp.itsneufox.com/fa/docs/scripting/functions/ftell): گرفتن موقعیت فعلی در فایل.
-   [fflush](https://omp.itsneufox.com/fa/docs/scripting/functions/fflush): flush کردن فایل روی دیسک (مطمئن شدن از تکمیل همه write ها).
-   [fstat](https://omp.itsneufox.com/fa/docs/scripting/functions/fstat): برگرداندن اندازه و timestamp فایل.
-   [frename](https://omp.itsneufox.com/fa/docs/scripting/functions/frename): تغییر نام فایل.
-   [fcopy](https://omp.itsneufox.com/fa/docs/scripting/functions/fcopy): کپی کردن فایل.
-   [filecrc](https://omp.itsneufox.com/fa/docs/scripting/functions/filecrc): برگرداندن مقدار CRC 32-bit فایل.
-   [fattrib](https://omp.itsneufox.com/fa/docs/scripting/functions/fattrib): تنظیم attribute های فایل.
-   [fcreatedir](https://omp.itsneufox.com/fa/docs/scripting/functions/fcreatedir): ایجاد یک directory.

## منابع مرتبط

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