我正在編寫單元測試,我需要重寫「static const char [] path =」/ some/hardcoded/path「中的路徑來執行其他操作。我想它可以通過LD_PRELOAD做,但它要求我創建另一個庫是否有任何其他簡單的方法來做到這一點替換靜態常量字符數組的值
0
A
回答
1
躲在它的選擇是這樣的:??
static const char* path = "...";
void f()
{
#if UNIT_TESTING
static const char* path = "Ha!";
#endif
cout << path;
}
0
更改在許多系統中,實現定義的響應是放棄核心(分段錯誤),也就是說,許多聯合國以前常見的範例IX應用程序應具有硬編碼但可配置的路徑名。這個名字是在編譯時設置,而不是執行時間:
static const char * path = SOME_PREPROCESSOR_NAME;
3
註釋出來,並添加你自己的路。
你不想un- const
東西。
如果需要,把它變成一個預處理塊:
#ifndef __UNIT_TEST
static const char[] path = "/some/hardcoded/path";
#else
static const char[] path = "/some_other/hardcoded/path";
#endif
然後,它會不會原來的程序員的系統上出現故障或者。
0
如果你想成爲哈克,並沒有辦法直接更改信號源,它可以使用的mprotect()在Unix和Win32上VirtualProtect的(),以使該陣列可讀/寫的頁/可執行文件最後的手段。
0
如果您的系統支持它,請將硬編碼文件作爲您想要的符號鏈接。類似於ln -T /where/i/want/file /some/hardcoded/path/file
相關問題
- 1. C++超載靜態常量字符串VS字符數組
- 2. mySQL替換字符串+附加字符串與靜態值
- 3. 「靜態字符常量*常量」優於「靜態常量字符」的關聯對象鍵的優點是什麼?
- 4. 字符串替換爲變量數組
- 5. 替換字符串數組值
- 6. (PHP)替換字符串數組值
- 7. 初始化靜態字符常量* somevar
- 8. 初始化靜態常量空數組
- 9. PHP替換字符數組
- 10. AS2字符串替換字符數組?
- 11. 靜態常量
- 12. 使用靜態常量+作爲常量數組邊界
- 13. 真C靜態局部變量替換?
- 14. 無法將120的值賦予靜態常量無符號字符或將值賦給常量static static unsigned int
- 15. 是否值得優化Javascript代碼替換字符串常量?
- 16. 使用另一個數組的值初始化本地靜態常量數組
- 17. Python 3的轉換數字常量字符串,其數值
- 18. 字符串替換基於變量值
- 19. 用數組替換PHP關聯數組值(字符串)
- 20. 用變量替換靜態標識符的問題
- 21. 將字符數組轉換爲常量字符*
- 22. volatile關鍵字如何影響靜態常量數組?
- 23. Spring中注入靜態常量的值
- 24. 替換字符串中的變量替換錯誤的字符
- 25. 在二維數組替換字符串值與數字
- 26. 用數組中的字符替換字符串中的字符
- 27. println的非靜態替換
- 28. 替換舊數組中的字符
- 29. 替換字符數組中的char
- 30. 替換數組中的字符串php
它是'const'。不要這樣做。如果您有一些功能需求,請聯繫作者並提出您的看法。否則,處理它。抱歉。 –
我同意。應該拍攝硬編碼路徑的人! –