mp3 发表于 2003-11-5 16:55:19

[b]再次向daviadfox询问[/b]

我发县并不是说有的机器都会出现
b
# ca
的情况,但是如果你用
./a.out &
命令来运行,就会出现此情况
而且我想问一下,将fork()改为vfork()跳不出来,为什么,
用./a.out &会有一些数字出来,是他的地址吗,
我很菜,还请多原谅

davidfox 发表于 2003-11-6 10:44:06

1,z已经讲了进程的调度时机,我就不多说了,这也是为什么各个机器不一样的原因。
2,在linux下(我的是2.2的内核),应用层上vfork()只是fork()函数的别名,与内核中的两个函数区别是不同的,在内核中,vfork()中,子,父进程共享内存空间,父进程将被挂起直到子进程调用execv()或exit()。我的机器上,用两个函数结果完全一样。
3,&是后台执行符。进程在后台运行,而对前台(即用户终端)基本上没有影响。可以继续执行其他命令、接受输入、进行输入等。启动后台进程只要在启动的进程后面加上一个“&”字符就可以了。
    后台进程启动后,用户终端会回显系统为该进程分配的进程号。并立即显示shell提示符。系统开始在后台执行该进程,而用户可以立即在前台执行其它程序。显示是你启动后台进程个数序号。Done表示后台进程已经退出,最后显示的是后台进程名。
4,你提的问题好像不是这个版面的,是应用级的。
页: [1]
查看完整版本: [b]再次向daviadfox询问[/b]