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

百度如何提交网站广州智能建站模板

百度如何提交网站,广州智能建站模板,店铺网络营销策划方案,南宁建设工程造价信息网站目录 1.fork 函数 1.1创建子进程 1.2getpid 函数 1.3getppid 函数 1.4getgid函数 1.5循环创建 n 个子进程 1.6fork后父子进程异同 1.6.1读时共享,写时复制 1.6.2fork后父子进程共享 1.6.3gdb调试父子进程 1.fork 函数 pid_t fork(void); 成功:…

目录

1.fork 函数

1.1创建子进程

1.2getpid 函数

1.3getppid 函数

 1.4getgid函数

1.5循环创建 n 个子进程

1.6fork后父子进程异同

1.6.1读时共享,写时复制

1.6.2fork后父子进程共享

1.6.3gdb调试父子进程


1.fork 函数

pid_t fork(void);

成功:// fork之后,会产生一个子进程。 父、子进程各自对fork函数做返回。
    父进程:返回 子进程id
    子进程:返回 0
失败: // 不产生子进程。
    -1 errno

注意: pid_t是一个short类型的变量,实际表示的是内核中的进程表的索引

- fork 之后,父、子进程,共同争夺cpu ,执行先后顺序随机,如下

1.1创建子进程

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>void sys_err(const char *str)
{perror(str);exit(1);
}int main(int argc, char *argv[])
{printf("=============before fork=============\n");pid_t pid = fork();if (pid == -1)sys_err("fork error");if (pid == 0) {   // 子进程printf("Iam child, 我的id = %d\n", getpid());} else if (pid > 0)  {  // 父进程printf("I am parent, 我儿子的id = %d, 我的id= %d\n", pid, getpid());}printf("=============after fork=============\n");return 0;
}

1.2getpid 函数

pid_t getpid(void);   

获取当前进程ID

1.3getppid 函数

pid_t getppid(void);   

获取当前进程的父进程ID
- **ps aux | grep 关键字**。  —— 搜索系统中包含关键字的进程。

- ./a.out 进程的父进程 bash
- 系统调用函数、库函数区别:
    - 1. 访问内核数据结构。  2. 访问硬件资源。
    - 系统调用:  以上两者二占其一。
    - 库函数:以上两者均不占。

 1.4getgid函数

pid_t getgid(void);   pid_t getegid(void);   

 //获取当前进程使用用户组ID

//获取当前进程有效用户组ID

1.5循环创建 n 个子进程

- 为了避免 子进程也fork产生 “孙进程”。 需要每次fork 后,将子进程 结束运行,不参与下一次fork。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>void sys_err(const char *str)
{perror(str);exit(1);
}int main(int argc, char *argv[])
{int i = 0;for (i = 0; i < 5; i++) {if (fork() == 0)break;        // 循环期间,子进程不参与循环.}if (5 == i) {        // 循环从 表达式 2 结束. --- 父进程sleep(5);printf("I'm parent \n");} else {sleep(i);printf("I'm %dth child\n", i+1);}return 0;
}

1.6fork后父子进程异同

“刚刚” fork 后:

父子相同:

- 全局变量、.data、.text、栈、堆、环境变量、用户ID、进程工作目录、宿主目录、信号处理方式...

父子不同:

- 进程ID、fork返回值、进程运行时间、父进程ID、闹钟(定时器)、未决信号集。

1.6.1读时共享,写时复制

- fork后,对于父进程的用户空间的数据,系统采用 读时共享,写时复制 原则。
- 重点常用:全局变量。

1.6.2fork后父子进程共享

1. 文件描述符(对应 打开的文件结构体)
2. mmap 创建的映射区。

1.6.3gdb调试父子进程

- 在 fork 函数调用之前:
- 跟踪父进程执行逻辑:set follow-fork-mode parent(默认)
- 跟踪子进程执行逻辑:set follow-fork-mode child  

http://www.yayakq.cn/news/672659/

相关文章:

  • 手机网站的好处三亚最新政策
  • 自己建立一个网站需要什么建立一个个人介绍的网站
  • 淘客优惠券网站建设个人跨境电商赚钱吗
  • 化工产品网站建设宁波网站设计服务收费价格
  • 简洁的个人网站社区论坛系统免费开源
  • 天津做网站要多少钱wordpress自媒体博客模板
  • 重庆网站营销案例天元建设集团有限公司破产
  • 海络网站做营销网站公司
  • 曲靖市麒麟区建设局规划网站戴尔网站建设目标
  • 西安网站建设网站制作河北省建设工程质监站网站
  • 网站前台设计软件电子商务专业毕业从事什么工作
  • 多模室内设计网站俄语 俄文 俄罗斯语外贸网站建设
  • 建设厅网站更改登陆密码十堰门户网站建设
  • 代理服务器软件山西seo基础教程
  • pc网站运营wordpress 时间标题展示
  • 又好又快自助建站做寂网站
  • 网站导购话术什么网站可以做自媒体
  • 做网站的域名花钱做网站不给源代码
  • 营销型网站建设 高校邦代练中介网站有得做吗
  • 简述网站的建站流程建筑机械人才培训网官网
  • 小说网站模板黑龙江建筑工程网
  • 车公庙做网站网站生成app
  • 贵港网站seo做网站有没有用
  • 手机网站制作行业排行宣传册内容模板
  • 邢台专业网站建设价格哪些网站可以做公司制度
  • 如何把自己做的网站放到内网理财p2p网站开发
  • 东莞网站建设制作免费咨洱源名师工作室网站建设
  • 深圳网站设计 建设科技有限公司汽车最全的网站
  • 一个网站余姚什么注册登录
  • 个人网站用什么开发如何在手机上制作动画