发布网友
共2个回答
好二三四
fork函数是计算机程序设计中的分叉函数,返回值有0和负1,若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记,否则出错返回负1,fork函数将运行着的程序分成2个完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程,这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。
热心网友
fork()函数用于创建子进程,新创建的子进程拥有和父进程一样的资源(比如相同的代码,相同的执行位置),如果函数失败会返回负值。
while ((p1 = fork()) == -1); 目的是: 1.将fork的返回值赋给p1; 2. 如果函数失败则再次调用,知道成功为止.
这段代码会创建一个子进程,当创建子进程时,子进程和父进程都会从同一个起点执行相同的代码(从while 后面的语句开始), 然后执行到if语句, 因为fork函数对于子进程会返回0, 对于父进程会返回子进程的ID(标识符),所以当执行到if时, 父进程执行putchar('a'),子进程执行putchar('b');
热心网友
此代码会将a和b都输出,具体顺序要看系统怎么执行了。当P1==0时,子进程执行,输出b,同时父进程也在执行,会输出a,
while((p1=fork())==-1);表明创建进程失败,继续创建进程,知道创建成功,执行后面的语句。对于创建进程还有一个函数可以使用,即vfork(),用这个函数时,则会先输出b,再输出a,因为此函数会一直阻塞父进程知道子进程退出或调用exec执行新的程序。建议你通过书将进程这块知识好好看下,书上这些知识都会给。我也正在学,加油喽