Linux 一切皆文件
首先通常在windows中是文件的东西,它们在linux中也是文件
其次一些在windows中不是文件的东西, 比如进程, 磁盘, 也被抽象成了文件....var/lib/mysql/mysql.sock srwxrwxrwx
6.管道 # pipe
7.符号链接文件 # softlink…
文件操作分析
open -> sys_open...与这些中断调用号对应是 一个函数指针数组:
fn_ptr sys_call_table[] = { sys_setup, sys_exit, sys_fork, sys_read,
sys_write, sys_open...sys_getpgrp, sys_setsid, sys_sigaction, sys_sgetmask, sys_ssetmask,
sys_setreuid,sys_setregid };
可以看到 sys_open...正好是在 第6个,必须要对应上的,所以说,我们 open一个文件,实际上最后是交给了 sys_open()
内核操作打开文件 (进程中维护文件指针数组)
我们来看下 sys_open
int sys_open