我在内核3.4上使用vfs_write()
跟踪KProbes,我希望能够知道DECLARE
v_old_rec company_table%ROWTYPE;
BEGIN
SELECT * INTO v_old_rec
FROM company_table
WHERE company_id = 32789;
INSERT INTO company_table_hist
VALUES v_old_rec || ',MONTHLY UPDATE';
END;
与write()
一起调用的时间。
起初,我认为我应该学习如何在Linux内核中实现标准流,所以我继续了解了PTY / TTY文件系统。
天真地,我检查了正在写入的STDIN
的文件系统是struct file
,但我发现该任务正在使用的文件都不是{{1} }类型。所以我接着打印了任务正在使用 的文件系统,甚至给PTYFS
写了一个特殊的字符串,所以我可以PTYFS
稍后对其进行日志记录
我发现STDIN
的写入实际上是使用write_pipefifo_fops
写入grep
的。令人惊讶的是,STDIN
未引用此pipe
。
这是我迷路的地方。我想了解pipe
的{{1}}条目与作为current->files->fdt->fd[0]
的参数传递的struct file
条目之间的关系,当current->files->fdt->fd[0]
写入时执行。