我对 Bash 有疑问,我不知道为什么。
在 shell 下,我输入:
echo $$ ## print 2433
(echo $$) ## also print 2433
(./getpid) ## print 2602
“getpid”是一个获取当前 pid 的 C 程序,例如:
int main() { printf("%d", (int)getpid()); return 0; }
让我困惑的是:
- 我认为“(命令)”是一个子进程(我对吗?),我认为它的 pid 应该与其父 pid 不同,但它们是相同的,为什么......
- 当我使用我的程序在括号之间显示 pid 时,它显示的 pid 是不同的,对吗?
- '$$' 是宏之类的东西吗?
你能帮助我吗?