Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

子进程ID号一定大于其父进程ID号吗

| Comments

我一直都认为fork出来的子进程分配出来的ID号数字应该是大于其父进程的ID号数字的。
以前看到的各种ps输出的确也是如此。

但是今天我遇到了一个奇怪的现象: 给出结果,然后说一下我的系统环境:

wgzhao@wgzhao-t23:\~$ ps -ef |grep tm |grep -v grep 
wgzhao 1683 16379 0 14:32 pts/0 00:00:00

./tm2008beta_chs.exe 子进程号是1683,父进程是16379。尝试过几次,都是如此。尝试过别的程序,没有发现这个问题。

下面详细说一下我当时测试环境:
系统是全新安装的Debian 5.0,X11是自带的XFCE4。
因为想测试兼容内核效果怎么样,安装了最新的kernel_2.6.23-0.2.4uk_i386.deb 和wine_1.0-0.2.4uk_i386.deb。

发生上述情况的时候,也是用的这个核心启动的。

但是运行的是腾讯最新的TM程序,但是程序运行有问题,一直死在那里。

$ ./tm2008beta\_chs.exe
err:module:find_forwarded_export module not found for forward
'gdi32.GdiTransparentBlt' used by L"msimg32.dll" wine: Unhandled page
fault on read access to 0x003a005a at address 0x414230 (thread 00dc),
starting debugger...

测试了其他一些Windows应用程序,比如Pietty,Fetion2008等,没有发生上述子进程ID号数字小于父进程的ID号数字。
不过这些Windows程序运行都成功,而不像tm2008一下,一直死在哪里。

我现在一时无法得到一个确定的答案说子进程ID号数字一定大于其父进程的,不过不管怎样,现在这个倒是一个很奇异的现象,有谁能说说吗?

Comments