当前位置: 首页 > news >正文

网站建设合作方案2345网址导航官网

网站建设合作方案,2345网址导航官网,小程序的定义,徐汇网站建设到现在为止,我们知道无论何时执行程序,都会创建一个进程,并且该进程将在执行完成后终止,如果我们需要在程序中创建一个进程,并且可能希望为其安排其他任务,该怎么办。能做到吗?是的,显然是通过…

到现在为止,我们知道无论何时执行程序,都会创建一个进程,并且该进程将在执行完成后终止,如果我们需要在程序中创建一个进程,并且可能希望为其安排其他任务,该怎么办。能做到吗?是的,显然是通过进程创建的,当然,工作完成后,它将自动终止,或者您可以根据需要终止它。

进程创建是通过 fork()系统调用实现的,新创建的进程称为子进程,而启动它的进程(或开始执行时的进程)称为父进程。在fork()系统调用之后,现在我们有两个进程-父进程和子进程。如何区分它们?很简单,就是通过它们的返回值。

System Call

创建子进程后,让我们看到fork()系统调用详细信息。

#include <sys/types.h>
#include <unistd.h>pid_t fork(void);

创建子进程,此调用之后,有两个进程,现有的一个称为父进程,而新创建的一个称为子进程。

fork()系统调用返回以下三个值之一:

  • 负值  - 表示错误,即创建子进程失败。

  • 0       - 表示为子进程。

  • 正值 - 表示新创建的子进程的进程ID。

让我们考虑一个简单的程序。

File name: basicfork.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main() {fork();printf("Called fork() system call\n");return 0;
}

执行步骤

汇编

gcc basicfork.c -o basicfork

执行/输出

Called fork() system call
Called fork() system call

注意-通常在fork()调用之后,子进程和父进程将执行不同的任务。如果需要运行相同的任务,则对于每个fork()调用,它将运行2次幂n次,其中 n 是fork()被调用的次数。

看到fork()创建了子进程之后,就该查看父进程和子进程的详细信息了。

文件名:pids_after_fork.c

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main() {pid_t pid, mypid, myppid;pid = getpid();printf("Before fork: Process id is %d\n", pid);pid = fork();if (pid < 0) {perror("fork() failure\n");return 1;}//Child processif (pid == 0) {printf("This is child process\n");mypid = getpid();myppid = getppid();printf("Process id is %d and PPID is %d\n", mypid, myppid);} else { //Parent process sleep(2);printf("This is parent process\n");mypid = getpid();myppid = getppid();printf("Process id is %d and PPID is %d\n", mypid, myppid);printf("Newly created process id or child pid is %d\n", pid);}return 0;
}

汇编&执行

Before fork: Process id is 166629
This is child process
Process id is 166630 and PPID is 166629
Before fork: Process id is 166629
This is parent process
Process id is 166629 and PPID is 166628
Newly created process id or child pid is 166630

进程可以通过以下两种方式之一终止:

  • 通常在传递某些信号(如终止信号)时发生。

  • 通常,使用_exit()系统调用(或_Exit()系统调用)或exit()库函数。

_exit()和exit()之间的区别主要是清理活动, exit()在将控件返回内核之前会进行一些清理,而 _exit()(或_Exit())会将控件立即返回内核。 

考虑以下带有exit()的示例程序。

文件名称:atexit_sample.c

#include <stdio.h>
#include <stdlib.h>void exitfunc() {printf("Called cleanup function - exitfunc()\n");return;
}int main() {atexit(exitfunc);printf("Hello, World!\n");exit (0);
}

汇编&执行

Hello, World!
Called cleanup function - exitfunc()

考虑以下带有_exit()的示例程序。

文件名称:at_exit_sample.c

#include <stdio.h>
#include <unistd.h>void exitfunc() {printf("Called cleanup function - exitfunc()\n");return;
}int main() {atexit(exitfunc);printf("Hello, World!\n");_exit (0);
}

汇编&执行

Hello, World!

进程 - 创建&终止 - 无涯教程网无涯教程网提供到现在为止,我们知道无论何时执行程序,都会创建一个进程,并且该进程将在执行完成后...https://www.learnfk.com/process/inter-process-communication-process-creation-termination.html

http://www.tj-hxxt.cn/news/95818.html

相关文章:

  • 河南实力网站建设首选营销型网站外包
  • 网站首页页面代码邯郸seo排名
  • php响应式个人博客网站设计寻找客户的12种方法
  • 自己做的网站涉黄谷歌搜索引擎 google
  • 聊城网站建设费用在线seo工具
  • 烟台网站排名系统互联网平台推广怎么做
  • 个人网站链接怎么做品牌策划公司哪家好
  • 云南网站建设专业品牌建网络平台要多少费用
  • wordpress文章自动标签重庆seo网站管理
  • canvas做的手机网站seo兼职平台
  • 综合信息网站模板情感营销经典案例
  • 手机新闻网站模板美国婚恋网站排名
  • 购买网站服务器域名查询 站长查询
  • 邵阳汽车网站建设seo网站关键词优化方法
  • 个人怎么找猎头公司推荐自己微博搜索引擎优化
  • 哪里有做网站公司的seo外包优化公司
  • 游戏网站开发运营的几个思路营销的概念是什么
  • 企业网站设计特点seo诊断报告
  • 福田网站建设团队成都网络营销推广公司
  • 怎样建网站赚钱网站alexa排名
  • 凡科建站登录入口官方正版南京网络推广优化哪家好
  • 济南做网站哪里好网络营销图片
  • 网站后期增加内容开发做一个网站需要多少钱
  • 香港服务器网站可以做淘宝客吗八种营销模式
  • 一级a做爰片免费观看网站百度点击工具
  • 上海知名网站建西安网站建设制作
  • 福田招聘信息昆明网络推广优化
  • 如何看网站是不是织梦做的seo搜索引擎优化师
  • 上海集团网站建设价格东莞营销网站建设优化
  • 主流电商网站开发框架seo整站优化报价