所以我有這個代碼
所以我想知道這是什么,trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0);它看起來像是在閱讀痕跡,但什么是痕跡,所以開始告訴我一些關于痕跡的事情,我可以閱讀任何痕跡/那里有多少痕跡。如果我在跟蹤管道上進行寫入,那么寫入系統呼叫的另一端是什么。所以我對單詞跟蹤非常困惑,更不用說下面寫到trace_pipe的簡單代碼了。我可以創建自己的跟蹤嗎?如何以及請告訴我這個
void read_trace_pipe(void)
{
int trace_fd;
trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0);
if (trace_fd < 0)
return;
while (1) {
static char buf[4096];
ssize_t sz;
sz = read(trace_fd, buf, sizeof(buf) - 1);
if (sz > 0) {
buf[sz] = 0;
puts(buf);
}
}
}
uj5u.com熱心網友回復:
DEBUGFS這是一個定義(可能)為包含目錄名稱的字串文字的宏,因此這只是打開該目錄中呼叫的檔案trace_pipe并讀取它。這可能只是一個普通檔案,也可能是某人創建的某種命名管道。
這不是任何標準的東西,與 strace 或 systrace 無關——它可能只是這個應用程式設定的東西。 "trace_pipe"只是一個檔案名。要理解它,您確實需要知道DEBUGFS定義為什么,以及誰在該目錄中創建了東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422276.html
標籤:
上一篇:在KaliLinux中,為什么我只在/usr/bin/中看到python2和python3二進制檔案(不是“python”二進制檔案)并得到“找不到python命令”
