我想LD_PRELOAD linux的clone
函數。在我的LD_PRELOADed版本中,我需要在調用原始clone
函數之前記錄輸入參數。但是,問題是clone
需要可變數量的參數。它是這樣宣佈的。計算克隆函數的可變參數個數
int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...
/* pid_t *pid, struct user_desc *tls, pid_t *ctid */);
我們這些參數傳遞給原來的clone
功能,我必須知道的都通過了參數的數目。我該怎麼辦呢?
你還碰巧有LD_PRELOAD代碼(或者至少是一些骨架)?因爲我正在嘗試做同樣的事情,並且陷入了clone()varags。根據va_ *的實現來回答已接受的答案,我認爲它只會在堆棧中隨機(隨機)數據。調用者必須始終告訴被調用者使用多少(參數數量,終止符,格式字符串或者某物)。 – fiction