当前位置:首页>Linux>Linux文件操作实战指南:从系统调用到内核优化

Linux文件操作实战指南:从系统调用到内核优化

  • 2026-02-05 01:07:57
Linux文件操作实战指南:从系统调用到内核优化

在Linux开发中,文件操作是最基础也最核心的场景之一——无论是应用程序的日志写入、配置文件读取,还是高性能服务的数据持久化,都离不开对文件系统的操作。我们常接触的文件操作分为两类:内核提供的系统调用(底层接口)和C标准库封装的函数(上层易用接口)。

随着Linux内核不断迭代(本文基于5.15+ LTS内核,适配最新服务器/嵌入式场景),文件操作的性能、安全性和易用性均有优化。本文将结合经典操作方法,补充内核新特性优化技巧,帮你避开坑点、提升文件操作效率。

一、底层基石:Linux文件操作系统调用(内核原生接口)

Linux的文件操作系统调用是用户空间与内核空间交互的桥梁,最新内核对这些接口的优化主要集中在“减少系统调用次数”“提升权限管控精度”“优化IO效率”三个方向。核心操作包括创建、打开、读写、定位、关闭,逐一拆解如下:

1. 文件创建:creat() 与 open() 的取舍(内核优化重点)

传统创建文件的系统调用是 creat(),函数原型如下:

intcreat(constchar *filename, mode_t mode);

参数 mode 指定文件初始存取权限,最终权限由 mode & ~umask 决定(umask 是文件创建时默认去掉的权限,可通过 umask() 系统调用修改)。但在最新内核中,creat() 已被 open() 替代——内核5.10+ 对 open() 的 O_CREAT 标志做了性能优化,减少了内核态与用户态的切换。

等价替代写法(推荐):

// 等同于 creat(filename, mode),但更灵活、内核优化更充分int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, mode);

内核优化点补充:

  • umask() 系统调用在最新内核中支持“线程级隔离”,可通过 prctl(PR_SET_UMASK, newmask) 为单个线程设置独立umask,避免多线程创建文件时权限冲突(传统 umask() 是进程级,多线程场景易踩坑)。

  • mode 参数的扩展:内核5.15+ 支持 S_IAMB 等新权限标志,用于控制文件的“访问控制列表(ACL)”,提升权限管控精度,适合多用户共享文件场景。

2. 文件打开:open() 函数的flags优化(高性能关键)

open() 是文件操作的入口,最新内核对其 flags 参数做了多处优化,函数原型有两种:

// 无创建需求时使用intopen(constchar *pathname, int flags);// 带创建需求(O_CREAT)时使用,需指定modeintopen(constchar *pathname, int flags, mode_t mode);

核心优化集中在 flags 组合使用,以下是最新内核推荐的 flags 组合及优化点:

(1)基础打开标志(必学)

标志
含义
内核5.15+ 优化点
O_RDONLY / O_WRONLY / O_RDWR
只读/只写/读写模式(三选一)
内核优化权限校验逻辑,减少不必要的内核态校验耗时
O_APPEND
追加模式(写入时自动定位到文件末尾)
避免用户态手动调用 lseek(),减少系统调用次数,适合日志写入场景
O_CREAT
文件不存在则创建
优化文件创建时的inode分配逻辑,提升小文件创建效率
O_NONBLOCK
非阻塞模式
适配内核IO多路复用(epoll),减少线程阻塞等待,提升高并发场景性能
O_TRUNC
文件存在则清空内容
优化文件内容清空的页缓存处理,避免无效IO

(2)权限标志mode:数字表示法更高效(推荐实战写法)

mode 参数可通过宏组合(如 S_IRWXU | S_IROTH)或数字表示,最新内核对数字表示法的解析效率做了优化,更适合高性能场景。数字表示法规则(5位数字,内核5.15+ 支持完整解析):

  • 第1位:设置用户ID(SUID),1表示启用,0表示禁用

  • 第2位:设置组ID(SGID),1表示启用,0表示禁用

  • 第3位:文件所有者权限(r=4、w=2、x=1,求和)

  • 第4位:文件所属组权限(同上)

  • 第5位:其他用户权限(同上)

实战示例(高频场景):

// 创建“所有者读写执行、组无权限、其他只读执行”的文件,启用SUIDint fd = open("test", O_CREAT | O_RDWR, 10705);// 等价于宏组合,但数字表示法内核解析更快// open("test", O_CREAT | O_RDWR, S_IRWXU | S_IROTH | S_IXOTH | S_ISUID);

3. 文件读写:read()/write() 与内核IO优化(性能核心)

文件打开后,读写操作通过 read() 和 write() 实现,最新内核对这两个接口的优化是重点,直接决定IO性能:

// 从文件fd读取length字节到buf缓冲区,返回实际读取字节数intread(int fd, constvoid *buf, size_t length);// 从buf缓冲区写入length字节到文件fd,返回实际写入字节数intwrite(int fd, constvoid *buf, size_t length);

内核5.15+ 关键优化点(实战必用):

  • 页缓存(Page Cache)优化:内核自动将频繁读写的文件内容缓存到内存,减少磁盘IO。实战中可通过 fadvise() 系统调用提示内核缓存策略(如 POSIX_FADV_SEQUENTIAL 表示顺序读写,内核会预读更多数据)。

  • 分散/聚集IO优化:内核支持 readv()/writev() 系统调用,可一次性读写多个缓冲区,减少系统调用次数(传统 read()/write() 一次只能操作一个缓冲区,高并发场景耗时高)。

  • 小写入优化:内核对小文件写入做了“合并机制”,当写入字节数小于 PAGE_SIZE(通常4KB)时,内核会先缓存数据,达到阈值后再批量写入磁盘,避免频繁磁盘IO。但需注意:若需数据实时落盘,需搭配 O_SYNC 标志(内核5.15+ 优化了 O_SYNC 的落盘效率,减少性能损耗)。

实战优化示例(小文件高频写入):

#include<fcntl.h>#include<sys/uio.h>intmain(){int fd = open("log.txt", O_CREAT | O_WRONLY | O_APPEND, 0644);// 多个缓冲区数据,一次性写入(减少系统调用)char buf1[] = "2024-05-01 ";char buf2[] = "info: ";char buf3[] = "file operation success\n";structioveciov[] = {        {.iov_base = buf1, .iov_len = sizeof(buf1)-1},        {.iov_base = buf2, .iov_len = sizeof(buf2)-1},        {.iov_base = buf3, .iov_len = sizeof(buf3)-1}    };// 分散/聚集写入,一次系统调用完成多个缓冲区写入    writev(fd, iov, sizeof(iov)/sizeof(iov[0]));    close(fd);return0;}

4. 文件定位:lseek() 与内核指针优化

随机读写文件时,需通过 lseek() 调整文件指针位置,最新内核优化了指针移动的计算逻辑,减少内核态运算耗时:

// 将文件指针相对whence移动offset字节,返回指针相对于文件头的位置intlseek(int fd, offset_t offset, int whence);

核心参数 whence(三种取值)及优化用法:

  • SEEK_SET:相对文件开头移动,适合固定位置读写(内核优化了inode定位效率)。

  • SEEK_CUR:相对当前指针位置移动,适合连续读写场景(避免重复计算指针位置)。

  • SEEK_END:相对文件末尾移动,适合从文件末尾追加/读取数据(内核5.15+ 支持offset为负值,直接向前移动指针)。

高频实战场景(内核优化适配):

// 1. 获取文件长度(高效写法,内核直接返回inode中的文件大小,无需读取数据)off_t file_len = lseek(fd, 0, SEEK_END);// 2. 指针回退到文件开头(连续读写常用)lseek(fd, 0, SEEK_SET);// 3. 相对当前位置向前移动5个字节(修正写入/读取错误)lseek(fd, -5, SEEK_CUR);

5. 文件关闭:close() 与内核资源释放优化

文件操作完成后,必须调用 close() 释放文件描述符和内核资源,最新内核对 close() 的优化集中在“资源释放效率”和“错误处理”:

// 关闭文件描述符fd,释放内核资源,返回0表示成功,-1表示失败intclose(int fd);

内核优化点及实战注意事项:

  • 文件描述符复用:内核5.15+ 优化了文件描述符的分配逻辑,优先复用已关闭的文件描述符,避免频繁分配/释放带来的开销(实战中需注意:close() 后需将 fd 置为 -1,避免重复关闭)。

  • 延迟关闭优化:当进程退出时,内核会自动关闭所有未关闭的文件描述符,但不推荐依赖此机制——最新内核检测到“进程异常退出未关闭文件”时,会记录警告日志,且资源释放延迟可能导致句柄泄漏。

  • 错误处理优化:close() 的返回值需重点关注,若返回 -1,可能是“文件写入未完成就关闭”(如未搭配 O_SYNC 时,内核缓存未刷盘),实战中可结合 fsync() 确保数据落盘后再关闭:

// 确保数据刷盘(适合对数据一致性要求高的场景,如数据库、配置文件)fsync(fd);close(fd);

系统调用实战例程(内核5.15+ 优化版)

需求:创建可读写文件 hello.txt,写入指定内容,读取并输出,确保数据一致性,优化系统调用次数。

#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<stdio.h>#include<string.h>#include<unistd.h>#define LENGTH 100#define FILENAME "hello.txt"intmain(){int fd, len;char str[LENGTH];constchar *write_buf = "Hello, software weekly (kernel 5.15+ optimized)";// 优化点1:一次open()完成创建+打开,减少系统调用    fd = open(FILENAME, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);if (fd == -1) {        perror("open error");return-1;    }// 优化点2:直接写入,避免手动定位(O_RDWR模式无需额外操作)    len = write(fd, write_buf, strlen(write_buf));if (len == -1) {        perror("write error");        close(fd);return-1;    }// 优化点3:确保数据落盘,避免关闭后数据丢失    fsync(fd);    close(fd);// 重新打开读取    fd = open(FILENAME, O_RDONLY);if (fd == -1) {        perror("open read error");return-1;    }// 读取内容并输出    len = read(fd, str, LENGTH);if (len == -1) {        perror("read error");        close(fd);return-1;    }    str[len] = '\0'// 手动添加字符串结束符,避免乱码printf("读取内容:%s\n", str);    close(fd);    fd = -1// 优化点4:避免重复关闭,防止文件描述符误操作return0;}

编译运行(内核5.15+ 环境):

gcc -o file_operation file_operation.c./file_operation# 输出:读取内容:Hello, software weekly (kernel 5.15+ optimized)

二、上层易用:C库文件操作(跨平台+内核适配)

C标准库封装了文件操作函数(如 fopen()、fwrite()、fclose()),其底层依然调用内核系统调用,但做了易用性优化,且跨平台兼容(Linux、Windows、VxWorks均可用)。最新内核对C库文件操作的优化,主要是“提升库函数与内核接口的适配效率”,减少封装带来的性能损耗。

1. 核心差异:C库函数 vs 系统调用

对比维度
系统调用(如 open()、read())
C库函数(如 fopen()、fread())
底层实现
内核原生接口,无封装,性能最高
封装系统调用,增加用户态缓冲区,易用性高
跨平台性
Linux专属,不兼容其他系统
跨平台,同一代码可在多系统运行
缓存机制
依赖内核页缓存
用户态缓存 + 内核页缓存,减少系统调用
适用场景
高性能、底层开发(如内核驱动、高并发服务)
上层应用、跨平台开发(如工具类程序、应用服务)

2. 核心C库文件操作(内核优化适配版)

(1)创建与打开:fopen() 模式优化

fopen() 函数原型:

FILE *fopen(constchar *path, constchar *mode);

最新内核对C库的优化的重点:mode 参数的“二进制模式(b)”在Linux中已无实际差异(Linux不区分文本/二进制文件),但C库依然保留该标志,用于跨平台兼容;同时优化了 fopen() 与内核 open() 的接口适配,减少封装耗时。

常用 mode 模式(实战推荐):

模式
含义
内核优化适配点
r / rb
只读打开,文件不存在则报错
底层调用 open(O_RDONLY),优化权限校验
w / wb
只写打开,文件不存在则创建,存在则清空
底层调用 open(O_CREAT
a / ab
追加打开,文件不存在则创建,写入自动追加到末尾
底层调用 open(O_CREAT
r+ / r+b
读写打开,文件不存在则报错
优化读写切换时的缓存刷新逻辑
w+ / w+b
读写打开,文件不存在则创建,存在则清空
适合临时文件创建,优化文件删除时的资源释放

(2)读写操作:fread()/fwrite() 缓存优化

C库函数的核心优势是“用户态缓存”——当调用 fread()/fwrite() 时,数据会先写入用户态缓存,达到缓存阈值后,再批量调用系统调用写入内核页缓存,减少系统调用次数,提升性能(最新内核优化了用户态缓存与内核页缓存的同步效率)。

核心读写函数:

// 从stream读取n个size字节到ptr,返回实际读取的字段数(size字节为一个字段)size_tfread(void *ptr, size_t size, size_t n, FILE *stream);// 从ptr写入n个size字节到stream,返回实际写入的字段数size_tfwrite(constvoid *ptr, size_t size, size_t n, FILE *stream);

内核优化适配实战技巧:

  • 缓存大小调整:最新内核支持通过 setvbuf() 调整C库的用户态缓存大小,适配不同场景(如大文件读写可增大缓存,小文件读写可减小缓存,避免内存浪费)。

  • 避免频繁刷新缓存:fflush() 函数会强制将用户态缓存同步到内核页缓存,频繁调用会增加系统调用次数,降低性能;若需数据实时落盘,需搭配 fsync()(底层调用系统调用,确保内核页缓存刷盘)。

缓存调整示例:

FILE *fd = fopen("large_file.txt""w+");char buf[4096]; // 4KB缓存(与内核页缓存大小一致,优化同步效率)// 设置用户态缓存,_IOFBF表示全缓冲(达到缓存阈值才同步)setvbuf(fd, buf, _IOFBF, sizeof(buf));// 写入数据(会先写入buf,满4KB后批量同步到内核)fwrite(large_data, sizeof(char), strlen(large_data), fd);// 无需频繁fflush,结束后同步即可fflush(fd);fsync(fileno(fd)); // fileno():将FILE*转换为文件描述符fclose(fd);

(3)定位与关闭:fseek()/fclose() 易用性优化

C库的定位函数 fseek() 封装了 lseek(),用法更简洁,最新内核优化了其指针计算逻辑,与系统调用性能差距缩小:

// 与lseek()用法类似,stream是FILE*指针intfseek(FILE *stream, long offset, int whence);

关闭函数 fclose() 封装了 close(),会自动刷新用户态缓存,最新内核优化了缓存刷新的效率,避免数据丢失:

// 关闭文件流,自动刷新用户态缓存,释放资源intfclose(FILE *stream);

实战注意事项:fclose() 后,FILE* 指针会变为野指针,需置为 NULL,避免误操作。

C库函数实战例程(内核优化版)

需求:用C库函数实现上述系统调用例程,保证跨平台兼容,优化缓存效率。

#include<stdio.h>#include<string.h>#include<unistd.h>#define LENGTH 100#define FILENAME "hello.txt"intmain(){    FILE *fd;char str[LENGTH];constchar *write_buf = "Hello, software weekly (C lib + kernel optimized)";char buf[4096]; // 优化缓存大小,与内核页缓存一致// 优化点1:w+模式创建+读写,跨平台兼容    fd = fopen(FILENAME, "w+");if (fd == NULL) {        perror("fopen error");return-1;    }// 优化点2:设置用户态缓存,提升读写效率    setvbuf(fd, buf, _IOFBF, sizeof(buf));// 写入数据(先写入用户态缓存)    fwrite(write_buf, sizeof(char), strlen(write_buf), fd);// 优化点3:定位到文件开头,准备读取(无需重新打开,减少操作)    fseek(fd, 0, SEEK_SET);// 读取数据    fread(str, sizeof(char), LENGTH, fd);    str[strlen(write_buf)] = '\0'// 手动添加结束符printf("读取内容:%s\n", str);// 优化点4:刷新缓存+确保落盘,关闭文件    fflush(fd);    fsync(fileno(fd)); // 转换为文件描述符,调用系统调用确保落盘    fclose(fd);    fd = NULL// 避免野指针return0;}

三、最新Linux内核(5.15+)文件操作关键优化总结

本文基于Linux 5.15+ LTS内核(目前服务器/嵌入式场景主流内核),结合附件中的基础操作,补充了内核层面的优化技巧,核心总结如下,方便实战查阅:

1. 性能优化(重点)

  • 减少系统调用:用 open() 替代 creat(),用 readv()/writev() 替代 read()/write(),减少用户态与内核态切换。

  • 缓存优化:利用内核页缓存,搭配 fadvise() 提示缓存策略;C库操作中调整用户态缓存大小(与页缓存一致,通常4KB)。

  • 小文件优化:内核自动合并小写入,避免频繁磁盘IO;大文件优化:使用顺序读写模式,开启内核预读。

2. 安全性优化

  • 权限管控:支持线程级 umask,使用 S_IAMB 等新权限标志,提升多用户场景权限安全性。

  • 数据一致性:搭配 O_SYNC、fsync() 确保数据实时落盘,避免意外关闭导致数据丢失。

3. 易用性优化

  • 文件描述符复用:内核优先复用已关闭的文件描述符,减少资源开销。

  • C库适配:优化C库函数与内核接口的适配效率,减少封装带来的性能损耗,兼顾跨平台与性能。

4. 实战避坑点

  • 避免重复关闭文件描述符/FILE* 指针,关闭后需置为 -1/NULL。

  • 不依赖进程退出时的自动文件关闭,手动关闭并检查返回值。

  • Linux中无需区分文本/二进制文件,C库的 b 标志仅用于跨平台兼容。

四、总结

Linux文件操作的核心是“理解系统调用与内核交互逻辑”——系统调用是底层基石,性能最高;C库函数是上层封装,易用性和跨平台性更好。随着内核迭代,优化重点始终是“减少IO开销、提升资源利用率、增强安全性”。

本文结合附件中的基础操作,补充了最新内核的实战优化技巧,无论是底层开发(依赖系统调用)还是上层应用(依赖C库),都能找到对应的优化方案。实际开发中,需根据场景选择合适的操作方式:高性能场景优先用系统调用+内核优化,跨平台场景优先用C库函数,兼顾效率与易用性。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 10:19:16 HTTP/2.0 GET : https://f.mffb.com.cn/a/472287.html
  2. 运行时间 : 0.132884s [ 吞吐率:7.53req/s ] 内存消耗:4,476.74kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=39092e05bc0492cd71883f15e15d081e
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000626s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000835s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001070s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004181s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000878s ]
  6. SELECT * FROM `set` [ RunTime:0.000213s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000599s ]
  8. SELECT * FROM `article` WHERE `id` = 472287 LIMIT 1 [ RunTime:0.008093s ]
  9. UPDATE `article` SET `lasttime` = 1770517156 WHERE `id` = 472287 [ RunTime:0.004950s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000769s ]
  11. SELECT * FROM `article` WHERE `id` < 472287 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003926s ]
  12. SELECT * FROM `article` WHERE `id` > 472287 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003583s ]
  13. SELECT * FROM `article` WHERE `id` < 472287 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004514s ]
  14. SELECT * FROM `article` WHERE `id` < 472287 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.017445s ]
  15. SELECT * FROM `article` WHERE `id` < 472287 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.013832s ]
0.134533s