Linux学习之创建子进程
生活随笔
收集整理的這篇文章主要介紹了
Linux学习之创建子进程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
/* 進程創建 */
void main(void)
{
pid_t child;
int status;
printf("This will demostrate how to get child status\n");
/* 創建子進程 */
if((child=fork())==-1)
{
printf("Fork Error : %s\n", strerror(errno));
exit(1);
}
else if(child==0) // 子進程
{
int i;
printf("I am the child: %s\n", getpid());
for(i=0;i<1000000;i++) sin(i);
i=5;
printf("I exit with %d\n", i);
exit(i);
}
while(((child=wait(&status))==-1)&(errno==EINTR)); ?//子進程未結束
if(child==-1)
printf("Wait Error: %s\n", strerror(errno));
else if(!status) ? ? ? ? ? ? // 子進程退出值為0
printf("Child %ld terminated normally return status is zero\n", child);
else if(WIFEXITED(status)) ? // 子進程退出值0
printf("Child %ld terminated normally return status is %d\n", child, WEXITSTATUS(status));
else if(WIFSIGNALED(status)) // 子進程未獲信號而退出
printf("Chlid %ld terminated due to signal %d not caught\n", child, WTERMSIG(status));
} 與50位技術專家面對面20年技術見證,附贈技術全景圖
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
/* 進程創建 */
void main(void)
{
pid_t child;
int status;
printf("This will demostrate how to get child status\n");
/* 創建子進程 */
if((child=fork())==-1)
{
printf("Fork Error : %s\n", strerror(errno));
exit(1);
}
else if(child==0) // 子進程
{
int i;
printf("I am the child: %s\n", getpid());
for(i=0;i<1000000;i++) sin(i);
i=5;
printf("I exit with %d\n", i);
exit(i);
}
while(((child=wait(&status))==-1)&(errno==EINTR)); ?//子進程未結束
if(child==-1)
printf("Wait Error: %s\n", strerror(errno));
else if(!status) ? ? ? ? ? ? // 子進程退出值為0
printf("Child %ld terminated normally return status is zero\n", child);
else if(WIFEXITED(status)) ? // 子進程退出值0
printf("Child %ld terminated normally return status is %d\n", child, WEXITSTATUS(status));
else if(WIFSIGNALED(status)) // 子進程未獲信號而退出
printf("Chlid %ld terminated due to signal %d not caught\n", child, WTERMSIG(status));
} 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的Linux学习之创建子进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html规范
- 下一篇: linux 其他常用命令