int spawn( char* program, char** args) {
pid_t child_pid;
child_pid = fork();
if( child_pid!= 0) { // so this returns if the forking fails? Why would a fork fail?
return (int)child_pid;
}
else {
execvp(program, args);
return (int)child_pid;
}
}
我正在尝试调试以下代码。问题是,当父母调用它时,我的监视列表中的child_pid值是一个大数字(大于零),但程序本身确实在else块中。 我想看看它是如何进行的,其他块购买我的gdb调试器似乎在child_pid返回其大数字后停止