+ -
当前位置:首页 → 问答吧 → 求助“为什么我的manpage 查不到sizeof这个函数呢?”

求助“为什么我的manpage 查不到sizeof这个函数呢?”

时间:2010-12-28

来源:互联网

源程序如下:
#include"stdio.h"
#include"stdlib.h" //exit包含在stdlib.h头文件中
#include"unistd.h"
int main(void)
{
pid_t pid;
pid=fork();
switch(pid)
{
case 0:
printf("Child process is running,CurPid is %d,ParentPid is %d\n",pid,getppid());
printf("\n%d,%d\n",pid,getpid());
break;
case -1:
perror("Process creation failed\n");
break;
default:
printf("Parent process is running,ChildPid is %d,ParentPid is %d\n",pid,getpid());
break;
}
exit(0);
}
输出结果如下:
Parent process is running,ChildPid is 4517,ParentPid is 4516
Child process is running,CurPid is 0,ParentPid is 4516

0,4517
(具体的ID号可能不同)

有几个问题:
1.程序中的printf("\n%d,%d\n",pid,getpid());中pid和getpid有什么区别?
2.fork有两个返回值,一个算父进程调用fork函数后的返回值,一个是子进程调用fork函数的返回值(创建成功则为0),那语句pid=fork();有没有问题?返回值的顺序是什么?
3.我觉得这个程序中父进程的ID号是4516,子进程的ID号是4517,可是语句printf("\n%d,%d\n",pid,getpid());的输出结果为什么是0,4517?
4.程序执行的时候先输出父进程中的消息还是先输出子进程中的消息?这个我也不是很明白

因为本人是个初学者,还望各位大虾能多多指教,不甚感激!!!!

作者: yangkang0831   发布时间: 2010-12-28