跳到主要内容

fopen

注意

这个$函数以小写字母开头。

描述

打开文件以便进行读写操作。

名称描述
const filename[]文件路径(若仅指定文件名,则默认在'scriptfiles'文件夹中查找)
filemode:mode文件打开模式(默认值:io_readwrite)

返回值

  • 成功时返回有效的文件句柄(File:handle 类型)
  • 失败时返回 0

示例

io_read 模式(只读):

// 以"只读"模式打开"file.txt"
new File:handle = fopen("file.txt", io_read);

// 声明缓冲区
new buf[128];

// 检查文件是否成功打开
if (handle)
{
// 成功

// 逐行读取文件内容
while(fread(handle, buf))
{
print(buf); // 输出每行内容
}

// 关闭文件
fclose(handle);
}
else
{
// 错误提示
print("文件 \"file.txt\" 不存在或无法打开。");
}

io_write 模式(只写):

// 以"只写"模式打开"file.txt"
new File:handle = fopen("file.txt", io_write);

if (handle)
{
// 写入内容
fwrite(handle, "这是新写入的内容!");

fclose(handle); // 关闭文件
}
else
{
print("无法打开文件 \"file.txt\"");
}

io_readwrite 模式(读写):

// 以"读写"模式打开"file.txt"
new File:handle = fopen("file.txt", io_readwrite);
new buf[128];

if (handle)
{
// 读取现有内容
while(fread(handle, buf))
{
print(buf);
}

// 重置文件指针到起始位置
fseek(handle, _, seek_begin);

// 覆盖写入新内容
fwrite(handle, "覆盖原始内容");

fclose(handle);
}
else
{
print("文件操作失败");
}

io_append 模式(追加):

// 以"追加"模式打开日志文件
new File:handle = fopen("server.log", io_append);

if (handle)
{
// 追加日志条目
fwrite(handle, "[LOG] 服务器启动成功\r\n");

fclose(handle);
}
else
{
print("日志文件写入失败");
}

注意事项

注意
  • io_read 模式下打开不存在的文件将返回空句柄
  • 使用无效句柄执行文件操作会导致服务器崩溃
  • 文件操作完成后务必使用 fclose 关闭文件

相关函数

相关资源