Shrinath, вы должны проверить документацию для fork()
, вот она:
Upon successful completion, fork() returns a value of 0 to the child
process and returns the process ID of the child process to the parent
process. Otherwise, a value of -1 is returned to the parent process, no
child process is created, and the global variable errno is set to indi-
cate the error.
Все, что для вас значит, это то, что ваш родительский процесс получит PID ребенка, когда тот разветвится. Ребенок знает, что это ребенок, потому что fork()
вернет 0 ребенку, так что-то вроде:
if((cpid = fork()))
{
// This is the parent processs, child pid
// is in `cpid` variable
}else{
// This is the child process, do your child
// work here.
}
Остерегайтесь вероятности того, что вы получите отрицательное число (так что нет ребенка), вы должны проверить это.
Вывод ps
будет варьироваться в зависимости от системы, но вы должны увидеть пример, если вы посмотрите на все дерево (заставьте ваши процессы спать, чтобы у вас было время проверить вывод ps
).