我一直在看kdbg源代码。我注意到在以下地方出现了以下源代码行:
::kill(pid(), SIGINT);
我的问题是我无法理解pid()的实现位置。从我在网上的搜索来看,这似乎不是系统调用。收集kdbg源代码树并没有提供实现它的任何线索。
尽管我已经进行了很多年的C开发,但我对C++的经验并不丰富。这真是莫名其妙。有人有什么想法吗?
最佳答案
cd tmp
git clone git://repo.or.cz/kdbg.git
grep -lrE "pid\(\)" *
>kdbg/gdbdriver.cpp
>kdbg/xsldbgdriver.cpp
>kdbg/dbgdriver.cpp
>kdbg/dbgmainwnd.cpp
grep -C 20 "pid\(\)" kdbg/gdbdriver.cpp
>.... Extra stuff
>void GdbDriver::interruptInferior()
>{
> ::kill(pid(), SIGINT);
>.... Extra stuff
echo "Ah, it's a class... I bet pid()is a function"^C
echo "After following the inheritance chain, I found..."^C
http://doc.qt.io/qt-5/qprocess-obsolete.html#pid
这是一个
QProcess
成员函数。该类继承自QProcess
继承的类。 =)