初学Linux IPC,多指教。。。
接触Linux编程一个月的样子,照着Linux编程入门到精通在学,现学到了IPC机制。ipc过了一遍了,感觉有的繁,里面的结构有点多,有点理不清头绪。准备再探。如果有对Linux IPC熟悉的,请给点意见。如,学这个东西需要注意的地方,重点要掌握的地方之类的。如果可以的话,可以分享自身成功的经验,有问题的也可以提出来一起学习。。。
下面是我学进程时遗留下来的问题,如果可以也给我一并解决了吧(我就发了三个帖子,之前两个都是这个问题,还没解决彻底)
pid_t pid;void handle(int signo){ /*****************************问题所在************************************************* *多执行几次pid会出现不同的结果0,或者子进程的pid *一个是fork返回到子进程的值,一个是返回到父进程的值 *问题:这个函数是父进程执行的,pid不应该是fork返回到父进程的值么,为什么可能为0呢??? *请各位指教。****************************************************************************************/ printf("Current time:%d\n",pid); kill(pid,SIGUSR1);}int main(){; int i; int stat; signal(SIGCLD,SIG_IGN); signal(SIGUSR1,SIG_IGN); signal(SIGUSR2,handle); pid=fork(); if(pid<0){ perror("fork"); exit(-1); } else if(pid==0){ kill(getppid(),SIGUSR2); pause(); exit(0); } wait(&stat); return 0;}else if((g_tmpPid = pid)==0){ kill(getppid(),SIGUSR2); pause(); exit(0); } static void handle(int signo){ printf("Current time:%d\n",g_tmpPid); kill(pid,SIGUSR1);}